ffmpeg reads all m2v elementary streams as having a container framerate of 25fps, and carries this value through to an encoding ffmpeg -i 29.97fps.m2v -vcodec mpeg4 -b 900k out.avi FFmpeg version SVN-r11306, Copyright (c) 2000-2007 Fabrice Bellard, et al. configuration: --enable-memalign-hack --enable-pp --enable-swscaler --enable-g pl --enable-liba52 --enable-libamr-nb --enable-libamr-wb --enable-libfaac --enab le-libfaad --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libvorbi s --enable-libtheora --enable-libxvid --enable-libx264 --disable-ffserver --disa ble-ffplay --enable-avisynth --enable-small --enable-pthreads --extra-ldflags=-s tatic --extra-cflags=-O4 -mtune=pentium4 -mfpmath=sse -msse -fno-strict-aliasing libavutil version: 49.6.0 libavcodec version: 51.49.0 libavformat version: 52.3.0 built on Dec 23 2007 11:11:23, gcc: 4.2.2 Seems stream 0 codec frame rate differs from container frame rate: 29.97 (30000/ 1001) -> 25.00 (25/1) Input #0, mpegvideo, from '29.97fps.m2v': Duration: 00:00:03.5, bitrate: 9015 kb/s Stream #0.0: Video: mpeg2video, yuv420p, 640x416 [PAR 1:1 DAR 20:13], 9000 k b/s, 25.00 tb(r) Output #0, avi, to 'out.avi': Stream #0.0: Video: mpeg4, yuv420p, 640x416 [PAR 1:1 DAR 20:13], q=2-31, 900 kb/s, 25.00 tb(c) Stream mapping: Stream #0.0 -> #0.0 Press [q] to stop encoding frame= 122 fps= 74 q=10.8 Lsize= 678kB time=4.9 bitrate=1138.0kbits/s video:669kB audio:0kB global headers:0kB muxing overhead 1.264298% the resulting encode out.avi takes the framerate from the incorrect container framerate and ends up with 25fps.