In my attempts to encode a video to MPEG-2 in an MOV (which seems to be a valid combination, at least according to Wikipedia), using ffmpeg (-vcodec mpeg2video
) and other tools, I have become extremely confused about the FourCCs as well as seemingly related limitations on container formats. I have found:
m2v1
: This is the default FourCC used by ffmpeg when encoding MPEG-2, but it is unplayable in all media players I have tried (VLC, Windows Media Player, mplayer, and QuickTime Player). It also does not seem to exist in any FourCC databases I have found. Forum posts are rare and are related to old Mac software and compatibility problems regarding this code.mp2v
: I can force this code with ffmpeg. It is then playable in all common media players. However, MPEG-2 videos encoded with other encoders (such as Handbrake or Prism), to AVIs, do not use this code, they usempgv
, which makes me suspicious.mpgv
: I can force this code with ffmpeg as well, but only when outputting to an AVI (and Handbrake uses it too but only outputs Matroska and MP4). Ffmpeg fails when I attempt to output MOV. Forum posts also indicate trouble with thempgv
+ QuickTime container combination.
I'm very confused. Why are there different FourCC's for this, what is the correct one to use, how is it related to the container and, at the end of the day, if I want an MPEG-2 in an MOV what do I do?
I guess by "correct" in the title I mean compatible with the most common players; least likely to cause problems for normal people with stock software.
As a sub-question, VLC describes mpgv
and mp2v
as "MPEG-1/2 Video". So, if I see a video with FourCC mpgv
, is it MPEG-1, or is it MPEG-2? I suspect my lack of understanding of how all the MPEG versions are related to each other is coming into play here.