Skip to content

Instantly share code, notes, and snippets.

@KCCat
Last active March 25, 2026 00:28
Show Gist options
  • Select an option

  • Save KCCat/1b3a7b7f085a066af3719859f88ded02 to your computer and use it in GitHub Desktop.

Select an option

Save KCCat/1b3a7b7f085a066af3719859f88ded02 to your computer and use it in GitHub Desktop.

Revisions

  1. KCCat revised this gist Apr 19, 2020. 1 changed file with 87 additions and 0 deletions.
    87 changes: 87 additions & 0 deletions mpv-mvtools-blksize64.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,87 @@
    import vapoursynth as vs
    core = vs.core
    clip = video_in
    vfps = int(container_fps*1e8)
    dfps = 60000
    #dfps = 0

    def ffps(fps):
    rfps = int('%.0f' % fps)
    if ( abs(fps - (rfps/1.001)) < abs(fps - (rfps/1.000)) ):
    vfps,vden = rfps*1000, 1001
    else:
    vfps,vden = rfps*1000, 1000
    return vfps, vden

    '''
    mv.Super(clip clip[, int hpad=8, int vpad=8, int pel=2, int levels=0, bint chroma=True, int sharp=2, int rfilter=2, clip pelclip=None, bint opt=True])
    mv.Analyse(
    clip super [, int blksize =8, int blksizev=blksize, int levels =0,
    int search =4, int searchparam=2, int pelsearch =0, bint isb =False,
    int lambda , bint chroma =True, int delta =1, bint truemotion =True,
    int lsad , int plevel , int global , int pnew ,
    int pzero =pnew, int pglobal =0, int overlap =0, int overlapv=overlap,
    bint divide =False, int badsad =10000, int badrange =24, bint opt =True,
    bint meander =True, bint trymany=False, bint fields =False, bint tff ,
    int search_coarse=3, int dct =0]
    )
    mv.BlockFPS(clip clip, clip super, clip mvbw, clip mvfw[, int num=25, int den=1, int mode=3, float ml=100.0, bint blend=True, int thscd1=400, int thscd2=130, bint opt=True])
    '''

    if (container_fps <= 30):
    vfps,vden = ffps(container_fps)
    print(container_fps, vfps, vden)

    clip = core.std.AssumeFPS(clip, fpsnum=vfps, fpsden=vden)
    _super = core.mv.Super(clip, pel=2, sharp=1, rfilter=4,hpad=8,vpad=8,levels=0)
    mvbw = core.mv.Analyse(_super, 64, 64, 0,
    4, 0, 3, True,
    0,
    lsad=10000,
    overlap=0,overlapv=18,
    badrange=0,badsad=10000,
    dct=5,
    search_coarse=4,
    )
    mvfw = core.mv.Analyse(_super, 64, 64, 0,
    4, 0, 3, False,
    0,
    lsad=10000,
    overlap=0,overlapv=18,
    badrange=0,badsad=10000,
    dct=5,
    search_coarse=4,
    )
    ''' bvec = core.mv.Analyse(_super,blksize=32,blksizev=16,overlap=16,overlapv=8,
    levels=0,isb=True,
    pelsearch=4,search=4,searchparam=0,
    badrange=1,badsad=100000,
    #lambda=400,
    #truemotion=False
    #divide=True,
    #dct=7,
    #pzero=110
    )
    #blksize=32,blksizev=16,overlap=16,overlapv=2,
    #blksize=32,blksizev=16,overlap=16,overlapv=8,
    #[(i,1080-int(1080/(64-i))*(64-i)-i ) for i in range(0,33,2)]
    #4x4, 8x4, 8x8, 16x2, 16x8, 16x16, 32x16, 32x32, 64x32, 64x64, 128x64, or 128x128
    fvec = core.mv.Analyse(_super,blksize=32,blksizev=16,overlap=16,overlapv=8,
    levels=0,isb=False,
    pelsearch=4,search=4,searchparam=0,
    badrange=1,badsad=100000,
    #lambda=400,
    #truemotion=False
    #divide=True,
    #dct=7,
    #pzero=110
    )
    '''
    #clip = core.mv.FlowFPS(clip,_super,mvbw,mvfw,num=dfps,den=vden,mask=0,ml=100.0,thscd1=970,thscd2=255,blend=False)
    clip = core.mv.BlockFPS(clip,_super,mvbw,mvfw,num=dfps,den=vden,mode=2,ml=100.0,thscd1=970,thscd2=255,blend=False)

    clip.set_output()
    #_super.set_output()
    #core.mv.SCDetection(sup,bvec).set_output()
  2. KCCat revised this gist May 9, 2019. 1 changed file with 9 additions and 9 deletions.
    18 changes: 9 additions & 9 deletions mpv-mvtools.py
    Original file line number Diff line number Diff line change
    @@ -1,24 +1,24 @@
    import vapoursynth as vs
    core = vs.get_core(threads=32)
    core = vs.get_core(threads=25)
    clip = video_in
    vfps = int(container_fps*1e8)
    vden = 1e8

    if not (container_fps > 59):
    clip = core.std.AssumeFPS(clip, fpsnum=vfps, fpsden=vden)
    sup = core.mv.Super(clip, pel=2, sharp=2, rfilter=4,hpad=32,vpad=32,levels=0)
    bvec = core.mv.Analyse(sup,blksize=32,overlap=16,
    sup = core.mv.Super(clip, pel=2, sharp=2, rfilter=4,hpad=16,vpad=8,levels=0)
    bvec = core.mv.Analyse(sup,blksize=32,blksizev=16,overlap=16,overlapv=8,
    levels=0,isb=True,
    search=3,searchparam=0,pelsearch=3,
    badrange=-1,badsad=10000,
    pzero=110
    )
    fvec = core.mv.Analyse(sup,blksize=32,overlap=16,
    #blksize=32,blksizev=16,overlap=16,overlapv=2,
    #blksize=32,blksizev=16,overlap=16,overlapv=8,
    #4x4, 8x4, 8x8, 16x2, 16x8, 16x16, 32x16, 32x32, 64x32, 64x64, 128x64, or 128x128
    fvec = core.mv.Analyse(sup,blksize=32,blksizev=16,overlap=16,overlapv=8,
    levels=0,isb=False,
    search=3,searchparam=0,pelsearch=3,
    badrange=-1,badsad=10000,
    pzero=110
    )
    #clip = core.mv.FlowFPS(clip,sup,bvec,fvec,num=int(vfps*round(60/container_fps,2)),den=vden,mask=1,ml=1e8,thscd1=400,thscd2=130)
    clip = core.mv.BlockFPS(clip,sup,bvec,fvec,num=int(vfps*round(60/container_fps,2)),den=vden,mode=2,ml=1e8,thscd1=400,thscd2=130)
    clip.set_output()
    clip = core.mv.BlockFPS(clip,sup,bvec,fvec,num=int(vfps*round(60/container_fps,2)),den=vden,mode=2,ml=1020.0,thscd1=16320,thscd2=255)
    clip.set_output()
  3. KCCat created this gist Apr 20, 2019.
    24 changes: 24 additions & 0 deletions mpv-mvtools.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    import vapoursynth as vs
    core = vs.get_core(threads=32)
    clip = video_in
    vfps = int(container_fps*1e8)
    vden = 1e8

    if not (container_fps > 59):
    clip = core.std.AssumeFPS(clip, fpsnum=vfps, fpsden=vden)
    sup = core.mv.Super(clip, pel=2, sharp=2, rfilter=4,hpad=32,vpad=32,levels=0)
    bvec = core.mv.Analyse(sup,blksize=32,overlap=16,
    levels=0,isb=True,
    search=3,searchparam=0,pelsearch=3,
    badrange=-1,badsad=10000,
    pzero=110
    )
    fvec = core.mv.Analyse(sup,blksize=32,overlap=16,
    levels=0,isb=False,
    search=3,searchparam=0,pelsearch=3,
    badrange=-1,badsad=10000,
    pzero=110
    )
    #clip = core.mv.FlowFPS(clip,sup,bvec,fvec,num=int(vfps*round(60/container_fps,2)),den=vden,mask=1,ml=1e8,thscd1=400,thscd2=130)
    clip = core.mv.BlockFPS(clip,sup,bvec,fvec,num=int(vfps*round(60/container_fps,2)),den=vden,mode=2,ml=1e8,thscd1=400,thscd2=130)
    clip.set_output()