2024-05-19 05:22:18 发布
网友
当vspipe调用主Python程序时,如何设置输出节点?在
以下操作无效:
def main(argv): ... ... vapoursynth code ... clip.set_output() if __name__ == "__main__": main(sys.argv[1:])
这也不是:
错误消息是:检索输出节点失败。指定的索引无效?在
很抱歉这么晚才答复,但我认为这需要解决:
当脚本是Python解释器的主要目标时,__name__变量通常包含{},例如从命令行调用脚本时。在
__name__
但是,由于没有文档化而不为人所知:当vspipe或任何其他基于vsscript的应用程序运行脚本时,字符串"__vapoursynth__"存储在__name__中。在
"__vapoursynth__"
因此,您的支票应该是:
if __name__ == "__vapoursynth__": clip = main() clip.set_output()
如果您的VapourSynth脚本不是用输入视频文件名参数化的,也就是说,输入文件名在脚本中是硬编码的,例如在语句中
VapourSynth
video = core.ffms2.Source("InputVideo.mkv")
你可以直接写下你的整个脚本
(没有定义main()函数(示例代码的第一行) 以及末尾的if块)
main()
if
-或-
替换为
一开始
if __name__ == "__main__": main()
最后。在
您可以考虑vspipe作为一个专用的Python解释器,因此它知道(从您的命令clip.set_output())哪个视频到管道,例如在命令中
vspipe
Python
clip.set_output()
vspipe -y -p your_script.vpy - | ffmpeg -i - output.mp4
或者从哪个视频输出未压缩的视频,例如在命令中
vspipe -y -p your_script.vpy uncompressed_output.y4m
很抱歉这么晚才答复,但我认为这需要解决:
当脚本是Python解释器的主要目标时,},例如从命令行调用脚本时。在
__name__
变量通常包含{但是,由于没有文档化而不为人所知:当vspipe或任何其他基于vsscript的应用程序运行脚本时,字符串
"__vapoursynth__"
存储在__name__
中。在因此,您的支票应该是:
如果您的
VapourSynth
脚本不是用输入视频文件名参数化的,也就是说,输入文件名在脚本中是硬编码的,例如在语句中你可以直接写下你的整个脚本
(没有定义
main()
函数(示例代码的第一行)以及末尾的
if
块)-或-
替换为
^{pr2}$一开始
最后。在
您可以考虑
vspipe
作为一个专用的Python
解释器,因此它知道(从您的命令clip.set_output()
)哪个视频到管道,例如在命令中或者从哪个视频输出未压缩的视频,例如在命令中
相关问题 更多 >
编程相关推荐