4

Suppose I have some footage at 30FPS that I'd like to have a copy at 60FPS with tween frames generated by interpolation (at this point I don't care too much about potential quality or artifacts.) And suppose I'm working on a tight budget, so I'd need stand-alone software that's free, or free plugins to other software that's free1. What options are available at this (lack of) price point?

Through my own Googling, the only thing I've been able to find is: Convert videos to 60fps. Unfortunately the software doesn't work for me (after installation, it won't open! :D), and after tons of troubleshooting I'd rather look for a different method.

I know that there are things like Twixtor out there, but right now they're beyond my budget, so any suggestions would be appreciated.

1. I'm willing to hear solutions that do involve money, but the cheaper the better!

2
  • What OS are you on? What software do you already own? Commented Dec 6, 2014 at 15:48
  • @user1118321 I use Windows 8 and Fedora Linux. I do most of my editing with both ffmpeg and kdenlive.
    – Miguel
    Commented Dec 6, 2014 at 20:03

2 Answers 2

5

what about creating image sequences and then using somehting like ImageMagick to interpolate between the frames.

So (assuming bash, zsh or similar shell) this should work:

mkdir tempdir
mkdir outputdir
ffmpeg -i input.mov -f image2 tempdir/temp_%06d.png #create a png sequence
len=$(ls -1 tempdir|wc -l) #count the files in temp dir
for f in {0..$len} 
do
    old=printf %06d $f #number of current frame
    next=printf %06d $((f+1)) #number of next frame
    new=printf %06d $((f*2)) #number of output frame from current
    newInt=printf %06d $((new+1)) #number of output frame from interpolation
    convert -morph tempdir/temp_${old}.png tempdir/temp_${next}.png outputdir/output_${newInt}.png #create the intermediate frame with imagemagick
    mv tempdir/temp_${old}.png outputdir/output_${new}.png #rename the old frame with a new number and move it to the output dir
done
mv tempdir/temp_${next}.png outputdir/output_${new}.png #move the last frame
ffmpeg -i outputdir/output_%06d.png <<codec etc. options here>> output.mov

basically that creates a temp folder, makes a png image sequence from ffmpeg, creates an intermediate by morphing the two frames into each other using imagemagick, and turns the output image sequence into a movie.

If this is too slow you could do a quick and dirty interpolation by just blending the two frames together. In that case you'd use

composite -dissolve 50 tempdir/temp_${old}.png tempdir/temp_${next}.png outputdir/output_${newInt}.png

in place of the convert -morph... line Obviously you'll need to have imagemagick and ffmpeg installed, and you have to substitute your input and output filenames and preferred output video file format and codec etc options.

1

You can have a look at slowmovideo: http://slowmovideo.granjow.net/

1
  • 1
    Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference.
    – timonsku
    Commented Jul 9, 2015 at 10:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.