Convert videos to 60fps (Updated 21 May 2015)



Many modern TVs now include an extra frames feature, usually either 120Hz or 240Hz. This just means they take the source video, which is usually between 24-30FPS, and add new, interpolated frames between the original frames that make the motion look much more smooth.

High framerate (HFR at 48fps) was used in The Hobbit and will be used in upcoming films like the Avatar sequels, so why not watch all your movies at higher framerates?

A lot of people don’t realize this, but 99% of TVs made before this feature was introduced are actually capable of displaying 50FPS and 60FPS, and of course most LCD monitors display 60FPS as well.

This tutorial will allow you to convert videos of any framerate to higher framerates; 25FPS becomes 50FPS and 24/30FPS becomes 60FPS by default, or you can specify whichever framerate you want.

This script offers greater quality than any televisions I have seen.

I’m sure many people will want to see how well this script works, so here’s a comparison:
Original File
Converted File

Note: This can now be done in realtime using Universal Media Server!


This post provides instructions on how to easily convert any video to 60FPS, which allows you to take advantage of this feature of modern TVs on your computer monitor or TV without actually buying anything.

Step 1:

The files needed for this step are found in this zip folder (~3MB).

Run and install the file AviSynth.exe.
It is an early version of AviSynth 2.6 that is more stable and faster for multithreading than 2.5 releases.

Download and install MeGUI, run it, let it update all the things it wants to and import all of the presets.

Optional Tip: If you want MeGUI to update to the very latest stuff (at your own risk) you can push ctrl+s, go to the Extra Configuration tab, and in the Auto Update section select “Use development update server”

Close MeGUI and extract the files in the tools folder from our zip file into your MeGUI tools folder, which for most people will be either C:\Program Files (x86)\MeGUI\tools\ or C:\Program Files\MeGUI\tools\.

Step 2:

Download and install MKVToolnix.
When that is installed, run MKVMerge (Start Menu -> All Programs -> MKVToolnix -> mkvmerge GUI).

You will also need codecs installed. If you don’t already have them I recommend K-Lite Mega Codec Pack. If you install K-Lite, make sure to select “Profile 9: Lots of Stuff” during installation.

Step 3:

Start MeGUI again. You should be left with a window that looks similar to this:


Step 4:

Push ctrl+r, or go to Tools -> AVS Script Creator.
Now you should see something like this:


Step 5:

Click the Config button next to Avisynth profile.
It should look like this:

Step 6:

Click the New button down the bottom and type 60FPS in the name box, so it should look like this:

Step 7:

Now for the script that will do the actual 60FPS conversion.
Just copy and paste the following code into the text input area.

PluginPath = "C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\"

Important note #1: Make sure the path on the third line is correct.
For example, if you are running 32-bit Windows, you will need to modify the path to “Program Files” instead.

Important note #2: You should change the number “4” in the script (on line 1) to your number of CPU cores. If you don’t know how many cores your CPU has just Google your CPU and you should be able to find the specs somewhere, or 4 should be fine anyway.

Important note #3: If you have a video card, you can improve quality by adding “GPU=true” to the script. However, it may make encoding time slower, so take that into account.
So InterFrame(Cores=Cores) would turn into InterFrame(Cores=Cores, GPU=true)
If you do this, you may also need to go into your MeGUI tools folder (usually C:\Program Files (x86)\MeGUI\tools\x264) and rename the file opencl.dll to opencl.dll.bak. This will let MeGUI use the version of opencl.dll that your video card drivers have installed, instead of the generic one from MeGUI.

Important note #4: This script always outputs either 50FPS or 59.94FPS (60FPS) for compatibility reasons. If you want to always double the framerate instead, so that for example 23.976FPS turns into 47.952FPS (48FPS), you can use the “FrameDouble” parameter.
So InterFrame(Cores=Cores) would turn into InterFrame(Cores=Cores, FrameDouble=true)

So now your window should look similar to this (with different text):

Step 7

Step 8:

Click the Extra Setup tab and make sure “Prefer DSS2 over DirectShowSource” is checked.

