gpt4 book ai didi

python - 在python中管道输入和输出ffmpeg

转载 作者:太空宇宙 更新时间:2023-11-03 11:43:51 26 4
gpt4 key购买 nike

我正在使用 ffmpeg 创建一个视频,该视频来 self 通过管道传输到 ffmpeg 的 base64 编码图像列表。

输出到一个文件(使用下面的附加代码)工作得很好,但我想实现的是将输出改为一个 Python 变量——这意味着管道输入和管道输出,但我似乎无法得到它上类

我当前的代码:

output = os.path.join(screenshots_dir, 'video1.mp4')

cmd_out = ['ffmpeg',
'-y', # (optional) overwrite output file if it exists
'-f', 'image2pipe',
'-vcodec', 'png',
'-r', str(fps), # frames per second
'-i', '-', # The input comes from a pipe
'-vcodec', 'png',
'-qscale', '0',
output]

pipe = sp.Popen(cmd_out, stdin=sp.PIPE)

for screenshot in screenshot_list:
im = Image.open(BytesIO(base64.b64decode(screenshot)))
im.save(pipe.stdin, 'PNG')

pipe.stdin.close()
pipe.wait()

这会产生一个可用的 mp4,但我想避免保存到本地。

运行相同的代码,将 output 更改为 '-''pipe:1' 并添加 stdout=sp。 PIPE 导致错误

[NULL @ 0x2236000] Unable to find a suitable output format for 'pipe:'

最佳答案

FFmpeg 通过检查输出扩展来猜测输出多路复用器。对于管道,它不存在,因此必须明确设置。在输出之前添加 '-f', 'image2pipe'

关于python - 在python中管道输入和输出ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43997109/

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