我尝试了 3 种方法从 python 调用 ffmpeg,但它总是阻塞并且不返回任何结果。
但是,如果我从 shell 执行它,它就会起作用。
For eg:
/usr/bin/ffmpeg -y -i /tmp/uploadedfiles/movie8_15_10s.mpg -ar 1600 -ac 1 /tmp/uploadedfiles/movie8_15_10s.mpg.wav
这有效。
However,
ffmpeg_command = "/usr/bin/ffmpeg -y -i test.wav testout.wav"
f_ffmpeg=os.popen(ffmpeg_command);
这使得蟒蛇挂起。
你应该使用subprocess.Popen http://docs.python.org/library/subprocess.html#subprocess.Popen代替os.popen
.
特别是,为了获得相同的行为,您可以通过 shell 运行该进程shell=True
并收集输出stdout
and stderr
如下:
p = subprocess.Popen(command, shell=True,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output = p.communicate()[0]
where command
与您在 shell 中编写的命令行相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)