Skip to content

Instantly share code, notes, and snippets.

@edjdavid
Created August 13, 2020 12:39
Show Gist options
  • Save edjdavid/8ad0445042c4ca4fa66e4055f2cbfc3b to your computer and use it in GitHub Desktop.
Save edjdavid/8ad0445042c4ca4fa66e4055f2cbfc3b to your computer and use it in GitHub Desktop.
PotPlayer Motion Interpolation

Motion Interpolation

Interpolate 24fps videos to 60fps in PotPlayer

Download and install the latest AviSynth+ (with vcredist)
https://github.com/AviSynth/AviSynthPlus/releases

Download the latest MvTools
https://github.com/pinterf/mvtools/releases

Extract x64 from the archive (DePan.dll, DePanEstimate.dll, mvtools2.dll) to C:\Program Files (x86)\AviSynth+\plugins64\ (adjust the avs script if avisynth is not installed in this directory)

In PotPlayer:

Preferences
  -> Filter Control
    -> Video Decoder
      -> Built-in Video Codec/DXVA Settings
        -> Use DXVA
          -> Checked
        -> DXVA2 Copy-Back
          -> Select D311 with the GPU
  -> Avisynth
    -> Enable AviSynth processing
      -> Checked
    -> Add "potplayer_source()"
      -> Checked
    -> Leave other checkboxes on default
    -> Load Script
      -> Select or copy the avs script below

avisynthplus_motion_interp.avs

SetMemoryMax(512)
SetFilterMTMode("DEFAULT_MT_MODE", 2)
SetFilterMTMode("FFVideoSource", 3)
potplayer_source()
LoadPlugin("C:\Program Files (x86)\AviSynth+\plugins64\mvtools2.dll")
super=MSuper(pel=1, hpad=0, vpad=0)
backward_1=MAnalyse(super, chroma=false, isb=true, blksize=32, blksizev=32, searchparam=3, plevel=0, search=3, badrange=(-24))
forward_1=MAnalyse(super, chroma=false, isb=false, blksize=32, blksizev=32, searchparam=3, plevel=0, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, blksizev=8, searchparam=0, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, blksizev=8, searchparam=0, search=3)
MBlockFps(super, backward_2, forward_2, num=60, den=1, mode=2)
Prefetch(4)
@ThreeDeeJay
Copy link

I could never get this script working right, so I just kept using SVP3 (last free version).
If anyone wants to give it a shot, this is made mainly for 3D movies but it can still be used as a regular player: https://github.com/ThreeDeeJay/PotPlayer3D/releases/latest

@MarkZaytsev
Copy link

Worked for me like a charm. Win11, Nvidia GPU. Managed to lerp 24 fps to 120 fps. Looks awesome on my 120 hz TV)
I used the original script, but had to tweak some parameters in the script to keep performance stable. Because if fps gets unstable - audio quickly gets out of sync with video.

First tweak was to set more memory. I'm not sure if I really used that much, but doesn't hurt for sure.
SetMemoryMax(4096)

Second tweak was suggested by captain-k4. It's much better than hardcode amount of CPUs
Prefetch(#CPUS)

Overall I'm very happy that I've discovered that topic. This is super useful. Thanks.

@Alin93-bit
Copy link

Hello, i dont know where do you write this script guys.
I searched for the file everywhere.
avisynthplus_motion_interp.avs does not exist, svpmanager.ini does not exist, avisynthplus_motion_interp.avs same.
The only useful file I found is ffdshow.avs, I changed the memory in it to 4096 and it still crashes then in the file it changes itself back to 1024.
I cannot see any 2k video, i have 32Gb of RAM on Ryzen 7 5Ghz, and it still crash..
In Pot Player and Classic Player it crash after 2 sec.
Please help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment