分页: 1 / 1

vs加载vsavsreader、tmm出错

发表于 : 2018-03-25 16:12
freesilent
手头有个mbaff的cm,原来在avs下看过doom9上如此处理。
Interp = nnedi2(field=0)
em = TMM(order=0,field=0)
TDeint(order=0,field=0,type=1,edeint=Interp,emask=em)
后来avs上我都用aad无脑搞定了。

现在换到vs之后,aad需要用到很多插件,遂决定还用上面的方法。
首先是想用vsavsreader插件
## core
from vapoursynth import core
import vapoursynth as vs
core = vs.get_core(accept_lowercase=True)

## Import Plugins
core.std.LoadPlugin('d:\Program Files (x86)\VapourSynth\plugins32\vsavsreader.dll')

##Import Raw
video = core.lsmas.LWLibavSource(r'f:\ACG\NIS\KUROKAMINOOTOME\BDMV\STREAM\00009.m2ts')

## IVTC
lines = '''
...Interp = nnedi2(field=0)
...em = TMM(order=0,field=0)
...TDeint(order=0,field=0,type=1,edeint=Interp,emask=em)
...'''

fin = core.avsr.Eval(lines = lines, bitdepth=8)

## Output
fin.set_output()
然后vseditor提示
2018-03-25 15:59:00.356
Failed to evaluate the script:
Python exception: Failed to load d:\Program Files (x86)\VapourSynth\plugins32 savsreader.dll. GetLastError() returned 126. A DLL dependency is probably missing.

Traceback (most recent call last):
File "src\cython\vapoursynth.pyx", line 1847, in vapoursynth.vpy_evaluateScript
File "E:/Work/cm5.vpy", line 7, in
#core.std.LoadPlugin('d:\Program Files (x86)\VapourSynth\plugins32\vsavsreader.dll')
File "src\cython\vapoursynth.pyx", line 1739, in vapoursynth.Function.__call__
vapoursynth.Error: Failed to load d:\Program Files (x86)\VapourSynth\plugins32 savsreader.dll. GetLastError() returned 126. A DLL dependency is probably missing.
看报错,应该是缺少dll,看作者在readme中写的需要vc++2015的运行库,去下了一个提示已经装了更新的版本了,无法安装,看程序里有vc++2005、2008、2010、2012、2013、2017,唯独没有2015.
后来我在vs里直接用

代码: 全选

video = core.avisource.AVISource(r'e:\Work\x264.avs')
avs里用nnedi2、tmm、tdeint处理,没有问题。

然后我想试试直接在vs里加载avs的plugin
core.avs.LoadPlugin(r'd:\Program Files (x86)\AviSynth\plugins\nnedi2.dll')
core.avs.LoadPlugin(r'd:\Program Files (x86)\AviSynth\plugins\TMM.dll')
core.avs.LoadPlugin(r'd:\Program Files (x86)\AviSynth\plugins\TDeint.dll')

vint = core.avs.nnedi2(video,field=0)
vem = core.avs.TMM(video,order=0,field=0)
fin = core.avs.TDeint(order=0,field=0,type=1,edeint=vint,emask=vem)
报错代码
2018-03-25 16:10:30.091
Failed to evaluate the script:
Python exception: TMM: IScriptEnvironment::NotFound error while invoking filters!

Traceback (most recent call last):
File "src\cython\vapoursynth.pyx", line 1847, in vapoursynth.vpy_evaluateScript
File "E:/Work/cm5.vpy", line 22, in
vem = core.avs.TMM(video,order=0,field=0)
File "src\cython\vapoursynth.pyx", line 1739, in vapoursynth.Function.__call__
vapoursynth.Error: TMM: IScriptEnvironment::NotFound error while invoking filters!
tmm加载失败

求助该如何处理

Re: vs加载vsavsreader、tmm出错

发表于 : 2018-03-25 19:05
Muonium
nnedi2 在 VapourSynth 下没有移植,可以用 nnedi3 代替
TMM+TDeint 的移植是 TDeintMod

Re: vs加载vsavsreader、tmm出错

发表于 : 2018-03-26 17:03
787633258
可以尝试借助avsproxy调用avs完成这部分计算
https://github.com/sekrit-twc/avsproxy

Re: vs加载vsavsreader、tmm出错

发表于 : 2018-03-30 23:02
freesilent
后来讨论出两种方案:1、换成avsr.import调用avs可以
2、avfs虚拟avi,avisource.avisource调用这个avi搞定