gpt4 book ai didi

python - Ffmpeg 映射和 filter_complex 子进程 - Python

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

我想在 python 中使用子进程通过 ffmpeg 裁剪和重新编码视频。

我设法使用纯字符串命令和 shell=True 启动子进程,但我想构建更复杂的命令,并且更喜欢使用 shell=False 并传递参数列表。

那么这种形式起作用的是(这是一个简化的示例,最终版本中会有多个流):

import subprocess as sp

sp.Popen('ffmpeg.exe -i Test.avi -filter_complex "[0:v]crop=1024:1024:0:0[out1]" -map [out1] out1.mp4', shell=True)

此脚本生成预期的裁剪输出视频。

对于参数列表,我尝试了:
FFMPEG_PATH = 'ffmpeg.exe'
aviP='Test.avi'
sp.Popen([FFMPEG_PATH,
'-i', aviP,
'-filter_complex', '[0:v]crop=1024:1024:0:0[out1]',
'-map', '[out1] out1.mp4'])

当我执行第二个版本时,什么也没有发生。 (没有错误,没有输出)

我怀疑我在 map 命令语法中弄乱了一些东西?

最佳答案

我想我想通了:

FFMPEG_PATH = 'ffmpeg.exe'
aviP='Test.avi'
sp.Popen([FFMPEG_PATH,
'-i', aviP,
'-filter_complex', '[0:v]crop=1024:1024:0:0[out1]',
'-map', '[out1]', 'out1.mp4'])

是正确的语法

关于python - Ffmpeg 映射和 filter_complex 子进程 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34091007/

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