Optional tip #1: You might also want to choose your preferred resizer. For aspect-ratio changes (like from 720×576 to 720×480) a neutral filter like Spline36 will be nice. For actual resizing (like from 1920×1080 to 1280×720) a sharp filter like Spline64 will be best. I usually just leave it on Spline36. Make sure to untick the checkbox on the option after you change the default resizer, otherwise it will always be used by default which is often unnecessary.

Optional tip #2: I recommend changing the “MOD value used for resizing” to mod4. This gives the best balance between compatibility (a lot of devices like PS3 don’t have good mod2 support) and aspect ratio accuracy (the higher the MOD value, the more likely the aspect ratio is to be skewed more heavily).

Now it should look something like this:


Then just click the Update button then the OK button

Step 9:

Now we’re back to the AviSynth script creator window and now that we have our 60FPS AviSynth template made and selected, it’s time to choose which video we want. Just click the button next to Video Input up the top of the window and find your video, then click Open.
A window will pop up with buttons, click the option on the right, usually either “DirectShowSource” or “AviSource”.
A window will pop up to show you the video, you can just close that.
Now you should see something like this:


Step 10:

Click the Save button. The video preview window might pop up again, you can close it again.

Step 11:

Now is the time when you need to choose the quality of the video and audio.

If you don’t know what to do here, something quick and easy is to just use CRF, which means you let the codec decide on the bitrates itself. So you can click the “Config” button next to the “Encoder settings” dropdown when you have a x264 option selected, then just enter a number between 16-20 in the “Quality” input box. 16 means your video will be almost exactly the same quality as the source, while 20 will look good too while taking up less space. Personally I use 16 for everything because why not? 🙂

So when you have your quality, click Queue in the Video encoding section.

Step 12:

Now your video is ready for conversion.
Now just go to the Queue tab and click Start down the bottom, then wait for it to finish.

Step 13:

The final step is to add your audio and/or subtitles from the original file to the converted file. This process uses muxing, not conversion, so there is no quality loss.
For this we will use the program we installed earlier, MKVMerge.
So run that and drag the converted file into that program, then do the same with the original file. If you can’t drag them on, you can use the add button instead.
Now you have several items in the Tracks, chapters and tags section. You just need to untick the ones you don’t want. Usually you will want to leave them all selected except for the original video track, as I’ve done in the following example:

Finally, set the Output filename down the bottom of the window and click Start muxing.
When that is done, you have your final video!

Final Thoughts:

This might seem like a long process, but actually it is only long once. Since we have now made templates, the process for the videos from now on will be much faster; instead of entering the script each time, now you can just make sure your 60FPS AviSynth script is selected.

This file can now be played just like any other video. I personally watch videos on my TV which is linked up to my computer using the awesome, free program called Universal Media Server, and that handles these 60FPS videos perfectly with no configuration.

Any comments are appreciated. If you can think of an improvement to the script, or to the process, or if you just found it useful and want to say thanks, please do leave a comment. I would love to know that it’s being used.

