禁用子进程调用ffmpeg中的输出



我目前正在python中使用以下命令将.webm文件转换为.ogg

subprocess.call(['ffmpeg', '-i', songfile, songfile + ".ogg"])

这会打印出一堆我不需要的输出,但我无法使用此命令禁用它。

subprocess.call(['ffmpeg', ' -loglevel quiet','-i', songfile, songfile + ".ogg"])

我得到错误

Unrecognized option '-log-level quiet'.

如何在此处禁用ffmpeg输出?

subprocess.call文档显示

若要抑制stdout或stderr,请提供值DEVNULL

因此您可能会更换

subprocess.call(['ffmpeg', '-i', songfile, songfile + ".ogg"])

使用

subprocess.call(['ffmpeg', '-i', songfile, songfile + ".ogg"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)

Daweo的答案值得一看,但以下是您的尝试失败的原因:请记住,在执行subprocess.call时不涉及shell(除非您明确要求(,这意味着您需要将-loglevel quiet作为两个单独的项传递;..., '-loglevel', 'quiet', ...

最新更新