如何从应用程序捕获命令行输出

时间:2014-02-25 05:40:01

标签: python ffmpeg

当我运行命令ffmpeg -i rtsp://172.19.1.40/live.sdp -acodec copy -vcodec copy lala.avi

ffmpeg将继续打印(刷新)信息fpsbitrate所有人。

如何使用Python保存这些信息?

enter image description here enter image description here enter image description here

2 个答案:

答案 0 :(得分:0)

您可以将stderr输出重定向到文本文件,如下所示:

ffmpeg -i rtsp://172.19.1.40/live.sdp -acodec copy -vcodec copy lala.avi 2> log.txt

答案 1 :(得分:0)

如果您确实需要使用Python,可以将subprocess模块与subprocess.PIPEcommunicate一起使用,如下所示:

import subprocess

cmd = 'ffmpeg', '-i', 'rtsp://172.19.1.40/live.sdp', '-acodec', 'copy', '-vcodec', 'copy', 'lala.avi'
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()

然后命令的stdout和stderr将分别存储在stdout和stderr变量中。但是,如果您只需要存储输出,那么Drewness的答案会更好。