Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 依次运行两个ffmpeg命令_Python_Ffmpeg - Fatal编程技术网

Python 依次运行两个ffmpeg命令

Python 依次运行两个ffmpeg命令,python,ffmpeg,Python,Ffmpeg,我需要一个接一个地运行两个ffmpeg命令,即等待第一个命令完成,然后运行第二个命令。第一个命令是 ffmpeg -threads 8 -i D:\imagesequence\dpx\brn_055.%04d.dpx D:\imagesequence\dpx\test2.mov 第二个是 ffmpeg -i D:/imagesequence/background.jpg -vf "movie='D\:/imagesequence/dpx/thumbnail.jpg' [watermark];

我需要一个接一个地运行两个
ffmpeg
命令,即等待第一个命令完成,然后运行第二个命令。第一个命令是

ffmpeg -threads 8 -i D:\imagesequence\dpx\brn_055.%04d.dpx D:\imagesequence\dpx\test2.mov
第二个是

ffmpeg -i D:/imagesequence/background.jpg -vf "movie='D\:/imagesequence/dpx/thumbnail.jpg' [watermark]; [in][watermark] overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/3 [out]" D:/imagesequence/dpx/final_with_text_mod_04.jpg

在Python中实现这一点的最佳方法是什么?

您只需使用
子流程
Python模块调用
ffmpeg
命令两次,这已经是默认行为

import subprocess

execstr1 = 'ffmpeg -x -y -z ...'
execstr2 = 'ffmpeg -a -b -c ...'

out1 = subprocess.check_output(execstr1, shell=True)

out2 = subprocess.check_output(execstr2, shell=True)

你读过python的subprocess.call吗?(另外,你实际上没有8个内核。使用4个线程和禁用超线程可能会更快。)你能解释一下吗。8芯,4线程,超线程。有什么地方可以找到这方面的信息吗对不起,我收回我的评论。超线程对程序的影响完全取决于程序本身。谷歌“阅读”以了解更多信息。hyperreading()基本上就是每个物理核有两个逻辑核。看起来可能有8个核心,但工作负载在4个物理核心之间分配。当然,除非您实际拥有8个物理内核,例如某些Xeon或AMD处理器。
a=子进程。如果(a==0),请检查调用([“ffmpeg”、“-threads”、“8”、“-i”、“D:/imagesequence/background.jpg”、“-vf”、“movie=”D\:/imagesequence/dpx/…[out]、“D:/imagesequence/dpx/brn\u 055.0000.dpx”]、shell=True)如果(a==0):b=子进程,请检查调用([“ffmpeg”,“-threads”、“8”、“-i”、“D:/imagesequence/dpx/brn_055.%04d.dpx”、“-vf”、“drawtext=f……….tcolor=Yellow”、“D:/imagesequence/dpx/test2.mov”]、shell=True)
我需要一个接一个地运行。可能吗?我不得不修剪命令,因为空间有限