【发布时间】:2017-10-01 14:20:11
【问题描述】:
我遇到了 ffmpeg 停止编码过程的问题,并且在 Internet 上搜索并没有找到可行的解决方案。我通过Python的子进程模块在Linux中调用ffmpeg,如下:
mergeFiles = subprocess.Popen("ffmpeg -i /home/pi/Video/video.mov -i /home/pi/Audio/test.wav -acodec copy -vcodec copy -map 0:v -map 1:a -shortest /home/pi/Final/output.mkv", shell=True)
命令提示符正在等待我用“ctrl-c”手动结束编码过程,但我无法使用键盘来终止编码。我只是希望它完成后停止。几秒钟后,我什至尝试使用 Python 中的 mergeFiles.kill() ,但这甚至都行不通。救命!
编辑:如果我不清楚,我的意思是没有错误,ffmpeg 根本不会继续,直到我点击“ctrl-c”。我只是希望它在完成后停止编码。这是我的命令提示符的样子:
它只是在等我按“ctrl-c”
【问题讨论】:
-
您使用的是来自 Libav 的旧的、伪造的、伪造的“
ffmpeg”。 -
真的吗?我该如何解决这个问题?
-
我不知道您运行的是哪个版本的 Rasbian(如果您使用的是该版本),但您可以使用来自 jessie-backports 的
ffmpeg。或者尝试从 johnvansickle.com/ffmpeg 构建 armhf 下次请复制并粘贴所有控制台文本,而不是制作不完整的文本图像。 -
我正在运行 Jessie 版本的 Raspbian。我想我没有意识到我使用的是假版本的 ffmpeg,因为有一次我的工作正常。我的意思是我让 ffmpeg 在正常完成编码过程的同时很好地合并我的文件。然后突然 ffmpeg 不会让我在不点击“ctrl-c”的情况下结束编码。我意识到这是模糊的,我无法详细说明,因为我不知道为什么它突然停止正确编码。至于控制台文本,我只是运行了我输入的代码,这就是响应。我现在将得到那个 armhf 版本。
-
我在直播时遇到同样的错误,ffmpeg 仍处于“侦听模式”进行编码,但流已关闭,进程将永远处于执行状态。
标签: python linux ffmpeg raspberry-pi subprocess