我正在使用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)
答案 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
将引发异常。我也在那里捕获错误输出,以防万一。