使用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是否没有错误。那里没有返回代码,在处理最后一个块之后和连接之前仍然挂起。