gpt4 book ai didi

python - ImageMagick 到 ffmpeg 使用 python 和子进程

转载 作者:行者123 更新时间:2023-12-04 23:08:44 34 4
gpt4 key购买 nike

我正在尝试使用

blend = Popen(['convert', 'test_images/*.jpg', '-delay', '10', '-morph', '10', '-'], stdout=PIPE)

并将输出通过管道传输到 ffmpeg 以从图像序列中写入视频
video = Popen(['ffmpeg', '-i', '-', '-f', 'image2pipe', '-r', '30', '-c:v', 'libx264', '-pix_fmt', 'yuv420p', 'test.mp4'], stdin=PIPE)

for _ in range(15):
video.stdin.write(blend.stdout.read())
video.stdin.close()

我试图在内存中完成这一切,而不是写入磁盘。我目前得到的只是一个 50kb 的 mpeg4 文件,它没有打开。

最佳答案

我制作了 4 张从红色、橙色、黄色到蓝色的图像,如下所示:

convert -size 256x256 xc:red    1.png
convert -size 256x256 xc:orange 2.png
convert -size 256x256 xc:yellow 3.png
convert -size 256x256 xc:blue 4.png

并且,为了快速检查,将它们一起变形为具有 34 帧的动画 GIF:
convert [1234].png -morph 10 result.gif

enter image description here

然后我检查了 ffmpeg可以阅读其 stdin并且似乎可以读取多个 PPM (可移植像素图)文件连接在一起,所以我告诉 ImageMagick 按如下方式制作 PPM 文件并将其输入 ffmpeg :
convert [1234].png -morph 10 ppm:- | ffmpeg -f image2pipe -framerate 30 -i - output.mpg

请注意,选项的顺序很重要: -f image2pipe需要用作输入选项(在 -i 之前)。

我得到了一个我无法发布的工作 MPG 视频,但它可以工作。

我想现在您可以将文件放入 ffmpeg您可以四处游荡并获得所需的输出类型-希望如此!一些实验和来自@LordNeckbeard 的一些友好建议似乎表明这应该有效:
convert [1234].png -morph 10 ppm:-  | ffmpeg -f image2pipe -framerate 30 -i - -c:v libx264 -pix_fmt yuv420p test.mp4 

关于python - ImageMagick 到 ffmpeg 使用 python 和子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40159033/

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