fch1993
帖子: 213
注册时间: 2012-06-12 11:56

Re: 新人 求教VapourSynth安装与使用

2016-05-10 16:58

黑之月yang 写了:
NAVras 写了:import vapoursynth as vs
core = vs.get_core()

ret = core.ffms2.Source(source='H:/STORAGE/VS/cut.mkv')

ret.set_output()

打开开始菜单那里vapoursynth目录下可以快速找到自动加载目录,实际上就是vs的plugins目录
还有楼上mawen大大说得对,如果32和64位要统一,你的ffms2是不是用了x64版本??你的vs我看感觉像x86的
按贴吧大大的说法这些个ret src video等只是赋值用的,同理xy,无实意

另外如果像用纯cpu跑waifu2x这种的,vseditor预览会崩溃,check通过了就送vspipe,如果还有错它也会告诉你

如下图,我把“ffms2.dll"放vs的plugins目录里,不加这句”core.avs.LoadPlugin(r"E:\MeGUI_2418_x86\tools\ffms\ffms2.dll")“,它都是ffms2不存在~~~
加了的话,就提示路径是不是错误
图片
64位下滤镜默认目录是:
C:\Program Files (x86)\VapourSynth\plugins64

PS:vseditor菜单中可以自己添加新的目录作为默认目录的。

NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: 新人 求教VapourSynth安装与使用

2016-05-10 20:17

fch1993 写了:
黑之月yang 写了:
NAVras 写了:import vapoursynth as vs
core = vs.get_core()

ret = core.ffms2.Source(source='H:/STORAGE/VS/cut.mkv')

ret.set_output()

打开开始菜单那里vapoursynth目录下可以快速找到自动加载目录,实际上就是vs的plugins目录
还有楼上mawen大大说得对,如果32和64位要统一,你的ffms2是不是用了x64版本??你的vs我看感觉像x86的
按贴吧大大的说法这些个ret src video等只是赋值用的,同理xy,无实意

另外如果像用纯cpu跑waifu2x这种的,vseditor预览会崩溃,check通过了就送vspipe,如果还有错它也会告诉你

如下图,我把“ffms2.dll"放vs的plugins目录里,不加这句”core.avs.LoadPlugin(r"E:\MeGUI_2418_x86\tools\ffms\ffms2.dll")“,它都是ffms2不存在~~~
加了的话,就提示路径是不是错误
图片
64位下滤镜默认目录是:
C:\Program Files (x86)\VapourSynth\plugins64

PS:vseditor菜单中可以自己添加新的目录作为默认目录的。

找mawen大大的大尾巴 {:cat_11} 里的“VapourSynth滤镜收集”,然后我一般是到github.com里下的,ffms2的那个dll我貌似不是用avs语句加载的
噗,不要把整个文件夹扔进去啊...github下下来,你是x64就把x64文件夹里的所有东西拷进去,外面的那个avs脚本可以扔了 {:cat_10} 因为用的vs,,dll文件要直接放在plugin下不要包文件夹(waifu2x的model文件夹除外,它那个就是包着model文件夹放在plugin下的)
上次由 NAVras 在 2016-05-10 20:34,总共编辑 2 次。

NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: 新人 求教VapourSynth安装与使用

2016-05-10 20:22

不引用了,,太长了...
ffms2貌似就是avs和vs通用的版本,那个dll用vs加载的,plugin里面我不清楚能不能自动加载avs插件(我猜不能)
对,放了ffms2.dll就不用load了
vs入门难(大神说的)
waifu2x的坑很深
为什么不用超快的caffe...开cudnn差不多1-2s一帧,电脑好的还能再快

fch1993
帖子: 213
注册时间: 2012-06-12 11:56

Re: 新人 求教VapourSynth安装与使用

2016-05-10 22:33

NAVras 写了:不引用了,,太长了...
ffms2貌似就是avs和vs通用的版本,那个dll用vs加载的,plugin里面我不清楚能不能自动加载avs插件(我猜不能)
对,放了ffms2.dll就不用load了
vs入门难(大神说的)
waifu2x的坑很深
为什么不用超快的caffe...开cudnn差不多1-2s一帧,电脑好的还能再快
N卡下caffe速度不如CUDA模式下的w2xc,更不如同级别opencl的A卡,比如480p到720p的时候。
VS主要是对于不会英文,无法阅读官方入门教程的人来说比较难。

NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: 新人 求教VapourSynth安装与使用

2016-05-11 6:06

fch1993 写了:
NAVras 写了:不引用了,,太长了...
ffms2貌似就是avs和vs通用的版本,那个dll用vs加载的,plugin里面我不清楚能不能自动加载avs插件(我猜不能)
对,放了ffms2.dll就不用load了
vs入门难(大神说的)
waifu2x的坑很深
为什么不用超快的caffe...开cudnn差不多1-2s一帧,电脑好的还能再快
N卡下caffe速度不如CUDA模式下的w2xc,更不如同级别opencl的A卡,比如480p到720p的时候。
VS主要是对于不会英文,无法阅读官方入门教程的人来说比较难。
啊嘞,我以为caffe的cudnn速度是最快的 {:cat_18} 英伟达这个cudnn真是白优化了(噗)

头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 新人 求教VapourSynth安装与使用

2016-05-11 13:02

NAVras 写了:
fch1993 写了:
NAVras 写了:不引用了,,太长了...
ffms2貌似就是avs和vs通用的版本,那个dll用vs加载的,plugin里面我不清楚能不能自动加载avs插件(我猜不能)
对,放了ffms2.dll就不用load了
vs入门难(大神说的)
waifu2x的坑很深
为什么不用超快的caffe...开cudnn差不多1-2s一帧,电脑好的还能再快
N卡下caffe速度不如CUDA模式下的w2xc,更不如同级别opencl的A卡,比如480p到720p的时候。
VS主要是对于不会英文,无法阅读官方入门教程的人来说比较难。
啊嘞,我以为caffe的cudnn速度是最快的 {:cat_18} 英伟达这个cudnn真是白优化了(噗)
cuDNN快得多,但有些人可能系统环境方面不知道哪里出了问题,导致速度没有提升。另外就是caffe版和w2xc的最优block设置很不一样。

头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 新人 求教VapourSynth安装与使用

2016-05-11 13:36

VS入门难易度的问题:
1. 对有编程基础的人来说VS很容易上手,对没有的人来说可能需要熟悉一些基本的编程思想和Python语法。
2. 现成的教程并不多(特别是中文的),滤镜相关doc缺少(很多avs移植滤镜需要看原本avs滤镜的doc),现成脚本、使用例子缺少(很多处理思路可能还是要看avs相关的讨论),总之这是历史和环境问题。
3. 目前大部分常用滤镜VS都有原生的了,但单从数量来说和avs比还是九牛一毛(某些人写的avs滤镜数量甚至跟现在VS滤镜总数有的一比),尤其是各种处理老片的、以及各种偏门的功能。
4. IVTC方面,VIVTC相比TIVTC砍了不少功能(这也是因为TIVTC的源码写的不是给人看的,Myrsloik还专门写了篇文章来吐槽Open Binary),所以目前auto vfr就没有很好的现成实现;同样的TDeint也砍了不少东西,不过那些大都不怎么用所以影响不大。
5. 挂载字幕方面,VS选择倒是很丰富,有自带的基于libass的AssVapour,可以通过avs接口挂载VSFilter/xy-VSFilter(avs 2.6接口x64编译版可以在我签名的VS滤镜收集里找到),还有移植到VS接口——libass主要问题是行为和我们常用的VSFilter不太一样,出来的效果会有偏差;vs移植的版本目前bug还很多,不太安全;通过avs接口挂载算是最安全的方案,多线程效率可能会打折扣(可能会报prefetch warning),其他方面我也不太清楚因为我没用过。。。VSFilter的主要问题就是它的代码和DirectShow系统高度耦合,而且各种历史遗留和各种branch,所以移植起来会有很多困难,DirectShow的存在也导致它无法跨平台。
EDIT: Holy菊又重新移植了VSFilterVSFilterMod

