In ffmpeg, adjusting framerate is as easy as setting the -f flag. Frames are either duped or dropped to achieve the result, depending on input framerate.
In mencoder, however, I'm having a hard time understanding how to change framerate while keeping audio in sync.
I have some sources at 29.97fps, destined for NTSC DVD. These are low-motion videos that really don't benefit hugely from more fps, but might benefit more from higher bitrate. So, my thought was to reduce the framerate to 23.976, apply soft telecine, and put the ~20% saved bits back into the bitrate. The net result is less frames but at higher quality, which I think will work well for my sources.
However, when I try to set -fps 30000/1001 -ofps 24000/1001, the video plays back slowly and out of sync with audio. It keeps warning me that frames are dropped (which is good), but the result is nothing close to usable.
I can provide logs or samples if necessary, but it seems it should be pretty straightforward to adjust framerate. Have I missed something? Thanks!
+ Reply to Thread
Results 1 to 8 of 8
Thread: Changing framerate with mencoder
Yes, as quoted from my original post:
However, when I try to set -fps 30000/1001 -ofps 24000/1001, the video plays back slowly and out of sync with audio.
It makes a difference where you put "-fps" the input frames per second, and "-ofps".
"-ofps" should be after all other commands, and just before your output file.
and if I recall correctly, "-fps" should be in front of your input file.
I don't think you have to set input frame rate unless you're using a filter that specifically requires it, or you have a file that requires it.
And it is just "-fps" for input frame rate, there is no "-ifps" command AFAIK.
Last edited by gregalan; 20th Jan 2013 at 06:30.
this page. Maybe it's a player thing and not an encoder thing.... I don't know. I'm not sure I really understand it.
io=<ifps>:<ofps> For each ifps input frames the filter will output ofps frames. The ratio of ifps/ofps should match the -fps/-ofps ratio. This could be used to filter movies that are broadcast on TV at a frame rate different from their original framerate.
as a side note: if you don't reencode animations of screen captures, filmdint is probably a better method to change the frame count. (frame rate is just a flag in the stream and container and thus not really interesting )