python - 如何使用 ffmpeg-python 在 filter_() 中使用高级选项?
问题描述
我正在使用ffmpeg-python包装器。
我想通过这个包装器模仿这个 ffmpeg 命令。
ffmpeg -i multiaudio.avi -map 0:a:0 multiaudio_test_a01.wav
这样做的目的是从视频中获取第一个音轨并将其保存为具有最佳质量的单独音频文件。有关高级选项“地图”的更多信息:ffmpeg 地图文档
现在使用包装器我尝试了类似的东西:
(ffmpeg
.input(filepath)
.filter_('map', map='0:a:0')
.output(str(os.path.splitext(filepath)[0]) + "_test_a01.wav")
.run()
)
现在重要的一行,不断抛出错误是这一行:
.filter_('map', map='0:a:0')
有人可以告诉我,我需要如何重写这行代码才能使其工作?
编辑:错误消息
Error initializing complex filters. Invalid argument [...] raise Error('ffmpeg', out, err) ffmpeg._run.Error: ffmpeg error (see stderr output for detail)
谢谢你。
解决方案
由于 ffmpeg 参数“-map”是高级选项而不是过滤器,因此需要为输出指定参数,如下所示:
(ffmpeg
.input(filepath)
.output(str(os.path.splitext(filepath)[0]) + "_test_a01.wav", map="0:a:0")
.run()
)