germanjulian
Jan 5 2004, 15:48
Sebastian Mares
Jan 5 2004, 15:51
MP4 is a container which can hold audio (AAC, MP3...) or video AFAIK. WAV is a container as well - most of the time containing PCM. Ogg is a container, too, usually containing Vorbis or FLAC.
Is it just the extension? I tought this was more complicated than that.
You could read
this document if you are interested in what mpeg4 is all about.
The task of designing a multimedia file format involves designing for a staggering number of features: efficient data encoding, tagging, streaming, multiplexing, UI, etc. Each feature has its own pitfalls, more and less advanced approaches, etc. For the format to be viable, one must be able to add new things to it in a compatible manner. This is just too much for any single developer.
At the same time, some things (such as encoding) are exciting and competitive, while others (such as tagging) are boring and beaten to death. Each feature is to be written, read, and otherwise processed by various software, and software writers are not excited to support yet another incompatible tagging scheme.
Hence, it is natural to separate the design into multiple levels (just like elsewhere in computer industry: networking, compilers, OSes, etc.). The codec (PCM, Vorbis, AAC, whatever) encodes the data into a stream of bits or frames that only it can understand. These frames are placed in a file which describes what codec is used with what parameters, and also allows for things such as seeking, tagging, plexing, detecting errors, streaming, you name it. The file can contain a wide variety of data. Each feature is designed independently.
The format of such file, along with the software that can work with it, is the container.
Historically, developers have been creating special formats for their codecs. The formats have been inflexible leading to ugly hacks such as ID3. Eventually, formats started becoming containers, notable examples being AVI, WAV, PNG, and JPEG. These formats have narrow purposes (video, audio, lossless and lossy images) but will accept any additional data you care to throw in.
Then, people decided to try and design universal containers once and for all, so we have MP4, Ogg and Matroska.
QUOTE(Doctor @ Jan 5 2004, 02:29 PM)
Then, people decided to try and design universal containers once and for all, so we have MP4, Ogg and Matroska.
It should be noted that neither MP4 nor Ogg were intended to be general container formats. MP4 is a little special because it is basically a subset of the QuickTime containter, which IS meant to be a general container. So, it has the basic design to be, but the specs set limits for it for compatibility reasons.
Ogg was originally designed for one purpose, to carry Vorbis. It is in fact the polar opposite of Matroska. Where Matroska seeks to place as much data as possible at the conainer level, Ogg seeks to place as little as possible there. The result is that to understand anything about the streams in an Ogg container you actually have to start decoding the data. Whereas in Matroska I could use the Matroska Stream Editor (that has no concept of codec and can't decode anything) to to fully edit a file.
Each design has its advantages, but with the speed of todays computers I personally find Matroska to be a better solution.
Are there any places that I can find the detailed descriptions for those containers?
Florian
Jan 11 2004, 09:32
QUOTE(nOmAd @ Jan 11 2004, 05:25 PM)
Are there any places that I can find the detailed descriptions for those containers?
MatroskaMPEG-4Ogg
QUOTE(ganymed @ Jan 11 2004, 07:32 AM)
QUOTE(nOmAd @ Jan 11 2004, 05:25 PM)
Are there any places that I can find the detailed descriptions for those containers?
MatroskaMPEG-4Ogg thx
well the best place

to find out everything you need to know about MP4 (without getting into technical details) is surely my
MP4 FAQand my
Matroska FAQQUOTE
It should be noted that neither MP4 nor Ogg were intended to be general container formats. MP4 is a little special because it is basically a subset of the QuickTime containter, which IS meant to be a general container. So, it has the basic design to be, but the specs set limits for it for compatibility reasons.
wrong, mp4 explicitely offers the possiblity to carry any content, not only those covered in the mpeg-4 standard
that way it is already possible to store vorbis and dvdsubs/vobsub/subpics in MP4 (tough for compatibility reasons its surely better to use the formats the standard offers as it goes for every container)