I am trying to convert some files into ProRes. One fairly important part of the conversion is:
- reducing frames from 60 to 30
- blending every 2 frames into one and achieving a more fluent movement. (a simple sort of motion blur)
I have tried the -blend
command, however it was not recognized as a command.
-i source.mp4 -r 30 -vcodec prores_ks -profile:v 0 Output.mov
How do I reduce frames with blending in ffmpeg?
Try
or
and you'll have a short help. Please read it. :)
Try
and you'll have a list of available filters
Try
and you'll have syntax and parameters for this filter
I already needed to do something like this, reducing framerate. If you do
Note : Things in brackets [] are optionnal.
You'll have a simple framerate change, with a possible loss of input frames. And, it's especially what you don't want to get.
To have a framerate change without a loss of input frames, you'll have to use a video filter.
The tblend filter blends successive frames. It is the filter to use if source framerate is an integer multiply of destination framerate (eg : 60→30, 75→15, 75→25, ...)
⁽¹⁾ If haven't tested this filter myself, and I'm sure the output framerate must be set somewhere. The tblend filter has no fps parameter. Maybe it just blends 2 successive frames ? You should check this point, and make some tries ?
There exists another framerate changer, more adapted to be used with any i/o framerates :
minterpolate : Frame rate conversion using Motion Interpolation.
So, type :
The other minterpolate parameters have good enough defaut values, to make sure a good blend. Check them with a
If you want to add some parameters in the minterpolate chain, you'll have to use a ':' as parameter separator. Let's say you want to use motion interpolation mode = blend, instead of the default motion compensated interpolation (mci), type :
If you want to use many videos filters, you must not chain -vf options. The last one will override the ones before. You must (as ':' for filter parameters) use ',' as filters separator. Ex :
The order of given filters are important.
Things have been done with
ffmpeg version 3.2.14-1~deb9u1 Copyright (c) 2000-2019 the FFmpeg developers
Simple frame dropping:
Interpolate frames with the minterpolate filter:
Interpolate frames with the framerate filter: