Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PythonFFMPEG子进程使文件无法播放,但大小合适,只是挂起_Python_Ffmpeg_Subprocess - Fatal编程技术网

PythonFFMPEG子进程使文件无法播放,但大小合适,只是挂起

PythonFFMPEG子进程使文件无法播放,但大小合适,只是挂起,python,ffmpeg,subprocess,Python,Ffmpeg,Subprocess,我目前有一个子进程调用ffmpeg print("Starting alphamerge") cmd = "ffmpeg -y -nostats -loglevel 0 -i %s -i %s -filter_complex '[1][0]scale2ref[mask][main];[main][mask]alphamerge' -c:v qtrle %s" % ( file_path, temp_file, output) pro

我目前有一个子进程调用ffmpeg

print("Starting alphamerge")
cmd = "ffmpeg -y -nostats -loglevel 0 -i %s -i %s -filter_complex '[1][0]scale2ref[mask][main];[main][mask]alphamerge' -c:v qtrle %s" % (
            file_path, temp_file, output)
process = sp.Popen(cmd, shell=True, stdout=sp.PIPE, stderr=sp.PIPE)
stdout, stderr = process.communicate()
print('after call')

if stderr:
   return "ERROR: %s" % stderr.decode("utf-8")
print("Process finished")


但这个过程最终会使一个文件超过2 Gig,无法播放,并且只是挂起。它从不打印“进程完成”、“调用后”或错误,它只是挂起

我是否用ffmpeg调用子进程出错?

更新您的
ffmpeg
当遇到
ffmpeg
问题时,第一步是尝试最新版本。理想情况下,从当前git主分支开始。开发非常活跃,您可能会遇到已经修复的bug


有关可执行文件的链接,请参阅或页面。

有关测试:1。删除
-nostats-loglevel0
。2.删除:
shell=True,stdout=sp.PIPE,stderr=sp.PIPE
。3.执行:
sp.run(shlex.split(cmd))
。我认为您正在填充磁盘,因为
qtrle
编解码器几乎没有压缩。如果您在命令行界面中未经编写运行相同的
ffmpeg
命令,该命令是否有效?@llogan似乎没有,这是从这个问题开始的,@rotem在我调整它后,它输出的
超过持续时间0.815666太大,最后一条消息重复了一次
一束,然后在有或没有python的情况下达到0.8156时冻结。@llogan似乎适用于较小的视频,所以我觉得视频必须被更正,但是原始视频和哑光都是play@nadermx在没有命令和日志的情况下,我只能建议您在做任何其他事情之前先尝试更新版本的ffmpeg(最好是从git主分支)。既然我猜你在用Ubuntu,你可以用它,也可以用它。