ISO MPEG-4: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
m (another sample link)
(we'll never stop finding new FourCCs for this codec; latest is M4CC)
 
(21 intermediate revisions by 10 users not shown)
Line 1: Line 1:
* FourCCs: FMP4, fmp4, DIVX, divx, DIV1, div1, MP4S, mp4s, M4S2, m4s2, xvid, XVID, XviD, XVIX, DX50, dx50, BLZ0, mp4v, MP4V, UMP4, 3IV2, 3iv2, DXGM, SEDG, WV1F, RMP4
* FourCCs: 3IV2, 3iv2, BLZ0, DIGI, DIV1, div1, DIVX, divx, DX50, dx50, DXGM, EM4A, EPHV, FMP4, fmp4, FVFW, HDX4, hdx4, M4CC, M4S2, m4s2, MP4S, mp4s, MP4V, mp4v, MVXM, RMP4, SEDG, SMP4, UMP4, WV1F, XVID, XviD, xvid, XVIX
* Matroska CodecIDs: V_MPEG4/ISO/SP (Simple Profile), V_MPEG4/ISO/ASP (Advanced Simple Profile)
* Matroska CodecIDs: V_MPEG4/ISO/SP (Simple Profile), V_MPEG4/ISO/ASP (Advanced Simple Profile)
* Samples:
* Samples:
** 3IV2: [http://www.mplayerhq.hu/MPlayer/samples/V-codecs/3iv2/ http://www.mplayerhq.hu/MPlayer/samples/V-codecs/3iv2/]
** 3IV2: http://samples.mplayerhq.hu/V-codecs/3iv2/
** BLZ0: [http://www.mplayerhq.hu/MPlayer/samples/V-codecs/BLZ0/ http://www.mplayerhq.hu/MPlayer/samples/V-codecs/BLZ0/]
** BLZ0: http://samples.mplayerhq.hu/V-codecs/BLZ0/
** DX50: [http://www.mplayerhq.hu/MPlayer/samples/V-codecs/DX50-DivX5/ http://www.mplayerhq.hu/MPlayer/samples/V-codecs/DX50-DivX5/]
** DCOD: http://samples.mplayerhq.hu/V-codecs/DCOD/
** M4S2: [http://www.mplayerhq.hu/MPlayer/samples/V-codecs/M4S2/ http://www.mplayerhq.hu/MPlayer/samples/V-codecs/M4S2/]
** DIGI: http://samples.mplayerhq.hu/V-codecs/DIGI/
** MP4S: [http://www.mplayerhq.hu/MPlayer/samples/V-codecs/MP4S/ http://www.mplayerhq.hu/MPlayer/samples/V-codecs/MP4S/]
** DX50: http://samples.mplayerhq.hu/V-codecs/DX50-DivX5/
** SEDG: [http://www.mplayerhq.hu/MPlayer/samples/V-codecs/SEDG/ http://www.mplayerhq.hu/MPlayer/samples/V-codecs/SEDG/]
** DXGM: http://samples.mplayerhq.hu/V-codecs/DXGM/
** UMP4: [http://www.mplayerhq.hu/MPlayer/samples/V-codecs/UMP4/ http://www.mplayerhq.hu/MPlayer/samples/V-codecs/UMP4/]
** EM4A: http://samples.mplayerhq.hu/V-codecs/EM4A/
** WV1F: [http://www.mplayerhq.hu/MPlayer/samples/V-codecs/WV1F/ http://www.mplayerhq.hu/MPlayer/samples/V-codecs/WV1F/]
** FVFW: http://samples.mplayerhq.hu/V-codecs/FVFW/
** RMP4: [http://www.mplayerhq.hu/MPlayer/samples/V-codecs/RMP4/ http://www.mplayerhq.hu/MPlayer/samples/V-codecs/RMP4/]
** M4S2: http://samples.mplayerhq.hu/V-codecs/M4S2/
** MP4S: http://samples.mplayerhq.hu/V-codecs/MP4S/
** RMP4: http://samples.mplayerhq.hu/V-codecs/RMP4/
** SEDG: http://samples.mplayerhq.hu/V-codecs/SEDG/
** SMP4: http://samples.mplayerhq.hu/V-codecs/SMP4/
** UMP4: http://samples.mplayerhq.hu/V-codecs/UMP4/
** WV1F: http://samples.mplayerhq.hu/V-codecs/WV1F/
** XVID: http://samples.mplayerhq.hu/V-codecs/XVID/


MPEG-4 part 2 video.  Different encoders use different FourCCs to identify MPEG-4 content in AVI files, with DIVX, XVID, DX50, and FMP4 being most common.  Strictly speaking, some of these FourCCs should refer only to simple profile rather than advanced simple profile, but this can not be relied upon.
'''MPEG-4 part 2''' video.  Different encoders use different FourCCs to identify MPEG-4 content in AVI files, with DIVX, XVID, DX50, and FMP4 being most common.  Strictly speaking, some of these FourCCs should refer only to simple profile rather than advanced simple profile, but this can not be relied upon.


This does not include [[H.264]] video (MPEG-4 part 10).
This does not include [[H.264]] video ([[MPEG-4 part 10]]).




Line 25: Line 32:
libavcodec, the native MPEG-4 encoding library usually shipped with MEncoder, used to set the FourCC to 'DIVX' when encoding MPEG-4 videos (the FourCC is an AVI tag to identify the software used to encode and the intended software to use for decoding the video). This led many people to think that libavcodec was a DivX encoding library, when in fact it is a completely different MPEG-4 encoding library which implements the MPEG-4 standard much better than DivX does. Therefore, the new default FourCC used by libavcodec is 'FMP4', but you may override this behavior using MEncoder's -ffourcc option. You may also change the FourCC of existing files in the same way:
libavcodec, the native MPEG-4 encoding library usually shipped with MEncoder, used to set the FourCC to 'DIVX' when encoding MPEG-4 videos (the FourCC is an AVI tag to identify the software used to encode and the intended software to use for decoding the video). This led many people to think that libavcodec was a DivX encoding library, when in fact it is a completely different MPEG-4 encoding library which implements the MPEG-4 standard much better than DivX does. Therefore, the new default FourCC used by libavcodec is 'FMP4', but you may override this behavior using MEncoder's -ffourcc option. You may also change the FourCC of existing files in the same way:


   mencoder input.avi -o output.avi -ffourcc XVID
   mencoder input.avi -o output.avi -ovc copy -oac copy -ffourcc XVID


Note that this will set the FourCC to XVID rather than DIVX. This is recommended as DIVX FourCC means DivX4, which is a very basic MPEG-4 codec, whereas DX50 and XVID both mean full MPEG-4 (ASP). Therefore, if you change the FourCC to DIVX, some bad software or hardware players may choke on some advanced features that libavcodec supports, but DivX doesn't; on the other hand XviD is closer to libavcodec in terms of functionality, and is supported by all decent players.
Note that this will set the FourCC to XVID rather than DIVX. This is recommended as DIVX FourCC means DivX4, which is a very basic MPEG-4 codec, whereas DX50 and XVID both mean full MPEG-4 (ASP). Therefore, if you change the FourCC to DIVX, some bad software or hardware players may choke on some advanced features that libavcodec supports, but DivX doesn't; on the other hand XviD is closer to libavcodec in terms of functionality, and is supported by all decent players.


This annoying detail may fail decoding with third-party software , encoded with software that is based with recent libavcodec, like VLC.  
Because of this annoying detail, third-party software may fail to decode video that has been encoded with software based on a recent libavcodec, such as VLC.  
Modify the fourcc with 'DX50' or 'XVID' ,for example, should be resolve the problem.
Modifying the fourcc with 'DX50' or 'XVID', for example, should resolve the problem.


== See also ==
* [[H.263]]


[[Category:Video Codecs]]
[[Category:Video Codecs]]

Latest revision as of 22:13, 19 February 2009

MPEG-4 part 2 video. Different encoders use different FourCCs to identify MPEG-4 content in AVI files, with DIVX, XVID, DX50, and FMP4 being most common. Strictly speaking, some of these FourCCs should refer only to simple profile rather than advanced simple profile, but this can not be relied upon.

This does not include H.264 video (MPEG-4 part 10).


In particular, specifically for FMP4 fourcc, accordingly with MPlayer FAQ :

Q: Why do third-party players fail to play MPEG-4 movies encoded by MEncoder versions later than 1.0pre7?

A: libavcodec, the native MPEG-4 encoding library usually shipped with MEncoder, used to set the FourCC to 'DIVX' when encoding MPEG-4 videos (the FourCC is an AVI tag to identify the software used to encode and the intended software to use for decoding the video). This led many people to think that libavcodec was a DivX encoding library, when in fact it is a completely different MPEG-4 encoding library which implements the MPEG-4 standard much better than DivX does. Therefore, the new default FourCC used by libavcodec is 'FMP4', but you may override this behavior using MEncoder's -ffourcc option. You may also change the FourCC of existing files in the same way:

 mencoder input.avi -o output.avi -ovc copy -oac copy -ffourcc XVID

Note that this will set the FourCC to XVID rather than DIVX. This is recommended as DIVX FourCC means DivX4, which is a very basic MPEG-4 codec, whereas DX50 and XVID both mean full MPEG-4 (ASP). Therefore, if you change the FourCC to DIVX, some bad software or hardware players may choke on some advanced features that libavcodec supports, but DivX doesn't; on the other hand XviD is closer to libavcodec in terms of functionality, and is supported by all decent players.

Because of this annoying detail, third-party software may fail to decode video that has been encoded with software based on a recent libavcodec, such as VLC. Modifying the fourcc with 'DX50' or 'XVID', for example, should resolve the problem.


See also