首页 > 解决方案 > Python ffmpeg 子进程制作无法播放的文件,但大小合适,只是挂起

问题描述

我目前有这个子进程调用 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 个演出的文件,无法播放,并且只是挂起。它从不打印“进程完成”、“调用后”或错误,它只是挂起。

我用 ffmpeg 错误地调用子进程吗?

标签: pythonffmpegsubprocess

解决方案


更新您的ffmpeg

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

有关可执行文件的链接,请参阅编译指南FFmpeg 下载页面。


推荐阅读