A system and method provide random access to a multimedia object over a network. One embodiment of the invention includes a streaming media server that is connected to a client computer over a network. The streaming media server includes at least one multimedia object that is adapted for transmission (streaming) across the network. A pre-roll calculation program determines a pre-roll for each segment of the multimedia object and generates a modified multimedia object which includes a pre-roll for each of its segments, a pre-roll identifying a portion of the multimedia object to be transmitted by the streaming media server and received by the client computer prior to playback of the multimedia object at a selected segment. The pre-roll allows the client computer to present, starting at a selected segment, the multimedia object in its entirety without interruption. The pre-roll calculation program further facilitates the design of the multimedia object to minimize delays associated with random accesses to segments of the multimedia object.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of providing random access to a multimedia object for a plurality of segments in a multimedia data object, comprising: identifying a plurality of segments in the multimedia data object; and for each of the segments, determining the size of a substantially sufficient amount of data that must be sent to a client computer to enable a client computer to render the multimedia object without interruption starting from the respective segment, wherein the determined size is based at least in part upon the size of the segment and at least one of the segments that follows the respective segment.
2. The method of claim 1, further comprising storing the determined size of the substantially sufficient amount of data for each of the plurality of segments in the multimedia data object.
3. The method of claim 1, wherein determining the size of the substantially sufficient amount of data comprises determining a target bit rate of a client computer.
4. A system for streaming a multimedia data object across a network, comprising: a streaming media server operably connected to the network; a client computer operably connected to the network; and a multimedia data object including a plurality of frames and an item of data for each of a plurality of frames, wherein each item of data is indicative of a size of a substantially sufficient amount of data that must be sent to the client computer prior to the client computer displaying a presentation that is represented by the multimedia data object starting at a selected frame, and wherein the size of the substantially sufficient amount of data is based at least in part upon the size of the selected frame and at least one segment that follows the selected frame.
5. The method of claim 1, wherein the data of each segment is examined only once during the determining step.
6. A system for providing random access to a multimedia data object, the system comprising: means for identifying a plurality of segments in the multimedia data object; and means for determining the size of a substantially sufficient amount of data that must be sent to a client computer to enable the client computer to render the multimedia data object without interruption starting from each of the plurality of segments, wherein the size of the substantially sufficient amount of data that must be sent for a selected segment is based at least in part upon the size of the selected segment and at least one segment that follows the selected segment.
7. The system of claim 6, further comprising means for generating the multimedia data object.
8. The system of claim 6, further comprising means for rendering the multimedia data object into a multimedia presentation.
9. The system of claim 6, further comprising means for displaying the determined size for each of the segments.
10. The system of claim 6, further comprising means for storing the determined size for each of the plurality of segments in the multimedia data object.
11. A program storage device storing instructions that when executed by a computer perform the method comprising: identifying at least two positions within a multimedia data object; determining a communication bit rate of a computer; determining the rendering requirements of the computer for rendering the multimedia data object at each of the at least two positions; determining, for the at least two position within the multimedia data object, a size of substantially sufficient amount of data that must be sent to the computer to enable the computer to render the multimedia object without interruption starting from the respective position, and wherein the size of the substantially sufficient amount of data is diffeent for each of the two positions; and
12. A method of streaming a multimedia data object across a network, the method comprising: receiving a request for the transmission of a selected portion of a multimedia data object; determining a pre-roll for the selected portion of the multimedia data object, the determining based in part upon the rendering requirements of the multimedia data object, the transmission rate of the a client computer, and the size of the selected portion of the multimedia data object; transmitting the multimedia data object to a client computer; and signaling the client computer to start rendering the multimedia data object.
13. The method of claim 12, further comprising rendering the multimedia data object.
14. A streamable multimedia object stored on a computer readable medium comprising: a multimedia object having a sequence of segments; and an entry for each of a plurality of said segments, each of said entries indicating a size of a substantially sufficient amount of data of the multimedia object that must be sent to a client computer before the client computer begins rendering thereby enabling the client computer to render the multimedia object uninterrupted starting at a segment corresponding to the respective entry.
15. A method to facilitate the uninterrupted play of a multimedia file having a sequence of segments by a client computer over a narrow bandwidth network, the method comprising the acts of: identifying a plurality of segments within said multimedia file; and determining, for each of said plurality of segments, the size of a substantially sufficient amount of data of the multimedia file that must be sent to a client computer before the client computer begins rendering, to enable the client computer to render the multimedia file uninterrupted starting at a respective one of each of said segments, wherein the size of the substantially sufficient amount of data that must be sent for a selected segment is based at leased in part upon the size of the selected segment and the size of each of the segment that follows the selected segment.
16. A multimedia streaming system, comprising: a network; a multimedia data object; a streaming media server operably connected to the network and the multimedia data object, the streaming media server adapted to stream the multimedia data object over the network; a client computer operably connected to the network, the client computer adapted to receive the multimedia data object over a network, the client computer having a rendering program that is adapted to render the multimedia data object into a multimedia presentation; and a calculation program that calculates for a plurality of frames in the multimedia data object a size of a substantially sufficient amount of data of the multimedia data object that must be sent to client computer before the client computer renders a multimedia presentation represented by the multimedia data object at one of the frames.
17. The method of claim 1, additionally comprising generating a segment index for storing the determined size for each of the segments.
18. The method of claim 17, wherein the segment index is generated prior to receiving a request from a client computer for the multi-media data object.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
October 6, 1998
November 6, 2001
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.