搜索 社区服务 统计排行 帮助
  • 11741阅读
  • 31回复

[分享]利用ConditionalFilter/Reader简化avs分段处理脚本编写

楼层直达
级别: 新手上路
注册时间:
2009-01-02
在线时间:
8小时
发帖:
32
只看该作者 30楼 发表于: 2011-05-13
似乎scriptclip的调用效率有问题,尤其是调用一些比较大的滤镜的时候?
比如mctd 基本default在我的机器和朋友机器上用scriptclip调用只有1/10或者更慢的速度。
另外前几天在搞另一个片子时调用eedi2的aa滤镜也很慢
似乎改成
ConditionalFilter(last.function1,last, "filterindex", "==", "1", false)
ConditionalFilter(last.function2,last, "filterindex", "==", "2", false)
ConditionalReader("xxxxx.txt", "filterindex")
能避免此问题
级别: 圣骑士
注册时间:
2006-08-17
在线时间:
146小时
发帖:
215
只看该作者 31楼 发表于: 2011-05-13
因为ScriptClip是在每次GetFrame时解释运行脚本,很复杂的脚本或者初始化很慢的滤镜会有这个问题

如果改上上面那样写,那么脚本是在avs载入时初始化,如果调用滤镜太多会占用较多资源
(如果只需要使用滤镜处理个别单帧就可以考虑用ScriptClip,如果你需要处理大量连续帧就别使用ScriptClip

当然还可以自己写个滤镜解决这问题,当需要处理大量连续帧时初始化滤镜,处理完毕再进行释放

还有个办法是将分段写成多个avs脚本,通过pipe依次输出给编码器
[ 此帖被linuxyouxia在2011-05-13 20:44重新编辑 ]

Fansubbing is a waste of time.
快速回复

限150 字节
上一个 下一个