Blender's implementation of FFMPEG using the Xvid codec option writes the wrong FourCC code into the .avi header, causing problems with playability by apps that can otherwise play Xvid-encoded movies with no problems.
Correct FourCC should be 'XVID' (all upper case)
Blender FFMPEG writes the FourCC as 'xvid' (all lower case)
FourCC codes are case sensitive.
Attached .blend is set up for writing out a quick OpenGL animation using FFMPEG (no muxing) -- just write the file, then check the FourCC code with an app like mediainfo. Also attached is just such a file.
Windows Vista Home Premium SP2 32-bit
AMD Athlon 64x2 5600+ 2.8GHz
3Gb RAM
ATI Radeon x700 128Mb, Catalyst
Blender 2.50a2, BF version, bundled Python
Python 2.6 installed on system
Description
Event Timeline
I guess technically speaking this is a bug in FFMPEG, not Blender, you can find various posts online that advise to use -vtag XVID to generate video files that can play on Windows. We could work around this by overriding the default FourCC, should be fairly simple to do for anyone interested.
Don't know why FFMPEG's default FourCC is all lower case, but according to the Xvid devs, that's just wrong. They bundle a FourCC changer mini-app with their codec distrib'n that can fix the prob in a few seconds, so it may be a fairly common error.
In any case, if Blender is implementing an FFMPEG w/Xvid option that'll be used on Windoze, it'd be user-friendly to fix FFMPEG's error before the .avi files get written out.
According to http://www.ffmpeg.org/faq.html point 3.10 the recommended fourcc for xvid is "FMP4" (upper case) like all codec based on the ISO MPEG-4 standard. Forcing any string as fourcc is possible tough.
Actually 3.10 says that FMP4 is the "default" FourCC, not the "recommended" FourCC. I also see that FFMPEG apparently has its own MPEG4 encoding scheme that is called by '-vcodec mpeg4'. This is not the same as using the Xvid codec, nor is it the same as using the DivX codec, or any other specific implementation of the MPEG4 standard. Now I understand why I have been getting different results using FFMPEG with the Xvid encoding option, compared to when using "AVI codec" and specifying Xvid as the codec. The latter actually uses the Xvid codec; FFMPEG does not, it seems instead to write an incorrect FourCC ('xvid') to its own mpeg4 implementation. Also note that you cannot configure Xvid from within FFMPEG, as you can from within the "AVI codec" option, which uses the actual Xvid codec and makes its set of configuration dialogs accessible.
'FMP4' is FFMPEG's FourCC for its own mpeg4 implementation. The correct Xvid FourCC, according to the Xvid devs, is 'XVID'. 'xvid' is a an error, used in the FFMPEG FAQ example of how to force a specific FourCC. This may be because the case issue does not apply on Linux as it does in Windows?
Another indication that FFMPEG does not actually us the Xvid codec when writing files using the FFMPEG/Xvid option in Blender is that when a file is being written, the Xvid Status window does not open (as it does when using "AVI codec" and selecting Xvid). AFAIK that status window is always invoked when the Xvid codec is doing its thing.
Fixed in r31911. XVID will now be written instead of xvid. Thanks for reporting and all involved for their input.