ffmpeg -i input.mp4 "framerate=fps=90" output.mp4
It will interpolate frames. There are a variety of other options you can use to tweak it, take a look at https://ffmpeg.org/ffmpeg-filters.html#toc-framerate for some of the other options you can play with, you separate them with a , and they use the same Key=value format. There is also another filter https://ffmpeg.org/ffmpeg-filters.html#toc-minterpolate which seems to do a similar thing but I have had issues getting it to work in the past and I am not sure how they differ.If you have a Nvidia graphics card then you can use hardware encoding and maintain all the existing audio and the complete command would like this:
ffmpeg -i "in.mp4" -c:v hevc_nvenc -preset slow -crf 20 -c:a copy -filter:v "framerate=fps=90" "out.mp4"
If you've ever watched something with motion smoothing, well it looks strange because that's not how we're used to seeing it, but it can look better in some scenes smoothing out long panning shots or where things tend to flow consistently in the same direction. Where it totally fails is when movement is less predictable. Then you get this odd looking mess of things moving to slow or too fast at times as it's trying to correct for missed predictions. I don't know if any free tools, maybe ffmpeg, to do this but maybe something out there
You could straight frame double which would get you to the frame rate... But it wouldn't look any smoother.
Going from 30fps to 60fps, every other frame is missing. The best anyone or anything can ever do is guesstimate/approximate to fill in the blanks. You will likely be able to see the lack of accuracy with your eyes.
It's like crime dramas on TV where they "zoom and enhance" to identify a suspect. This would never be accepted in court due to the inaccuracy involved.
ffmpeg -i in.mp4 -vf minterpolate=fps=60 out.mp4
See: https://video.stackexchange.com/questions/21613/is-it-meanin...
If there are ML/AI powered ways to “fill in” the difference between two frames that would be awesome.
All I can find is stuff like:
ffmpeg -i input.mp4 -r 60 output.mp4