找回密码
 立即注册
查看: 4796|回复: 15

mpv快捷键设置问题

25

主题

146

回帖

24

VC币

金牌会员

Rank: 6Rank: 6

积分
48613
HuangRuixiao 发表于 2020-12-11 03:13:36 | 显示全部楼层 |阅读模式
mpv上开启某一视频滤镜的快捷键在input.config中怎么设置?
比如拿 vf=vapoursynth="~~/mvtools-blksize64.py":concurrent-frames=25 这一滤镜举例,欲设置开启快捷键ctrl+M,该如何写input.config?
回复

使用道具 举报

25

主题

146

回帖

24

VC币

金牌会员

Rank: 6Rank: 6

积分
48613
HuangRuixiao  楼主| 发表于 2020-12-11 13:09:47 | 显示全部楼层
本帖最后由 HuangRuixiao 于 2020-12-11 13:31 编辑
TK4E 发表于 2020-12-11 11:36
# Vapoursynth {{{
##
## Vapoursynth toggle keybinding

谢谢,最后成功了
实测这两行代码只有下面不带引号的可行
  1. CTRL+m vf toggle vapoursynth="~~/mvtools-blksize64.py:concurrent-frames=25"#开关mvtools补帧
复制代码
  1. CTRL+m vf toggle vapoursynth=~~/mvtools-blksize64.py:concurrent-frames=25#开关mvtools补帧
复制代码


点评

可以直接控制开关  发表于 2020-12-11 13:28
就是有没有引号的区别  发表于 2020-12-11 13:13
回复

使用道具 举报

0

主题

11

回帖

0

VC币

新手上路

Rank: 1

积分
88
TK4E 发表于 2020-12-11 09:58:38 | 显示全部楼层
本帖最后由 TK4E 于 2020-12-11 10:00 编辑

没用过vpy
你可以参考下
input.conf
F5 vf toggle "oscilloscope=x=0.5:y=0.5:s=1:c=1"

原命令
ffplay -vf "oscilloscope=x=0.5:y=0.5:s=1:c=1" -i x.ts n.ts

上面那个可能有误导性
mpv --vf="oscilloscope=x=0.5:y=0.5:s=1:c=1"  i.ts



回复

使用道具 举报

25

主题

146

回帖

24

VC币

金牌会员

Rank: 6Rank: 6

积分
48613
HuangRuixiao  楼主| 发表于 2020-12-11 10:53:13 | 显示全部楼层
试了半天还是没有成功,目前是这样的思路
  1. CTRL+q vf-toggle=vapoursynth="~~/mvtools-blksize64.py":concurrent-frames=25#开关mvtools补帧
复制代码

但是没有用,播放界面报错如下

command错误信息

command错误信息
回复

使用道具 举报

0

主题

11

回帖

0

VC币

新手上路

Rank: 1

积分
88
TK4E 发表于 2020-12-11 11:36:34 | 显示全部楼层
# Vapoursynth {{{
##
## Vapoursynth toggle keybinding
## defalut key overwrite for IR remote key
#
## mvtools
1 vf toggle vapoursynth=/home/nietz/.config/mpv/vapoursynth/mvtools.vpy
## flash3kyuu debanding
#2 vf toggle vapoursynth=~/.config/mpv/vapoursynth/flash3kyuu.vpy
2 quit
## SVP4 interpolation low quality
# vf toggle vapoursynth=/home/nietz/.config/mpv/vapoursynth/svp4.vpy
## SVP4 interpolation middle quality + gpu
3 vf toggle vapoursynth=/home/nietz/.config/mpv/vapoursynth/svp4.vpy
#3 vf toggle vapoursynth=/home/nietz/.config/mpv/vapoursynth/svp4gpu.vpy
## SVP4 interpolation low quality for tv 29.970 fps
#4 vf toggle vapoursynth=/home/nietz/.config/mpv/vapoursynth/svp4tv.vpy
4 vf toggle "lavfi=graph=[cropdetect=limit=24:round=2:reset=0],lavfi=graph=[crop=1920:1076:0:4],lavfi=graph=[bwdif=mode=send_frame:parity=auto:deint=interlaced],vapoursynth=/home/nietz/.config/mpv/vapoursynth/mvtools.vpy,lavfi=graph=[gradfun=strength=3.5:radius=8]" # toggle deinterlacer (auto-inserted filter)
## toggle gradfun debanding on 5
5 vf toggle lavfi=gradfun
#
# remove all video filters on 6
6 vf set ""
# vf toggle vapoursynth=/home/nietz/.config/mpv/vapoursynth/test.vpy
## fullscreen 7
7 cycle fullscreen
## osd toggle 8
8 cycle osd-level
# }}}