If you want to donate to help me with server costs and time spent keeping this article updated, you can do so here with my thanks 🙂


  • How can I fix random crashing of vfw4x264.exe?
    This probably means you are encoding a file using an input mode other than DSS2, which can happen if the clip is .m2ts or .dga (blu-ray) or another uncommon format.
    You can fix it by changing the 2 in the second line of the script to either 3, 4, 5 or just removing that line (try them in that order, since the options get progressively slower)
  • The option “Prefer DSS2 over DirectShowSource” is disabled. or
    I get an error like “can’t load avss.dll”.
    This means your computer is missing Haali Media Splitter. You can download it here or as part of a K-Lite Mega Codec Pack and the error should go away after you install it. If you install K-Lite, make sure to select “Profile 9: Lots of Stuff” during installation.
  • The file stops encoding after 99%.
    This usually indicates a codec configuration issue. Try installing/reinstalling K-Lite Mega Codec Pack, and make sure to let it select its preferred defaults (not “quick upgrade”)
  • Can I customize the output framerate to make it 48FPS, 75FPS, 120FPS, or anything else?
    Yes, you can choose any framerate you want. It is best to choose a framerate that is divisible in some way with the original video, but even that is your choice. You just need to add the options “NewNum” and “NewDen”, like this:
    InterFrame(Cores=Cores, NewNum=48000, NewDen=1001)
    NewNum stands for “New Numerator” and NewDen stands for “New Denominator”. In general, with NTSC material the NewDen should be 1001 and the NewNum should be 1000x your desired framerate (so for 48FPS you want 48000 and 1001) while for PAL content you might just want something like NewNum=75,NewDen=1 to output 75FPS content.
  • The output seems choppy, can I make it smoother?
    Yes, by default we output a video that sacrifices a little smoothness in order to reduce errors, but different people’s eyes pick up on different things so it can all be a matter of taste. You can try the Smooth tuning, like this:
    InterFrame(Cores=Cores, Tuning="Smooth")
    Also, using GPU mode produces more accurate results and therefore should appear smoother, though it can be slightly slower overall. You can try it like this:
    InterFrame(Cores=Cores, GPU=true)
    Or try both options at once like this:
    InterFrame(Cores=Cores, Tuning="Smooth", GPU=true)
  • Why isn’t the GPU being used much in GPU mode?
    Only some things are done with the GPU in GPU mode, it’s still mostly done by CPU but helped by GPU.
  • Why is the video still the original framerate after running it through MKVMerge?
    You probably selected the wrong tracks in MKVMerge so you’re getting the original video track instead of the new one; make sure you untick the original video stream before muxing.
  • Why does MeGUI give an error “SVSmoothFPS: unable to load library given in ‘compose’ […svpflow2.dll]
    Try re-installing or updating your video card drivers, and if that doesn’t work then maybe your video card doesn’t support OpenCL so remove GPU=true from your script.
  • Why am I getting the error “SVSmoothFps: unable to load library given in ‘compose'” when I try to run the encoding process, but not when I preview?
    Go into your MeGUI tools folder (usually C:\Program Files (x86)\MeGUI\tools\x264) and rename the file opencl.dll to opencl.dll.bak. This will let MeGUI use the version of opencl.dll that your video card drivers have installed, instead of the generic one from MeGUI.
  • Why am I getting the error “Error message for your reference: Can not read the video stream”?
    MeGUI can’t read from folders or files with certain characters, so try moving the video to a different folder and/or renaming the file.


Widezu69 for providing the original AviSynth script that I used as a base.
Fizick for MVTools, the library that does all the work, and SVP for the modifications to MVTools that make it even better for our purposes.
Everyone on various forums for their feedback, this is really a community effort.



  • Updated InterFrame to 2.8.2, which improves speed


  • Corrected and improved the instructions and FAQ


  • Updated InterFrame to 2.8.0, which improves speed and lowers memory usage
  • Updated conversion script


  • Updated the instructions and FAQ


  • Updated InterFrame to 2.6.0
  • Added a tip about using framedoubling mode
  • Updated most images to reflect the minor changes to MeGUI
  • Minor improvements to instructions


  • Added more items to the FAQ


  • Added more items to the FAQ
  • Shortened the changelog to only the latest 3 changes by default


  • Updated instructions
  • Added more tips
  • Added to and updated the FAQ
  • Updated the link to MKVToolnix to always point to the latest version

