我试图用subprocess.call调用简单的ffmpeg命令行。
(例如:ffmpeg -i input\video.mp4 -r 30 input\video.avi
)
通过直接键入ffmpeg命令可以正常工作,但是当我尝试使用subprocess.call调用它时:subprocess.call('ffmpeg -i input\video.mp4 -r 30 input\video.avi', shell=True)
没有错误,但它不会产生任何错误。
知道问题出在哪里? (我正在使用python 3.4或2.7,我试过两个)
答案 0 :(得分:2)
终于找到了问题:当你使用子进程时,你必须使用
/
表示您的文件位置,而不是
\
编辑:或者您可以使用原始字符串文字 - > r'ffmpeg -i input\video.mp4 ...'
(通知:r'')或者你可以加倍“\\
”
感谢J.F. Sebastian
答案 1 :(得分:0)
x=subprocess.Popen('ffmpeg -i input\video.mp4 -r 30 input\video.avi', shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output,err=x.communicate()
if output:
print "success ",output
else:
print "error ",err
您可以尝试此操作并检查输出和错误(如果有)。