Python:使用子进程调用ffmpeg命令行

时间:2014-11-16 16:32:58

标签: python video ffmpeg subprocess

我试图用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,我试过两个)

2 个答案:

答案 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

您可以尝试此操作并检查输出和错误(如果有)。