在子进程调用 ffmpeg 中禁用输出
Disable output in subprocess call 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 文档说
To suppress stdout or stderr, supply a value of DEVNULL
.
所以你可以替换
subprocess.call(['ffmpeg', '-i', songfile, songfile + ".ogg"])
使用
subprocess.call(['ffmpeg', '-i', songfile, songfile + ".ogg"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
值得一看,但这就是您的尝试无效的原因:请记住,当您执行 subprocess.call
时没有涉及 shell(除非您明确要求it),这意味着您需要将 -loglevel quiet
作为两个单独的项目传递; ..., '-loglevel', 'quiet', ...
我目前在 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 文档说
To suppress stdout or stderr, supply a value of
DEVNULL
.
所以你可以替换
subprocess.call(['ffmpeg', '-i', songfile, songfile + ".ogg"])
使用
subprocess.call(['ffmpeg', '-i', songfile, songfile + ".ogg"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
subprocess.call
时没有涉及 shell(除非您明确要求it),这意味着您需要将 -loglevel quiet
作为两个单独的项目传递; ..., '-loglevel', 'quiet', ...