命令行使用ffmpeg在python中关闭得太快

时间:2014-02-18 13:52:31

标签: python command-line ffmpeg

我正在使用python在MevisLab环境中创建一个宏模块。我想在Python中的命令提示符中使用ffmpeg。问题是命令提示符关闭得太快,以至于在执行ffmpeg时我无法读取。

我的代码

  t = 'ffmpeg -r'+str(ctx.field("FrameRate").value)+'-f image2 -pix_fmt yuv44p -s 1920x1080 -i'+path+'%0d.png -vodec libx264 -crf 15'+path+'.mp4'

os.system(t)

2 个答案:

答案 0 :(得分:1)

您可以尝试将stdout / stderr重定向到文件并稍后阅读:

t = 'ffmpeg -r'+str(ctx.field("FrameRate").value)+'-f image2 -pix_fmt yuv420p -s 1920x1080 -i'+path+'%0d.png -vcodec libx264 -crf 15'+path+'.mp4'
log_path = r'C:\log.txt'
os.system(t + ' >> ' + log_path + ' 2>&1')

可能导致此类问题的原因是ffmpeg参数(例如-f / -i)之间缺少空格。

答案 1 :(得分:0)

您可以捕获输出并从Python本身打印它。说:

from subprocess import check_output, STDOUT

try:
    output = check_output(t, shell=True, stderr=STDOUT)
except CalledProcessError, e:
    output = e.output
如果命令以状态码!= 0返回,

check_output将引发异常。我也在那里捕获错误输出,以防万一。