The present invention relates generally to multimedia files and more specifically to multimedia files that can be played when only portions of the multimedia file are available.
The Internet revolution has brought about a fundamental change in the distribution of information in the world. The collection and distribution of knowledge amongst users has undergone a fundamental paradigm shift, where collectively created encyclopedias are as commonly used as video-sharing and downloading services. The ability to readily exchange information has also cleared the path for the distribution of multimedia content on the internet. This distribution may occur via any number of methods, including but not limited to direct-download from a server, server-managed content distribution, or through peer-to-peer torrent networks.
In recent years, certain advancements in the downloading strategies for content distribution have lead to systems that enable the piecewise downloading of a multimedia file, which can later be reassembled to provide the complete file in the correct order of bytes. Piecewise downloading may enable receiving data from multiple simultaneous sources, possibly aiding in the speed-up of the downloading of the overall file. With piecewise downloading, there is generally no predictable pattern for transmitting the different file segments, and the size of the downloaded pieces may also be indeterminable.
Typically, multimedia files are made up of specific sections such as a header, media data or payload, and an indexing section which may be optional. Typically, the header section contains technical descriptions of the media data, and without the header section the media data cannot be decoded and played back. Typically, the indexing section contains information that describes the position of media data chunks within the file, allowing for random seeking during playback. Furthermore, if the media data section contains any errors, then the data in the indexing section provides a manner by which the next error-free media data chunk can be located; therefore, the indexing section can also offer some degree of error tolerance.
While some files may employ distributed means of encapsulating the information contained in each one of these sections, it is by far more likely that certain information related to decoding is collected in one particular segment of the file. For example, in many different container formats header sections are placed as single, contiguous blocks of data at the front-end of files. Hence, the specific segmentation of critical information required for decoding a multimedia presentation may mean that until a file has been reconstructed in its entirety, it cannot be successfully decoded.
Systems and methods are described that enable multimedia content to be decoded and presented with only partially-available multimedia content including critical information or playback data.
In one embodiment, a method of playing a partially provided multimedia file comprises reading a portion of a partially provided multimedia file including content data having a plurality of media frames; identifying a critical information chunk within the plurality of chunks in the media data section, the critical information chunk including information for decoding the content data without receiving further portions of the partially provided multimedia file; decoding the content data based only on the identified critical information chunk; and presenting the decoded content data.
In another embodiment, a method of encoding a partially provided multimedia file comprises supplying content data from one or more sources; incorporating critical information prior to a key frame in the supplied content data; repeating the incorporation for one or more key frames in the supplied content data, the critical information including information for decoding the supplied content independently of other key frames or other portions of the supplied content; and generating a multimedia file from the supplied content and the incorporated critical information.
In yet another embodiment, a system for playback of a partially provided media file comprises a media server and a client processor. The media server is configured to transmit a partially provided media file having critical information proximate one or more key-frames of media content within the partially provided media file. The client processor in network communication with the media server is configured to send requests for the partially provided media file to the media server and the media server is configured to transmit the partially provided media file requested. The client processor comprises a playback engine configured to locate the critical information to independently decode the partially provided media file based on the located critical information.
The above-mentioned and other features of this invention and the manner of obtaining and using them will become more apparent, and will be best understood, by reference to the following description, taken in conjunction with the accompanying drawings. The drawings depict only typical embodiments of the invention and do not therefore limit its scope.
Turning now to the drawings, multimedia files and systems for progressively assembling and playing remotely stored multimedia files are described. The multimedia file can be progressively assembled from one or many sources, with different pieces used to build the entire file over time. In many embodiments of the invention, critical information or playback data required by a player to commence playing content within the multimedia file is repeated in various locations throughout the file. This critical information is information used by a player for decoding the video, audio, and other stream types in the file. For example, the critical information can include, but is not limited to, information indicative of a video codec standard, information indicative of an audio codec standard, video resolution, audio sampling rate and/or total channels. In many embodiments, the critical information is repeated within the media data section of the file, proximate access frames. In several embodiments, the critical information is included in the media data chunk of one or more or every access frame. In a number of embodiments, the critical information is included in an information chunk that is interleaved into the media data section within the file in such a way that each instance of the critical information is located proximate to one or more or every access frame. In several embodiments, the critical information provided within the multimedia file is different for two or more of the access frames and/or is not repeated with respect to each access frame in the multimedia file. In many instances, the critical information is expressed at least partially with respect to a set of pre-determined profiles. In a number of embodiments, the critical information for a conventional multimedia file is provided in a separate secondary file to facilitate playing the multimedia file during progressive download. In further embodiments, the progressive download process involves use of boundaries that are aligned with the access frames within a multimedia file.
A multimedia distribution network in accordance with an embodiment of the invention is shown in
Repetition of Critical Information or Playback Data within a Multimedia File
A hypothetical build-up of a multimedia file as it is progressively downloaded is illustrated in
Multimedia files in accordance with embodiments of the invention include critical information in multiple Locations throughout the file. As soon as a player receives the critical information, the player has the capability of playing content within the multimedia file that has already been downloaded. In several embodiments, the critical information is paired with the multimedia information to which it relates. Therefore, the critical information is downloaded as the multimedia information is downloaded. The manner in which the information is encoded and the frequency with which the critical information is repeated throughout the multimedia file can be determined by the total amount of information necessary to successfully decode the presentation and/or the requirements of a particular application.
Pairing Critical Information with Access Frames
Generally, multimedia files have access frames which can be decoded and presented independently, without the need for any prior or future information in the payload section. When a user instructs a player to play from a particular access frame, the player can play the content once it has been downloaded provided the critical information necessary for successfully decoding and presenting the multimedia data is available to the player. In many embodiments, the critical information is provided in conjunction with the access frames. In a number of embodiments, the access frames are included within containers in the multimedia file and the critical information is expressed in the header of the container. In other embodiments, the critical information can be expressed in other locations within the multimedia file.
Multimedia files in accordance with several embodiments of the invention can include separate information tracks that are interleaved with the multimedia content within the file so that the critical information appears immediately before one or more or each access frame or proximate an access frame. In many embodiments, the information track contains a unique marker, which can be any number of bits but is typically 4 to 16 bytes or longer, that can be uniquely identified with a reasonably low probability of unintentional emulation in the payload data. The information track can express the critical information in any manner including those outlined above involving references to pre-determined profiles and/or the direct specification of parameters for the audio, video, subtitle and/or other streams that follow the portion of the information track containing the critical information.
A multimedia file including an information track in accordance with an embodiment of the invention is illustrated in
In
Repetition of critical information throughout a multimedia file increases the file's overhead. In order to reduce the number of bits required to express the critical information, a series of encoding profiles can be established for multimedia content and references to profiles can be used within a multimedia file as opposed to specifying critical information in its entirety multiple times throughout the file. In many embodiments, profiles including sets of predetermined parameters for audio, video, subtitle, and other pertinent data are pre-defined. As discussed above, multimedia files in accordance with many embodiments of the invention include a profile reference in the containers containing access frames and/or as data within a separate information track. The pre-determined parameters specified in a profile can include, but are not limited to, video horizontal and vertical resolution, video frame-rate, audio sampling rate, audio channel number, subtitle format, video and audio codec type, and/or subtitle resolution. The selection for the particular profile may be done via an indicator in the container which encapsulates the access frames.
In a number of embodiments, the multimedia file can directly specify certain aspects of the critical information and provide references to pre-determined profiles for other aspects of the critical information. For example, the horizontal and vertical resolutions for the video portion could be specified independently, while all other parameters are selected from the pre-determined profiles. In several embodiments, restrictions are imposed on the independently-specified parameters. For example, horizontal and vertical resolutions can be limited to units of 4, 8, 16 or larger pixels. The manner in which references to pre-determined profiles and/or directly specified parameters are encoded within a multimedia file in accordance with an embodiment of the invention typically depends upon the requirements of a particular application. Any of a variety of formats can be specified. The encoding typically involves balancing ease of decoding with limiting the amount of overhead within the multimedia file.
In order to easily identify access frames, these frames can have a stream identifier that is different from the stream identifier used to indicate non-access frames. This stream identifier may be 4 bytes, or more, and a requirement may be placed on all individual frames in the payload section such that they start on a four-byte aligned boundary. This may facilitate the search for access frames and reduce the probability that the stream marker is emulated by the payload data.
Applications that are used to progressively download multimedia files in accordance with embodiments of the invention can require that utilities which may be used to distribute the file via a network perform any data partitioning on a boundary that is aligned with the start of one or more or each access frame, or one or more or each critical information chunk. In this way, each segment starts with an access frame or critical information chunk and a separate marker as well as a seek operation in the decoder can be omitted.
In a number of embodiments, a player progressively downloading a multimedia file also obtains a secondary file that specifies the location of one or more or every access frame, or critical information chunk in the multimedia file, along with the appropriate header and index information for the multimedia file. In this way, the secondary file can be obtained in its entirety and used as a guide in playing back partial sections of the multimedia file. In several embodiments, the secondary file is expected to be much smaller than the multimedia file, and as a result can be more rapidly obtained via a network-based distribution method. A secondary file can be particularly useful in applications where a significant number of conventional multimedia files exist. Use of secondary files can be more desirable than re-encoding each of the existing multimedia files.
While the above description contains many specific embodiments of the invention, these should not be construed as limitations on the scope of the invention, but rather as an example of one embodiment thereof. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their equivalents.
This application claims priority to U.S. Provisional Application No. 60/990,663, filed Nov. 28, 2007, the disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60990663 | Nov 2007 | US |