https://rina-kawakita.tistory.com/entry/configmpvinputconf


能不能用我不清楚  我也不知道文本里的内容  我也没用win  
我感觉你是路径写错
回复

使用道具 举报

25

主题

146

回帖

24

VC币

金牌会员

Rank: 6Rank: 6

积分
48613
HuangRuixiao  楼主| 发表于 2020-12-11 13:29:48 | 显示全部楼层
本帖最后由 HuangRuixiao 于 2020-12-11 13:33 编辑

又试了一下单独关闭,仅仅是把
  1. CTRL+m vf toggle vapoursynth=~~/mvtools-blksize64.py:concurrent-frames=25#开关mvtools补帧
复制代码

中的“toggle"换成remove,变成
  1. CTRL+Alt+m vf remove vapoursynth=~~/mvtools-blksize64.py:concurrent-frames=25#关闭mvtools补帧
复制代码

然后发现不起作用,无法移除已加载的滤镜。
回复

使用道具 举报

3

主题

199

回帖

0

VC币

荣誉会员

Rank: 14Rank: 14Rank: 14Rank: 14

积分
87112
Starlight 发表于 2020-12-11 18:03:21 | 显示全部楼层
HuangRuixiao 发表于 2020-12-11 13:29
又试了一下单独关闭,仅仅是把

中的“toggle"换成remove,变成
  1. vf append "@interp:vapoursynth=~~/filters/svpflow.py:concurrent-frames=25"
  2. vf remove "@interp"
复制代码
我测试下来是可以的mpv.io
回复

使用道具 举报

3

主题

199

回帖

0

VC币

荣誉会员

Rank: 14Rank: 14Rank: 14Rank: 14

积分
87112
Starlight 发表于 2020-12-11 18:21:41 | 显示全部楼层
对另外帖子的问题做个回答

那个vpy效果不会和懒人包里现有的存在区别,没必要“使用”它。

mvtools增加质量可以把vpy里的 BlockFPS 改成 FlowFPS,
但是flow可能产生很扭曲的效果,建议视具体情况自行决定。
回复

使用道具 举报

25

主题

146

回帖

24

VC币

金牌会员

Rank: 6Rank: 6

积分
48613
HuangRuixiao  楼主| 发表于 2020-12-11 22:22:03 | 显示全部楼层
Starlight 发表于 2020-12-11 18:21
对另外帖子的问题做个回答

那个vpy效果不会和懒人包里现有的存在区别,没必要“使用”它。

谢谢,最后测试成功了,发现之前失败是因为Ctrl+Alt不能作为快捷键组合,现在改成Shift+Ctrl就没问题了。
  1. CTRL+m vf append vapoursynth=~~/mvtools-blksize64.py:concurrent-frames=25#开启mvtools补帧
复制代码
  1. Shift+Ctrl+m vf remove vapoursynth=~~/mvtools-blksize64.py:concurrent-frames=25#关闭mvtools补帧
复制代码



回复

使用道具 举报

25

主题

146

回帖

24

VC币

金牌会员

Rank: 6Rank: 6

积分
48613
HuangRuixiao  楼主| 发表于 2020-12-11 22:28:21 | 显示全部楼层
Starlight 发表于 2020-12-11 18:21
对另外帖子的问题做个回答

那个vpy效果不会和懒人包里现有的存在区别,没必要“使用”它。

在"mvtools-blksize64"中发现以下两行包含相关关键字
  1. #clip = core.mv.FlowFPS(clip,_super,mvbw,mvfw,num=dfps,den=vden,mask=0,ml=100.0,thscd1=970,thscd2=255,blend=False)
  2.     clip = core.mv.BlockFPS(clip,_super,mvbw,mvfw,num=dfps,den=vden,mode=2,ml=100.0,thscd1=970,thscd2=255,blend=False)
