Web Projects Consulting

Fixing Wrong or Different Frame Rate of a Video File and Container

WARNING!
This article is deprecated.
A newer article either has been already published or is going to be published within the nearest days.

The problem is seen well when you get video file information with ffmpeg:

ffmpeg -i [bad_file].avi

It will show something like:

Seems stream 0 codec frame rate differs from container frame rate: 30000.00 (30000/1) -> 25.00 (25/1)
Input #0, avi, from '[bad_file].avi':
Duration: 01:06:42.20, start: 0.000000, bitrate: 1466 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 608x320 [PAR 1:1 DAR 19:10], 25.00 tb(r)
Stream #0.1: Audio: mp3, 44100 Hz, stereo, s16, 160 kb/s

The files like the above do not play at my WDTV device and re-encoding them in a normal way with Avidemux or HandBrake leads to some funny results.

To salvage files like these I take the following steps (though there is a zillion ways if doing that better than me).

1. Rip audio

mplayer [BAD_SOURCE].avi -ao pcm:fast:file=audio.wav -vc null -vo null

2. Encode audio (I prefer AAC encoder from Nero):

neroAacEnc -if audio.wav -q .5 -ignorelength -of audio.m4a

3. Rip and encode video with ffmpeg (I prefer x264 codec):

ffmpeg -i [BAD_SOURCE].avi -vcodec libx264 -b 1400000 -sameq -an video.m4v

Hint: choose a 15-20% lower bitrate than original (in our case above: -b 1400000).

4. Mux together into a nice matroska file

mkvmerge -o [GOOD_OUTPUT].mkvĀ  -d 1 -A -S video.m4v -a 1 -D -S audio.m4a --track-order 0:1,1:1

5. Cleanup

rm -f [BAD_SOURCE].avi video.m4v audio.m4a

Enjoy. And please do not use packed bitstream any more, it’s ugly.

One thought on “Fixing Wrong or Different Frame Rate of a Video File and Container

  1. JohnF

    I have a slightly simpler process, though I wish/hope there is a way to do it without using two tools.

    Remux with mplayer:

    mencoder -oac copy -ovc copy source.file -o source.avi

    Then remux with ffmpeg:

    ffmpeg -vcodec copy -acodec copy -o source.avi source.mp4

    Interestingly, it still reports the same error message, though it does remux into a proper mp4 container.

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.

Web Projects Consulting
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.