[MEncoder-users] How to Change FPS on a Broken TS Stream?

Bill Adams gofish at evilbill.org
Tue Jun 6 07:44:30 CEST 2006


Jeff Clagg wrote:
> vlc, mencoder, ts2es, dvbstream, probably more. Some may be more
> suitable than others.
>   
Thanks, I'll check them out.

>> When I encode and change the fps, e.g.: -fps 60000/1001 -ofps 30000/1001 
>> then I get a stream of "Skipping frame!" messages and the video looks 
>> jerky (that is I can notice the missing frames).
>>     
>
> Actually, you're seeing duplicate frames. Lost is 24fps, which is why
> frames have to be duplicated. The most efficient and best-looking thing
> to do is to use -ofps 24000/1001 for this show.
>   
Ah-ha! I wish it had occurred to me to think of that. softskip after fd 
seems to do the trick (removing fast seems like a good idea too). 
(Either that I am just tired and can no longer notice the skipping.) 
Here is the command that seems to work well at multiple frame rates e.g. 
24, 29.97, 30 (my projector is 30 when connected to my computer so that 
seems to look best for me):

mencoder \
        -oac copy \
        -ovc lavc \
        -lavcopts vcodec=mpeg2video:vqscale=4:dia=4:mbd=2:keyint=20 \
        -mpegopts muxrate=36000 \
        -mc 0.1 \
        -delay 0.03 \
        -vf pp=fd,softskip \
        -fps 60000/1001 \
        -ofps 30 \
        -of mpeg \
        -o Lost-HD.mpg $@


Trent Piepho wrote:
> On Tue, 6 Jun 2006 Bill Adams <gofish at evilbill.org> wrote:
>   
>> I am still not able to re-encode to dvd. If I try to specify "-fps
>> 60000/1001 -ofps 60000/1001" when encoding the DVD, it gives back the
>> same error: "[mpeg2video @ 0x861accc]MPEG1/2 does not support 19001/317
>> fps". So the "vstrict=-2" stops mencoder from complaining about the
>> broken frame rate. Say I run this:
>>     
>
> That sounds like mplayer's broken frame rate conversion.  mplayer stores
> the framerate as a floating point number internally, then uses a function
> in libavcodec to convert it to a fraction.  This function doesn't work.
> It's turning 60000/1001 into 19001/317, which is nearly the same but
> not exactly the same.  I got into a big flamewar with Rich last year
> when he insisted the code in mplayer would always work, and refused to
> even look at my example of when it didn't.
>   
That is unfortunate since I have been spending way to long on trying to 
get this to work. But thanks for letting me know that I may not be 
completely crazy...

b.




More information about the MEncoder-users mailing list