[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