View Full Version : XviD & MPEG4 standard
MartinP
2nd January 2003, 09:06
Can someone explain to me, please...
In Q&A no.10, one can read:
As XviD is creating MPEG4-compliant video streams, you can play your movies encoded today with any MPEG4-compliant decoder (i.e. any future version of XviD, or other MPEG4 players).
Why then, I can't play XviD encoded movie when I don't have an XviD decoder installed, but have an DivX or WindowsMedia MPEG4 codec instead? In what sense is the XviD result MPEG4 compliant, then?
Thanks,
Martin.
NuclearFusi0n
2nd January 2003, 09:14
every avi file has a "fourcc" that is just four letters decribing the codec...with nothing handling the "xvid" fourcc, the computer doesn't know what to use to decode it.
MartinP
2nd January 2003, 09:32
Well, I understand that. But what use is a compatibility of internal structures of a file to me, if the file as a whole is not compatible? Isn't that the same as if I said "rolls and dumplings are in fact the same, both contain flour and water"? Or is the problem in the file format I use (i.e. .avi)? If I choose another extension (.mpg ?), would the compatibility problem be gone?
Thanks,
Martin.
celtic_druid
2nd January 2003, 09:43
Just change the FourCC from XVID to DX50. Problem solved. If you change the extension from AVI to MPG, then the file will still be an AVI and you will still have problems.
The whole point is that the video stream is MPEG4-compliant, so you don't need to re-encode the whole thing.
DaveEL
2nd January 2003, 09:50
Originally posted by MartinP
Well, I understand that. But what use is a compatibility of internal structures of a file to me, if the file as a whole is not compatible? Isn't that the same as if I said "rolls and dumplings are in fact the same, both contain flour and water"? Or is the problem in the file format I use (i.e. .avi)? If I choose another extension (.mpg ?), would the compatibility problem be gone?
Thanks,
Martin.
You can change the fourcc on your avi files (most xvid builds seem to come with avic which does it) change it to DIVX or DX50 and the divx player will decode it... if divx supports all the features you used to encode in xvid. One reason the xvid fourcc is used as xvid supports stuff that divx doesn't. In a real .MP4 file there is no difference between the codec used but you still have to be careful which features you use as not all the decoders support all the features. Really for avi some kind of usiversal mpeg4 fourcc should be used by all the encoders but until they all support the same features thats not gonna happen.
DaveEL
ps i recomend installing ffdshow as it will decode nearly everything and means you only need one codec to play back most stuff)
MartinP
2nd January 2003, 10:04
Thank you all.
...and concerning .mpg. I've seen files with .mpg or .mpeg extension, and I'm not sure they're AVIs (rather not). I thought they could be the universal codec-independent file format.
Martin.
ChristianHJW
2nd January 2003, 10:08
The real benefit of having MPEG4 compatible video streams is with respect to playback on future standalone hardware devices, bundled with MP4 or other suitable file containers, not for .avi and playback on a PC ....
Matroska will offer the possibility to store video streams as 'native' video streams using Matroska specific identifiers, and of course there are such for all the different MPEG4 profiles . As a result you should be able to put an XviD or DivX 4/5 stream into a matroska container using a 'native' stream type and ID, and decode it with a ISO standard MPEG4 decoder plugin on playback. The FourCC of the original XviD/DivX stream can be stored in the Matroska track header as a kind of backup, but in fact it wont be used for playback. If the stream is transmuxed from an AVI into a matroska 'native' stream, however, the muxing application has to remove those 'dummy' frames that Vdub inserts if b-frames are used with AVI, as no such thing is needed in Matroska files, while the frame order stays the same ( encoding order, not presentation order ).
Of course the main goal will be to be able to encode from VdubMod into 'native' matroska files without having to create an AVI first, using an XviD plugin ( MPEG4 ISO encoder plugin, maybe/hopefully with an UCI interface, or hardcoded into VdubMod ) ...
So, from our perspective there will be no such form of different MPEG4 'codecs' , each with its own FourCC, but only a couple of different MPEG4 ISO encoder/decoder plugins, each with its own name displayed in the properties page of course, and hopefully all x-compatible :D ! If you dont like this and want XviD streams only be played with XviD compatible decoders you can always use Matroska in AVI/VfW compatibility mode, using FourCC, but with reduced x-platform compatibility ...
MartinP
2nd January 2003, 11:07
ChristianHJW: Why the use of the future tense? Do you say that there's no universal MPEG4 file format nowadays, that everything I burn on CD as .avi will have to be resaved into a different file format in the future??? Is there any universal MPEG4 file format existing, generally accepted and with support in Windows already today?
Martin.
Rasi
2nd January 2003, 11:42
.mp4
search the forum, there are windows players... ugly interfaces and quite slow tho
ChristianHJW
2nd January 2003, 12:16
Originally posted by MartinP ChristianHJW: Why the use of the future tense?
.. because Matroska is not ready yet. Its lazy Nic's fault, he doesnt help us with improving our parser filter, and spyder's fault as it took him 2 weeks to find a simple bug in his Javatroska JMF implementation :D :D !!!
Do you say that there's no universal MPEG4 file format nowadays, that everything I burn on CD as .avi will have to be resaved into a different file format in the future??? Is there any universal MPEG4 file format existing, generally accepted and with support in Windows already today?
Lets name them all and see what they do and cant do ( i leave those away that cant do MPEG4, like .mpg or Real ) :
1. AVI :
Pros : supported on Windows : Perfect !
Cons :
- Codec recognition based on FourCC, every MPEG4 codec has its own FourCC, making hardware support and x-platform compatibility a bloody mess
- no good b-frames handling
- incapable to hold VBR audio streams ( spec compliant )
- no inherent subtitles specs
- no inherent menue specs
- no EDC in files, makes mode 2 form 2 risky
- no streaming possible
2. MP4 ( MPEG4 file container ) :
Pros :
- Very good container based on Quicktime, flexible and future proof stucture thanks to 'Atoms'
- hardware support is planned and very likely
- can handle menues, chapters and subtitles
- perfect streaming support ( RTP protocol )
Cons :
- Only a small number of codecs are allowed ( MPEG4 video, AAC, TwinVQ audio ) in MP4 files, although the MPEG4IP project has 'extended' these specs significantly, but without metting 'real' MPEG4 specs then
- Very badly supported on Windows ( yet ) ; only a few ( buggy ) playback filters, no editing/encoding proggies
3. OGM ( Tobias Waldvogels VfW/Dshow Implementation in Ogg container ) :
Pros :
- Can hold VBR audio streams, but only via DirectShow or if encoder and decoder are hardcoded in the muxing/parser/decoder filters, for the time being only Vorbis
- Good support on Windows meanwhile ( thanks to koepi and Suiryc )
- Subtitle support, even for multiple streams/languages
- Streaming should be well possible using Icecast/Ogg streaming server, but only HTTP for the time being
Cons :
- Not very good documented, Dshow parser filter not open source
- Video stream creation relying mainly on VfW ( AVI ) and in principal DShow ( but there are no DShow based encoding/editing apps AFAIK )
- no menues specified ( yet )
- hardware support highly unlikely
- there are some minor problems when using the Ogg container for holding video, as the container itself has no defined way of how the data are stored in the 'pages', this makes editing/seeking in the files at least difficult
- good EDC in the files for mode 2 form 2 burning
4. MCF ; http://sf.net/projects/mcf
In principal the same as matroska, as both have nearly the same features, except that Lasse's binary based specs need a special mode ( broadcast mode ) to allow streaming, so the user has to define on file creation if he wants to stream the file or not.
5. matroska ; http://matroska.org
Cons :
- Not yet available ( go spyder, go :D !! )
- hardware support at least questionable
Pros :
- well documented, open standard, all libs open source, very flexible license even for companies
- Can hold all existing codecs in principal, either based on FourCC/GUID/UUID ( VfW/Dshow, Quicktime, Realmedia compatibility modes ) or matroska native codec IDs
- all VBR audio streams supported
- codec plugin system planned ( UCI ), so in principal there is no need for hardcoded codec support in the muxer/parser/decoder filters
- non-frame based video codecs supported ( Wavelet )
- DVD like menuing system, chapters
- Subtitles supported ( USF ), high flexibility due to plugin system ( UCI )
- well prepared for streaming
- very flexible, future proof architecture thanks to EBML (http://sf.net/projects/ebml)
- Has built in EDC and also a mode 2 form 2 burning extension as part of the specs
- built for very good x-platform support
Did i forget any ? Make your pick ;) ...
MartinP
2nd January 2003, 13:32
ChristianHJW: Thanks for the exhaustive list. Simply said, there are many available MPEG4 capable file formats, but none is generally accepted (yet). Or, in other words: mess. Very sad. :-(((
Martin.
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.