[mythtv] Musings On Standard File Formats

Ben Bucksch linux.news at bucksch.org
Sat Apr 19 09:45:30 EDT 2003


Matt Zimmerman wrote:

>The AVI file format is pretty much crap.
>
I guess there is a reason for WMV ;-).

To my knowledge, most common video container formats allow for different 
codecs. Starting from Quicktime, AVI, WMV, even MPEG container (IIRC) 
and RealPlayer's (I guess). Ogg does as well, but the VP3 story shows 
that the codecs need some adaption (not sure how true that is for the 
other containers as well).

*All* of the containers listed above (apart from ogg maybe) can hold 
video in the MPEG4 codec.

My personal opinion, although it's not worth much, because I am not the 
one coding - it's your project:
I am keen on the highest possible quality and told myself that I won't 
let myself locked into any program anymore, so proprietary codecs are 
no-no for archiving. However, the MPEG4 (software) and MPEG2 (hardware) 
codecs used by MythTV are standard (aren't they?), and the only 
proprietary part is the NuppelVideo container, and it's possible to 
transcode the container without data loss / degration of quality, right? 
I don't mind much having to run a transcoding tool, when I want to 
export videos, as long as there is no quality/data loss.

Ben Bucksch


Terminology (just informative for those who don't know yet, feel free to 
skip):
Codec: how the information (video: pixel, moving etc.; audio: tones 
etc.) is encoded / decoded, often highly compressed. Audio and Video 
codecs are usually independant and result in completely separate data.
Container: how the codec data is placed into a file. Needs to place 
video, audio and possibly other information (subtitles) into the file so 
that the decoder has the relevant video and audio information available 
at the same time - you can't place all the video at the beginning and 
the audio in the end, they need to be interleaved for continued reading 
and playing without having read the whole file into memory. Fast seeking 
in files appearantly needs extra information. For streaming over the 
internet or live playing (starting to play without knowing the end), the 
same is true. That's the container's job.
Protocol: How the container stream is requested and sent over the network.
Examples: MPEG video and MP3 specifies both a codec and a container. Ogg 
is the container, Vorbis the codec (IIRC). AVI, Quicktime, WMV/WMA, rm 
(RealPlayer) are containers only. HTTP and RTP/RTSP are protocols.

Disclaimer: I don't know much about the formats, that's only what I read 
at various sources.



More information about the mythtv-dev mailing list