Linux Commands Examples

A great documentation place for Linux commands


Converts to a different frame rate

see also : yuvscaler - lavpipe - lav2yuv - mpeg2enc


yuvfps [-r Num:Den] [-s Num:Den] [-i Interlacing] [-I Interlacing] [-c] [-n] [-w] [-v 0-2] [-h]

add an example, a script, a trick and tips

: email address (won't be displayed)
: name

Step 2

Thanks for this example ! - It will be moderated and published shortly.

Feel free to post other examples
Oops ! There is a tiny cockup. A damn 404 cockup. Please contact the loosy team who maintains and develops this wonderful site by clicking in the mighty feedback button on the side of the page. Say what happened. Thanks!


cat "$VIDEO1" | yuvfps -s 50:1 -r $FRAMERATE | yuvmotionfps -t 1024 -r 50:1 -s 0 -p 10 -b 8 > "$VIDEO0"
# Muunnos dv-muotoon
cat stream.yuv | \
yuvfps -r 30000:1001 -v 0 | \
mpeg2enc --sequence-length 4300 --nonvideo-bitrate 238 --aspect 2 -f 8 \


yuvfps is a general (UP or DOWN) resampling utility that is provided to allow the generation of video streams with the frame rates required for each standard video format. yuvfps reads a YUV4MPEG stream from the standard input and outputs a YUV4MPEG stream to the standard output in which frames from the original ones are skipped (downsampling) or duplicated (upsampling). This allows for other mjpegtools that require a specific frame rate to process the stream.

yuvfps uses by default Bresenham’s algorithm to do the resampling so that the new video stream is similar to the original one. Note, however, that downscaling is a non-reversible operation because frames are dropped. Moreover, the resulting video stream may not have the exact same duration as the original one if the new frame rate is not a whole multiple of the original rate.

As an alternative to simply dropping or duplicating frames each output frame/field can be produced as a weighted average of the two temporally closest input frames/fields. In this mode, yuvfps can also change the interlacing mode of the stream.

yuvfps also can "fix" the framerate specified in the YUV4MPEG header. This allows for the generation of effects (fast-forwarding, slow motion) and also when the source stream has some framerate that is very close, but not exactly, the rate required for some standard video (for example, 24.9 vs 25).


-r Num:Den

Specifies the resulting stream frame rate.

-s Num:Den

Ignores the frame rate in the input stream and assumes this frame rate for the input stream.

-i Interlacing

Specifies the interlacing mode of the resulting stream. The interlacing mode can be changed only when using the weighted average resampling mode (the -w option).

p - progressive (non-interlaced)
t - top-field first
b - bottom-field first

-I Interlacing

Ignores the interlacing mode information in the input stream and assumes this interlacing mode for the input stream. The possible values are the same as for the -i option.


Changes the stream header frame rate and interlacing mode in the output stream but copies frames from the original stream without changes. The -r and -i options specify the frame rate and interlacing mode for the output stream header.


By default yuvfps tries to find a normalized framerate. Some programs create framerates like: 29969909:1000000 which is actually th typical NTSC framerate of 30000:1001. yuvfps prints out the normalizes values and the original when it starts. If you think the normalized value is not correct and want yuvfps to use the original given number you have to add that option. So yuvfps does not try to normalize the values.


Produce each output frame/field as a weighted average of the two temporally closest input frames/fields instead of simply dropping or duplicating frames. The blending of two adjacent frames/fields reduces visible stepping compared to the default drop/duplicate algorithm but as a drawback it makes fast moving objects appear blurred and is much slower.

-v [0,1,2]

Set verbosity level.
0 = warnings and error messages only.
1 = add informative messages, like the framerate conversation information.
2 = add chatty debugging message, too.

see also

yuvscaler , mjpegtools, lavpipe , lav2yuv mpeg2enc


This man page was written by Alfonso García-Patiño Barbolani.
Johannes Lehtinen added information about the weighted average resampling mode and the related options.
If you have questions, remarks, problems or you just want to contact the developers, the main mailing list for the MJPEG-tools is:

For more info, see our website at

How can this site be more helpful to YOU ?

give  feedback