我使用的是ffmpeg python包装器。
我想通过这个包装器来模仿这个ffmpeg命令。
ffmpeg -i multiaudio.avi -map 0:a:0 multiaudio_test_a01.wav
这样做的目的是从视频中提取第一个音轨,并将其保存为具有最佳质量的单独音频文件。高级选项的更多信息";map":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参数"-地图";是一个高级选项,而不是过滤器,需要为输出指定参数,如下所示:
(ffmpeg
.input(filepath)
.output(str(os.path.splitext(filepath)[0]) + "_test_a01.wav", map="0:a:0")
.run()
)