python - 使用 vspipe 的 Python main(argv) 函数中的 Vapoursynth 输出节点

标签 python vapoursynth

当vspipe调用主Python程序时,我们如何设置输出节点?

以下不起作用:

def main(argv):
   ...
   ... 
   vapoursynth code
   ...
   clip.set_output()

if __name__ == "__main__":
   main(sys.argv[1:])

这也不是:

....
if __name__ == "__main__":
   clip = main(sys.argv[1:])
   clip.set_output()

错误消息是:无法检索输出节点。指定的索引无效?

最佳答案

很抱歉回答晚了,但我认为这需要解决:

当脚本是 Python 解释器的主要目标时,__name__ 变量通常包含 "__main__",例如从命令行调用时。

然而,鲜为人知,因为未记录:当 vspipe 或任何其他基于 vsscript 的应用程序运行您的脚本时,字符串 "__vapoursynth__" 存储在 __name__ 中。

因此您的支票应该是这样的:

if __name__ == "__vapoursynth__":
   clip = main()
   clip.set_output()

关于python - 使用 vspipe 的 Python main(argv) 函数中的 Vapoursynth 输出节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42279927/

相关文章:

Python libass 还是 VapourSynth?

python - 使用 VapourSynth ffms2 插件获取视频帧的时间戳

Python 和 csv.writer : Open in every loop or keep open?

javascript - 面临有关填充 javascript 数组的问题

python - 如何阻止皮蒙克关节的 body 弹跳?

python - 如何根据字典值对列表进行排序

python - scipy - 生成具有相关性的随机变量