gpt4 book ai didi

python - 使用 python 的 subprocess.Popen 使用 ffmpeg 连接文件

转载 作者:行者123 更新时间:2023-12-04 23:29:06 29 4
gpt4 key购买 nike

我正在尝试连接生成以下命令的视频:

ffmpeg -i /srv/proj/chunks/phrases/lq/ti.mp4 -y -c copy -bsf:v h264_mp4toannexb -f mpegts /tmp/ti.mp4 & ffmpeg -i /srv/proj/chunks/phrases/lq/luchshii.mp4 -y -c copy -bsf:v h264_mp4toannexb -f mpegts /tmp/luchshii.mp4 & ffmpeg -i /srv/proj/chunks/phrases/lq/novii.mp4 -y -c copy -bsf:v h264_mp4toannexb -f mpegts /tmp/novii.mp4 & ffmpeg -i /srv/proj/chunks/phrases/lq/drug.mp4 -y -c copy -bsf:v h264_mp4toannexb -f mpegts /tmp/drug.mp4 & ffmpeg -f mpegts -i "concat:/tmp/ti.mp4|/tmp/luchshii.mp4|/tmp/novii.mp4|/tmp/drug.mp4" -y -c copy -bsf:a aac_adtstoasc /srv/proj/concats/ty-luchshii-novyi-drug.lq.mp4

当我只是在终端中输入它时,这个命令非常有效,但是当我使用 subprocess.Popen 时,它卡在最后处理的 block 上,如 this

有什么问题?

PS :这就是我执行命令的方式:
def _execute(command_str, **kwargs):
import subprocess
import shlex

command = shlex.split(command_str)

try:
pipe = subprocess.Popen(command, **kwargs)
pipe.wait()
stdout, stderr = pipe.communicate()
except Exception:
raise ConcatError('cannot concat files')

return stdout

P.P.S : os.system()而不是 subprocess.Popen()成功了,但子进程的问题仍然存在。

最佳答案

删除 pipe.wait() , 只留下 .communicate()称呼。也可以查看pipe.returncode为 == 0 表示没有错误。

关于python - 使用 python 的 subprocess.Popen 使用 ffmpeg 连接文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27230483/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com