401
edits
(added Ogg specifics) |
(added more introduction on general video) |
||
| Line 1: | Line 1: | ||
== Introduction to Video == | |||
A video consists of multiple tracks of data temporally multiplexed (or: interleaved) with each other such that at any point in time the data from all track relevant to that time is not "far away". To be a video, there has to be at least a video track and a audio track. There can be, however, multiple audio tracks (e.g. multiple languages), multiple video tracks (e.g. different camera angles), multiple timed text tracks (e.g. subtitles in different languages), and other tracks, such as timed images (e.g. slides of a presentation) or lighting information for a concert. | |||
To put these multiple tracks of data together into one file (or stream), there is a container (or encapsulation format). | |||
To compress high bandwidth content such as video or audio into a smaller file, there are codecs (encoder/decoder). | |||
Thus, the simplest video with a caption consists of a container, a video codec, an audio codec and a captions that have been multiplexed as a timed text codec. | |||
== Choosing a Caption Format == | |||
For a given container, you need to have a defined mapping for multiplexing a data stream for a given codec into the container. This mapping specification also needs to be supported by tools, frameworks, and applications - in particular video players. | |||
In theory, given a multiplexing rule, you can put any video codec and any captioning format in any container. However, multiplexing rules don't exist for all codec/container combinations. | |||
Instead, video codecs tends to have a conventional native container and the choice of video codec dictates the container and audio codec to use. By choosing Ogg Theora as a baseline codec, the native container format is Ogg and the native audio codecs are one of Vorbis, Speex, or FLAC. Gecko embeds an Ogg-specific playback framework called liboggplay. It only supports the Ogg container format. | |||
In theory, different containers also have different conventional timed text formats. MPEG-4 for example supports W3C TimedText, while Flash supports a proprietary CuePoints format (http://www.actionscript.org/resources/articles/518/1/Creating-subtitles-for-flash-video-using-XML/Page1.html) and a simple version of W3C TimedText (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/TimedTextTags.html). | |||
While the situation is fairly fixed for codecs inside the Ogg container (more from a political/legal standpoint rather than technical, actually), Ogg hasn't chosen one conventional native caption codec format yet. Instead, the Ogg community has experimented with several formats, amongst them CMML and Kate. | |||
edits