但熟练并掌握各种高级使用方法、编写复杂脚本,VS却容易得多:
1. AVS的last自动赋值、自动传参、自动返回机制,在简单脚本里显得更简洁。但在复杂脚本里很容易让人困惑并且容易出错(可怕的是不会报错的错误),对于那些对AVS脚本工作机制理解不够的人,还经常产生各种哭笑不得的错误。
2. VS原生多线程相比于AVS的各种第三方多线程技术要稳定、安全、高效得多。尤其是MPP这种大杀器,即使是我,曾经用了三年,都搞错了prefetch的原理和正确的使用姿势,最后是LP敲皮神才知道了它的原理(当然读源码也是一种办法),然后我们才分析出了正确的使用方式——即便如此,在后来LP又发现了若干不明原因的bug,甚至连皮神都解决不了。
3. VS对各种格式(8-16bit int、32bit float、4:2:0-4:4:4乃至横向纵向各1/16的chroma subsampling、Gray/YUV/RGB)的原生支持,并且大部分VS滤镜也能广泛支持这些格式,所以我的脚本很多时候能从头到尾在16bit 4:4:4下处理。不像AVS需要通过hack的方式来支持16bit,并且支持16bit、4:4:4、Gray/RGB之类的avs滤镜实在是很少。
4. VS的frame property机制可以衍生出各种灵活的高级用法,虽然就普通使用而言frame property也带来了各种问题:比如不合适的_FieldBased经常可以让nnedi3这类滤镜产生一些我们不期望的结果(在做AA、upscale时)。尤其是core.resize对frame property的依赖和检查,而其他滤镜却并不一定处理的好frame property,这种不匹配带来了各种问题:比如昨天我就遇到了一个,ffms2读取png图片,输出了一个_Matrix标记为1(BT.709)的RGB clip,Resize接收后就直接报错——RGB clip的_Matrix只能是0。
5. Python的语言环境和庞大的第三方库带来了无限可能。相比于avs脚本语言捉襟见肘的功能,稍微复杂一点的脚本,用Python的优势就显而易见。而且利用Python大量的库,你甚至可以把VS的frame data拿出来,交给NumPy、OpenCV、PyCaffe之类的库做处理,然后再转回VS。而这一点一定程度上可以弥补VS滤镜数量不足的问题。
上次由 mawen1250 在 2016-10-20 9:23,总共编辑 3 次。

NAVras
帖子: 141
注册时间: 2016-04-24 1:32

Re: 新人 求教VapourSynth安装与使用

2016-05-11 18:14

受教了~ {:cat_11}

fch1993
帖子: 213
注册时间: 2012-06-12 11:56

Re: 新人 求教VapourSynth安装与使用

2016-05-12 9:02

mawen1250 写了:
NAVras 写了:
fch1993 写了:
N卡下caffe速度不如CUDA模式下的w2xc,更不如同级别opencl的A卡,比如480p到720p的时候。
VS主要是对于不会英文,无法阅读官方入门教程的人来说比较难。
啊嘞,我以为caffe的cudnn速度是最快的 {:cat_18} 英伟达这个cudnn真是白优化了(噗)
cuDNN快得多,但有些人可能系统环境方面不知道哪里出了问题,导致速度没有提升。另外就是caffe版和w2xc的最优block设置很不一样。
我不知道你是什么显卡出来的情况
我自己测试以各自block的最快速情况来说。

GTX670公版
w2xc r6
caffe r2
N卡驱动最新版
NVIDIA GPU Computing Toolkit v7.5
CuDNN v4

测试速度480p到720p 两者差距大概caffe快约0.01fps不到

res = mvf.Depth(res,depth=32)
#res = core.w2xc.Waifu2x(res,noise=0, scale=2, block=512, photo=False, gpu=1)
res = core.caffe.Waifu2x(res,noise=0, scale=2, block=256, photo=False, cudnn=True, tta=False)
res.set_output()
上次由 fch1993 在 2016-05-12 9:03,总共编辑 1 次。

fch1993
帖子: 213
注册时间: 2012-06-12 11:56

Re: 新人 求教VapourSynth安装与使用

2016-05-12 9:03

