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



我正在尝试使用subprocess.call调用简单的ffmpeg命令行。(例 : ffmpeg -i inputvideo.mp4 -r 30 inputvideo.avi

通过直接键入 ffmpeg 命令它可以工作,但是当我尝试使用 subprocess.call : subprocess.call('ffmpeg -i inputvideo.mp4 -r 30 inputvideo.avi', shell=True) 调用它时,没有错误,但它不会产生任何东西。

知道问题出在哪里吗?(我正在使用python 3.4或2.7,我都尝试过)

终于发现了问题:当你使用子进程时,你必须使用

/

对于您的文件位置,而不是


编辑:或者您可以使用原始字符串文字 -> r'ffmpeg -i inputvideo.mp4 ...'(注意:r''),或者您可以将它们加倍 ' \ ' 感谢 J.F. 塞巴斯蒂安

x=subprocess.Popen('ffmpeg -i inputvideo.mp4 -r 30 inputvideo.avi', shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output,err=x.communicate()
if output:
      print "success ",output
else:
      print "error ",err

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

最新更新