复制代码
是把下面一行的Block改成Flow还是把下一行直接换成上一行呢?

PS:附上完整代码:
  1. import vapoursynth as vs
  2. core = vs.core
  3. clip = video_in
  4. vfps = int(container_fps*1e8)
  5. dfps = 60000

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

  13. '''
  14. 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])

  15. mv.Analyse(
  16.            clip super         [,  int blksize    =8,  int blksizev=blksize,  int levels        =0,
  17.             int search       =4,  int searchparam=2,  int pelsearch     =0, bint isb       =False,
  18.             int lambda         , bint chroma  =True,  int delta         =1, bint truemotion =True,
  19.             int lsad           ,  int plevel       ,  int global          ,  int pnew            ,
  20.             int pzero     =pnew,  int pglobal    =0,  int overlap       =0,  int overlapv=overlap,
  21.            bint divide   =False,  int badsad =10000,  int badrange     =24, bint opt        =True,
  22.            bint meander   =True, bint trymany=False, bint fields    =False, bint tff             ,
  23.             int search_coarse=3,  int dct        =0]
  24.             )

  25. 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])
  26. '''

  27. if (container_fps <= 30):
  28.     vfps,vden = ffps(container_fps)
  29.     print(container_fps, vfps, vden)
  30.    
  31.     clip = core.std.AssumeFPS(clip, fpsnum=vfps, fpsden=vden)
  32.     _super  = core.mv.Super(clip, pel=2, sharp=1, rfilter=4,hpad=8,vpad=8,levels=0)
  33.     mvbw = core.mv.Analyse(_super,   64, 64,    0,
  34.                                 4,    0,  3, True,
  35.                              0,
  36.                             lsad=10000,
  37.                            overlap=0,overlapv=18,
  38.                            badrange=0,badsad=10000,
  39.                            dct=0,
  40.                            search_coarse=4,
  41.                           )
  42.     mvfw = core.mv.Analyse(_super,   64, 64,     0,
  43.                                 4,    0,  3, False,
  44.                              0,
  45.                             lsad=10000,
  46.                            overlap=0,overlapv=18,
  47.                            badrange=0,badsad=10000,
  48.                            dct=0,
  49.                            search_coarse=4,
  50.                           )
  51.     '''    bvec = core.mv.Analyse(_super,blksize=32,blksizev=16,overlap=16,overlapv=8,
  52.                            levels=0,isb=True,
  53.                            pelsearch=4,search=4,searchparam=0,
  54.                            badrange=1,badsad=100000,
  55.                            #lambda=400,
  56.                            #truemotion=False
  57.                            #divide=True,
  58.                            #dct=7,
  59.                            #pzero=110
  60.                           )
  61. #blksize=32,blksizev=16,overlap=16,overlapv=2,
  62. #blksize=32,blksizev=16,overlap=16,overlapv=8,
  63. #[(i,1080-int(1080/(64-i))*(64-i)-i ) for i in range(0,33,2)]
  64. #4x4, 8x4, 8x8, 16x2, 16x8, 16x16, 32x16, 32x32, 64x32, 64x64, 128x64, or 128x128
  65.     fvec = core.mv.Analyse(_super,blksize=32,blksizev=16,overlap=16,overlapv=8,
  66.                            levels=0,isb=False,
  67.                            pelsearch=4,search=4,searchparam=0,
  68.                            badrange=1,badsad=100000,
  69.                            #lambda=400,
  70.                            #truemotion=False
  71.                            #divide=True,
  72.                            #dct=7,
  73.                            #pzero=110
  74.                           )
  75.                           '''
  76.     #clip = core.mv.FlowFPS(clip,_super,mvbw,mvfw,num=dfps,den=vden,mask=0,ml=100.0,thscd1=970,thscd2=255,blend=False)
  77.     clip = core.mv.BlockFPS(clip,_super,mvbw,mvfw,num=dfps,den=vden,mode=2,ml=100.0,thscd1=970,thscd2=255,blend=False)

  78. clip.set_output()
  79. #_super.set_output()
  80. #core.mv.SCDetection(sup,bvec).set_output()
复制代码


点评

#后边是注释掉的内容不生效,要用哪一行就要去掉注释,不用哪一行就前面加注释  发表于 2020-12-12 00:53
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表