Click here to display the rest of the changelog


  1. Conor Mc Lernon

    July 13, 2016 at 4:47 am

    I’m new to all this. Couldn’t get it to work at all: crashes when I try to input file for coding. Error Message: “Unable to load DLL ‘AviSynthWrapper’: The specified module could not be found (Exception from HRESULT: 0x8007007e”

    Also, on exiting from MeGUI, got error message “MeGUI encountered a fatal error….”

    Have screenshots available.

    Also, could find MKVToolnixGUI, but not MKVMergeGUI

  2. Hi all,

    Interframe works fine with constant frame rates, but if i record a winde with my phone video has variable framerate between 24 and 30. If i prepare script for 30, video is lagging when 24 fps part. Opposite is happening if i prepare for 24.

    SVP (3.1.6 im using) has variable frame rate repair option and it changes from “30to60” to “24to60”

    How can i do the same or can i do that?

  3. i have this error please help me: The file DirectShowSource (“C:/users/etcetc).mp4”,audio=false,convertfps=true)cannot be opened.
    Please make sure its a valid Avisynth script and that Avisynth is properly installed. (*i reinstall 2 times AviSynth)
    You can check the validity of your script and AviSynth installation by opening the file in your favorite media player. (*i can run any video)
    If that works, try opening the video in VirtualDub(Mod) as well, if the former works and the latter dosnt, install a YV12 codec.
    Error message for your reference: Unable to load DLL
    “AvisynthWrapper”: The specified module could not be found.
    (Exception from HRESULT: 0x8007007E

  4. Does it works with SVP 4 ?

    I can’t make it run it, I get a crash everytime and it’s the Interframe script that is crashing it.

  5. Hey,
    thank you for this!
    It’s easy to use and the result looks good… in movies.
    In Anime I get many many Fragments (especially in the openings and endings)
    so I wonder if you could update this for a Feature (like in SVP) to mask the Fragments/artifacts.

    Also a Update with the new svpflow.dll ‘s would be very nice.

  6. SubJunk

    July 28, 2016 at 10:33 am

    @Desmond please see the FAQ

  7. SubJunk

    July 28, 2016 at 10:34 am

    @Grahez you can try adjusting the SetMemoryMax value higher or lower. Usually the most stable value is around 400-700

  8. SubJunk

    July 28, 2016 at 10:35 am

    @Adem that speed will depend on your encoder settings. You can for example use the “Ultra Fast” preset which will give the same quality as any other preset with the same CRF

  9. SubJunk

    July 28, 2016 at 10:35 am

    @alexlinux yeah that would be cool!

  10. SubJunk

    July 28, 2016 at 10:36 am

    @marco santi I can’t see that image anymore because I’m replying so late! 🙂

  11. SubJunk

    July 28, 2016 at 10:36 am

    @gottoesplosivo the only reliable solution I have found is to mux the MP4 file to MKV before starting. Annoying!

  12. SubJunk

    July 28, 2016 at 10:37 am

    @Aryma_saga that depends on your input files – you need the codecs to read them. I don’t recommend updating svpflow – if there is a relevant update I will release a new version of our dependencies after testing

  13. SubJunk

    July 28, 2016 at 10:39 am

    @james that probably means the relevant codec isn’t on your computer

  14. SubJunk

    July 28, 2016 at 10:39 am

    @Linkmstr not sure about that sorry!

  15. SubJunk

    July 28, 2016 at 10:41 am

    @nplima there are no relevant updates

  16. SubJunk

    July 28, 2016 at 10:43 am

    @Jorge Offemaria same settings with mp4 should work. I’m not sure about that bug, must be a MeGUI issue

  17. SubJunk

    July 28, 2016 at 10:44 am

    @Ruben Mayorga that can happen with MP4 files unfortunately. Try muxing them to MKV first

  18. SubJunk

    July 28, 2016 at 10:45 am

    @TeddyRW it’s likely you’re just not looking at the correct output file

  19. SubJunk

    July 28, 2016 at 10:48 am

    @Seokjin Kim unfortunately AviSynth isn’t good at memory management

  20. SubJunk

    July 28, 2016 at 10:51 am

    @micropoint probably because of the accented character in the directory

  21. SubJunk

    July 28, 2016 at 10:53 am

    @Amyrul Afiq that probably means your version of AviSynth is not the one from this guide

  22. SubJunk

    July 28, 2016 at 10:53 am

    @Tofou that probably means your version of AviSynth is not the one from this guide

  23. SubJunk

    July 28, 2016 at 10:54 am

    @paul the examples are using GPU=true

  24. SubJunk

    July 28, 2016 at 10:54 am

    @Al no sorry

  25. SubJunk

    July 28, 2016 at 11:27 am

    @sheen that probably means your version of AviSynth is not the one from this guide

  26. SubJunk

    July 28, 2016 at 11:29 am

    @Gabriele thanks for the suggestions. I don’t recommend doing any of them, though.

  27. SubJunk

    July 28, 2016 at 11:30 am

    @Zafar Iqbal NewDen=1,NewNum=50

  28. SubJunk

    July 28, 2016 at 11:30 am

    @josh you can try tuning=”Smooth”

  29. SubJunk

    July 28, 2016 at 11:39 am

    @besweeet some TVs are better than others for sure

  30. SubJunk

    July 28, 2016 at 11:40 am

    @Big Man that is for InterFrame 1.14, an old version. See interframe2.html for the latest

  31. SubJunk

    July 28, 2016 at 11:44 am

    @TylerC there is no advantage to running it with SVP 4 right now

  32. SubJunk

    July 28, 2016 at 11:44 am

    @Adrian there is an anime mode if you see the InterFrame docs, and there is no advantage to running it with SVP 4 right now

  33. SubJunk

    July 28, 2016 at 11:46 am

    @Nador yes, see the InterFrame docs

  34. SubJunk

    July 28, 2016 at 11:47 am

    @Clement Saggers that means you’re not using the AviSynth version from the guide

  35. SubJunk

    July 28, 2016 at 11:49 am

    @Jioseb yes to the first question; FFmpeg supports .avs files as inputs on Windows

  36. SubJunk

    July 28, 2016 at 11:49 am

    @João Victor newnum=100,newden=1

  37. I’ve seen why mine is crashing. It’s the VSFilter when I try to do a hardencode with Interframe. Doesn’t happen when I encode it without subs or without interframe.

    It makes VSFilter crash de x264 encoder.

    How can I hardencode subtitles without having it crash ?

    That aside, does interframe gets the SVP config ? I have some nice settings for anime in SVP 4 that doesn’t make it look like the soap opera.

    Thanks for your help.

    Btw, I got an staxrip script for 60fps, but dunno how to use it in megui (I don’t understand much how to use it, I tend to use the auto-encode to set the file size)

  38. How to use InterFrame in avidemux

  39. Hello. I followed all steps, but always error message “Couldn`t run update” I try stable and developer update – same, disabling antivirus – same…..i am using Win 10..please help? Thanks.

  40. Is it just me or is my reply not popping out?

  41. If this ever comes through

    Why has interframe not been updated in a while? And I also notice that TVs have more or less 0 artifacts compared to this script.

  42. Update from 2018, from a fan with this guide.

    1. DirectSource options are hidden now and required to turn on in Megui option
    2. Newer K-code packs no longer works with aviscripts in this guide, use pack version on 2015, last known stable codecs
    3. Newer SVP codec will mess up your avisynth, you cannot have SVP 4 and rendering codecs on the same PC

    kudos to SubJunk.

  43. For those having issues with updated versions of MeGUI and AviSynth+ here’s an updated version of the script.

    If you get an error message saying that AviSynth can’t find a function named SetMTMode() then use this script for AviSynth 60fps profile:

    PluginPath = “D:\Apps\Encode\MeGUI\tools\avisynth_plugin\”

    InterFrame(Cores=Cores, GPU=True, Tuning=”Smooth”)

    All other instructions can be followed “as is”.

    I didn’t actually bother to install the K-Lite codec pack. I found the default encoders and options that came with MeGUI sufficient to re-encode almost any video that I have to 60fps.

  44. @SubJunk: Thanks for the guide, it has worked for me in the past, however I’ve recently tried doing this, it shows me a still preview of my source video, and I’m now getting a message in MeGUI saying the video stream (avs.) cannot even be opened, even though it has worked with this particular source video before!

    I’m using the latest 64-bit stable version of MeGUI (2896) running on my Windows 10 (x64, 1809) PC, I’ve installed the latest version of the K-Lite mega codec pack (and selected profile 9 during installation), however this time I’ve configured MeGUI to use AviSynth+ (r2772) instead of its included AviSynth (Question 1: Is your script compatible with AviSynth+, or should I use MeGUI’s built-in AviSynth for this process?).

    Also this time, I’m using the newer svpflow1 and 2 plugin (.dll) files for AviSynth from here: ,instead of the older files provided in this guide, but with InterFrame2.avsi (from 2015!, version 2.8.2, Question 2: Is InterFrame no longer being developed?) which you’ve provided. My script therefore currrently looks like this, is this corrrect?:

    PluginPath = “C:\Program Files\AviSynth+\plugins64+”

    InterFrame(Cores=Cores, FrameDouble=true)

    It also says “there is no function named ‘SetMTMode” in MeGUI when I click “Preview AVS script”, so there is obviously a script error occurring here, so what am I doing wrong this time? Do I need to install an older version of the K-lite mega codec pack instead or something? Should I be using the older svpflow1 and 2.dll files from 2015 which you’ve provided like I did last time, or am I ok to use the newer 64-bit AviSynth plugin files?

    Should I even be using AviSynth+ for this process, should I install the old stable version of AviSynth 2.6 (which you’ve provided and worked for me last time, which is no longer developed?) Please get back to me when you can, thanks!

  45. Now svpflow- this version you don´t need “interframe2.avsi”, inside the zip file have some avs samples.
    i use avs_file+svp_dll+ffmpeg+bat_file


    SET starttime=%time%
    ffmpeg.exe -hide_banner -i “sample.avs” -vf scale=-1:1080,”smartblur=lr=1.5:ls=-0.25:lt=-3.5:cr=0.75:cs=0.250:ct=0.5″ -y -c:v libx264 -preset medium -minrate 5.625M -b:v 7.5M -maxrate 9.375M -bufsize 9.375M -c:a aac -b:a 384k -movflags +faststart -bf 2 -flags +cgop -pix_fmt yuv420p10le -f mp4 “1.mp4”
    ECHO ———————————————-
    ECHO START : %starttime%
    ECHO END : %time%
    ECHO ———————————————-
    rem end bat file


    #avs file start


    PluginPath = “F:\testEncoder\avisynth_plugin\”


    ffvideosource(“LG Dolby Trailer 4K Demo.ts”)





    super = SVSuper(super_params)
    vectors = SVAnalyse(super, analyse_params)
    smooth = SVSmoothFps(super, vectors, smoothfps_params, mt=threads)



    #avsfile end

  46. “Script error: There is no function named ‘SetMTMode’.”

    Downloaded and replaced old avisynth plugins with it apparently set and placed them in system32 and sysWOW64 and still doesn’t work. Tried using avisynth+ with the settings TheArkyTekt recommended and still doesn’t work.

    Also, I don’t see anything called “mkvmerge GUI”, only “mkvtoolnix GUI” and “mkvmerge.exe” in mkvtoolnix’s folder, which I tried running and it only seems to have a brief command prompt window open and then close.

    Windows 10 Pro 64-bit version 1809.

  47. I’m new to all this… can I turn 1080p videos to 60fps? Or is that like impossible to do? And if it’s not, then can I turn live dance performances to 60fps? I really want to learn these things and be familiar with them. Okay like this video for example… can anyone tell me if it’s possible to turn it into 60fps or does the video have to be already in like 30 FPS or so to do that? Or can any YouTube videos work to convert it into 60fps or does it have to be from other websites to work or do I have to record it myself from scratch to convert it… because I know this person that records Live episodes from a TV apparently in 720fps so I just don’t know I’m so lost I just need clarification.

  48. Hello SubJunk,
    Can InterFrame find a home in VapourSynth? How?
    What I want to do is run InterFrame (svpflow1.dll & svpflow2.dll as plugins?) in VS and pipe to ffmpeg. I’m stuck trying to architect the solution. What I’ve done in the past (with ffmpeg only) was this:
    ffmpeg -i SOURCE -filter_complex “minterpolate=fps=60/1.001” TARGET
    (that took 4 days to transcode a 2-3/4 hour movie with some MV errors)
    ffmpeg -i SOURCE -filter_complex “minterpolate=fps=48/1.001,telecine=pattern=3322” TARGET
    (that took ‘only’ 3 days, with few MV errors & 1-of-10 combed frames).
    minterpolate takes days because it’s 1 thread, no GPU. I’ve tried to contact Frederik Mellbin and also the folks at SmoothVideo Project but have not found joy. Have you implemented InterFrame in VapourSynth? Can you help me?

  49. And here we are, 2021, is this the best tutorial yet? Any improvements from 2015 until today?

  50. SubJunk

    October 2, 2021 at 4:16 pm

    @Miteiro good question! I think the script is very stable now, so there haven’t been bugs to fix, but there have been requests to update to the latest SVP binaries so I will look at that

Leave a Reply

Your email address will not be published. Required fields are marked *

© 2024 Spirton

Theme by Anders NorénUp ↑