使用python';s子进程。Popen

使用python';s子进程。Popen,python,ffmpeg,subprocess,Python,Ffmpeg,Subprocess,我正在尝试连接视频以生成以下命令: 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 & ffmp

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

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
当我只是在终端中ytpe它时,这个命令非常有效,但是当我使用
subprocess.Popen
时,它会挂起到最后处理的块上,就像

有什么不对劲

p.S:这是我执行命令的方式:

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()
而不是
子流程。Popen()
成功了,但子流程的问题仍然存在。

删除
管道。等待()
,只保留
通信()
调用。也可以检查
pipe.returncode
to be==0是否没有错误。

那里没有返回代码,在处理最后一个块之后和连接之前仍然挂起。