Skip to content

Instantly share code, notes, and snippets.

@edjdavid
Created August 13, 2020 12:39
Show Gist options
  • Star 45 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • 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)
@bryannetrunner
Copy link

Hi edjdavid, I've just configured this with PotPlayer and the result is shockingly good.

I have a question: I often watch videos at 1.25 or 1.5 speed, so for example 24fps becomes 36fps at 1.5X. The script does not know the playback speed and hence the video becomes 75fps (see attached screenshot). Is it possible to take the current playback speed into account to maintain 60fps even if the playback speed changes?

image

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