Skip to content

Instantly share code, notes, and snippets.

@jiangfangzheng
Forked from edjdavid/pp_motion_interp.md
Created September 4, 2022 12:48
Show Gist options
  • Save jiangfangzheng/9ab3389255d49335c9f46816aa969e54 to your computer and use it in GitHub Desktop.
Save jiangfangzheng/9ab3389255d49335c9f46816aa969e54 to your computer and use it in GitHub Desktop.

Revisions

  1. @edjdavid edjdavid created this gist Aug 13, 2020.
    46 changes: 46 additions & 0 deletions pp_motion_interp.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,46 @@
    # 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)
    ```