mawen1250 写了:VS入门难易度的问题:
1. 对有编程基础的人来说VS很容易上手,对没有的人来说可能需要熟悉一些基本的编程思想和Python语法。
2. 现成的教程并不多(特别是中文的),滤镜相关doc缺少(很多avs移植滤镜需要看原本avs滤镜的doc),现成脚本、使用例子缺少(很多处理思路可能还是要看avs相关的讨论),总之这是历史和环境问题。
3. 目前大部分常用滤镜VS都有原生的了,但单从数量来说和avs比还是九牛一毛(某些人写的avs滤镜数量甚至跟现在VS滤镜总数有的一比),尤其是各种处理老片的、以及各种偏门的功能。
4. IVTC方面,VIVTC相比TIVTC砍了不少功能(这也是因为TIVTC的源码写的不是给人看的,Myrsloik还专门写了篇文章来吐槽Open Binary),所以目前auto vfr就没有很好的现成实现;同样的TDeint也砍了不少东西,不过那些大都不怎么用所以影响不大。
5. 挂载字幕方面,VS选择倒是很丰富,有自带的基于libass的AssVapour,可以通过avs接口挂载VSFilter/xy-VSFilter(avs 2.6接口x64编译版可以在我签名的VS滤镜收集里找到),还有移植到VS接口的——libass主要问题是行为和我们常用的VSFilter不太一样,出来的效果会有偏差;vs移植的版本目前bug还很多,不太安全;通过avs接口挂载算是最安全的方案,多线程效率可能会打折扣(可能会报prefetch warning),其他方面我也不太清楚因为我没用过。。。VSFilter的主要问题就是它的代码和DirectShow系统高度耦合,而且各种历史遗留和各种branch,所以移植起来会有很多困难,DirectShow的存在也导致它无法跨平台。

但熟练并掌握各种高级使用方法、编写复杂脚本,VS却容易得多:
1. AVS的last自动赋值、自动传参、自动返回机制,在简单脚本里显得更简洁。但在复杂脚本里很容易让人困惑并且容易出错(可怕的是不会报错的错误),对于那些对AVS脚本工作机制理解不够的人,还经常产生各种哭笑不得的错误。
2. VS原生多线程相比于AVS的各种第三方多线程技术要稳定、安全、高效得多。尤其是MPP这种大杀器,即使是我,曾经用了三年,都搞错了prefetch的原理和正确的使用姿势,最后是LP敲皮神才知道了它的原理(当然读源码也是一种办法),然后我们才分析出了正确的使用方式——即便如此,在后来LP又发现了若干不明原因的bug,甚至连皮神都解决不了。
3. VS对各种格式(8-16bit int、32bit float、4:2:0-4:4:4乃至横向纵向各1/16的chroma subsampling、Gray/YUV/RGB)的原生支持,并且大部分VS滤镜也能广泛支持这些格式,所以我的脚本很多时候能从头到尾在16bit 4:4:4下处理。不像AVS需要通过hack的方式来支持16bit,并且支持16bit、4:4:4、Gray/RGB之类的avs滤镜实在是很少。
4. VS的frame property机制可以衍生出各种灵活的高级用法,虽然就普通使用而言frame property也带来了各种问题:比如不合适的_FieldBased经常可以让nnedi3这类滤镜产生一些我们不期望的结果(在做AA、upscale时)。尤其是core.resize对frame property的依赖和检查,而其他滤镜却并不一定处理的好frame property,这种不匹配带来了各种问题:比如昨天我就遇到了一个,ffms2读取png图片,输出了一个_Matrix标记为1(BT.709)的RGB clip,Resize接收后就直接报错——RGB clip的_Matrix只能是0。
5. Python的语言环境和庞大的第三方库带来了无限可能。相比于avs脚本语言捉襟见肘的功能,稍微复杂一点的脚本,用Python的优势就显而易见。而且利用Python大量的库,你甚至可以把VS的frame data拿出来,交给NumPy、OpenCV、PyCaffe之类的库做处理,然后再转回VS。而这一点一定程度上可以弥补VS滤镜数量不足的问题。
有几个滤镜的选择有问题:
dctfilter 的最新源码应该在这里:
https://github.com/VFR-maniac/VapourSynth-DCTFilter
漏掉了TNLMeans和FFT3DFilter两个滤镜
http://vfrmaniac.fushizen.eu/works/
其他的不太重要的就不提了。
https://github.com/MonoS/VS-ContinuityFixer
https://github.com/IFeelBloated/vapoursynth-mvtools-sf

回到 “VapourSynth”