【发布时间】:2019-04-12 19:36:26
【问题描述】:
我正在尝试将 ffmpeg 命令的 stderr 和 stdout 都重定向到一个文件,并在执行 Python 脚本时抑制它们。这是我的代码:
import subprocess, shlex
cmd = 'ffmpeg -hide_banner -i input.mp4 -c:v libx264 -b:v 2M -c:a copy enc_out.mp4'
with open("ffmpeg_out.txt", 'w') as log:
ffmpeg_cmd = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE)
ffmpeg_stdout = ffmpeg_cmd.communicate()
for i in range(len(ffmpeg_stdout) - 1):
log.write(str(ffmpeg_stdout[i]) + "\n")
所以总的来说,我想做类似于ffmpeg -hide_banner -i input.mp4 -c:v libx264 -b:v 2M -c:a copy enc_out.mp4 &> ffmpeg_out.txt 的事情。所以目前在 ffmpeg_stdout 我只有(b'', None) 并且在执行脚本时都打印了标准输出和标准错误。
【问题讨论】:
标签: python ffmpeg subprocess stdout stderr