我正在尝试从 python 运行 ffmpeg 并获得一些合理的输出。不管 ffmpeg 的日志级别设置了什么,我从 Popen.communicate() 得到的唯一输出是错误的。但是,内容不是错误。我尝试了相同的代码来运行其他命令(ls),并且输出和错误输出似乎都可以。
我检查了这里和谷歌,不幸的是什么也没找到。大多数示例使用 os 或 commands 模块,而不是子进程。
这是我的测试代码:
command = [
'ffmpeg',
'-v', 'debug',
'-i', '1.mov',
'-vcodec', 'libx264',
'-profile:v', 'high',
'-preset', 'slower',
'-b:v', '1000k',
'-vf', 'scale=-1:720',
'-threads', '0',
'-acodec', 'libfdk_aac',
'-b:a', '192k',
'-y',
'2.mp4',
]
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
f = open('out.log', 'w')
f.write(out)
f.close()
f = open('error.log', 'w')
f.write(err)
f.close()
你见过这样的事情吗?我做错了什么还是ffmpeg中有错误?