Interpolation with FFmpeg
Solution 1
Yes, there is a way. Since November 2016, the libavfilter library has a video filter called minterpolate, which performs motion interpolation.
Example usage:
ffmpeg -i input.lowfps.hevc -filter "minterpolate='fps=120'" output.120fps.hevc
Solution 2
Have a look at this AI project with impressive results: http://jianghz.me/projects/superslomo/
It has a Python implementation which can accelerate using CUDA. https://github.com/avinashpaliwal/Super-SloMo
There's also an easy tutorial for that Python impl, with honest examples. https://www.youtube.com/watch?v=mXwXtIiOjRA
Solution 3
You can use Butterflow as it uses ffmpeg https://github.com/dthpham/butterflow
It's a command-line tool that can:
Increase a video's frame rate by rendering new frames based on motion (pixel-warping + blending). Make smooth motion videos (simple blending between frames). Leverage new frames/increase in frame rates to make fluid slow motion videos.
Related videos on Youtube
Levan
Updated on September 18, 2022Comments
-
Levan almost 2 years
Is there a way to interpolate frames with ffmpeg? and not just copy them. I tried slowmovideo and boy it is slow. I used Twixtor in vegas and hated it. I gave megui and could not get it properly set up.
So is there a way to interpolate with ffmpeg??
-
Elisa Cha Cha over 8 yearsThe framerate filter does some simple interpolation, but probably not what you're looking for.
-
Levan over 8 yearsYes a bit more advanced feature would be nice
-
Gyan almost 8 yearsFFmpeg recently got its own minterpolate filter.
-
-
DavidPostill almost 8 yearsPlease read How do I recommend software for some tips as to how you should go about recommending software. You should provide at least a link, some additional information about the software itself, and how it can be used to solve the problem in the question.
-
Peter Bašista over 7 yearsJust like any other ffmpeg video filter, e.g.
ffmpeg -i input.hevc -filter "minterpolate='mi_mode=mci:mc_mode=aobmc:vsbmc=1'" output.hevc
. The filter's documentation contains the description of the available parameters and their values. -
colton7909 over 5 yearsThis command didn't work for me until I specified
-filter:v
instead of just-filter
-
Peter Bašista over 5 yearsYes, that is true. If there are some non-video streams in the input file, the
minterpolate
filter needs to be restricted to a single video stream by using the:v
stream specifier. If the input file contains multiple video streams, it is necessary to restrict the filter to a single video stream by using a stream specifier similar to:v:0
.