Python:使用多个 .png 图像制作视频 [关闭]

Posted

技术标签:

【中文标题】Python:使用多个 .png 图像制作视频 [关闭]【英文标题】:Python: Make a video using several .png images [closed] 【发布时间】:2012-11-15 11:19:45 【问题描述】:

我正在尝试使用一系列 .png 图像制作视频。我找到了这个 Python 脚本,但我不完全确定如何使用它:

https://sites.google.com/site/timelapsepy/home

我也尝试查看 opencv,但它似乎没有为我正确安装。关于将多个图像串在一起以创建延时视频的简单程序的任何想法?如果可能的话,我想使用 Python。

【问题讨论】:

timelapsepy 的示例看起来非常简单。它甚至似乎不需要太多的 Python 知识,因为它只是一个命令行实用程序集。你卡在哪一部分?一个纯 python 脚本解决方案将比这更具挑战性。如果这个工具集已经让你感到困惑,那么 OpenCV 或 PIL 对你来说会更难使用。 我的示例文件夹只包含几张图片和一个视频。我不完全明白这有什么帮助。 =/ 这个脚本是为了让时间流逝。那是你的目标吗?如果您只想将 png 图像直接组合到视频中,则可以使用教程中的 ffmpeg 方法。 @Matt:哇,你关闭它,它立即在重新打开队列中:***.com/review/reopen/9922470 【参考方案1】:

如果你真的需要一个脚本化的 python 解决方案,你可以考虑使用PIL

但如果你只是想轻松地将一系列 png 图像转换为电影,你可以简单地使用 ffmpeg:

ffmpeg -f image2 -r 1/5 -i image%05d.png -vcodec mpeg4 -y movie.mp4

此命令获取具有 5 位填充的图像 (image00001.png) 并将它们压缩为 mpeg4 quicktime,以保持每帧 5 秒的速率。如果您的图像更大,您可以使用不同的 fps:-r 24(每秒 24 帧)

【讨论】:

如果我有许多具有相似命名约定的图像,并且想用它们创建不同的视频,名称在一个范围内。例如,image0001 - image 0090 作为movie1,image0230 - image0320 作为movie2?有什么想法吗? @KexinXu - 然后你需要在输入之前使用-start_number <int> 标志,告诉它从哪一帧开始,可能还有-t <duration> 告诉它需要多长时间。 对于所有阅读本文的人:虽然 PIL 被枕头取代,但 ffpmegNOT 被 libav/avconv 取代。 ffmpeg 项目仍然很强大,贡献比 libav 更多。 我相信 -f 选项是不需要的。见ffmpeg.org/ffmpeg.html“格式通常是自动检测输入文件的格式,并根据输出文件的文件扩展名猜测,因此在大多数情况下不需要此选项。” 这不起作用。我收到此错误:[image2 @ 0x552f10b0] Could find no file with path 'image%05d.png' and index in the range 0-4 image%05d.png: No such file or directory【参考方案2】:

您可能希望使用 avconv

而不是 ffmpeg
avconv -f image2 -i figMatplotlib%d.png -r 76 -s 800x600 foo.avi

【讨论】:

你确定 ffmpeg 已被弃用吗,看这里:git.videolan.org/?p=ffmpeg.git;a=log;h=HEAD 如果我有许多具有相似命名约定的图像,并想用它们创建不同的视频,名称在一个范围内。例如,image0001 - image 0090 作为movie1,image0230 - image0320 作为movie2?有什么想法吗? ffmpeg 没有被弃用!请看这个答案:***.com/questions/9477115/…

以上是关于Python:使用多个 .png 图像制作视频 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Python碰撞使用pygame检测图像(图像类型:png)

PS 制作RGBA四通道 TGA格式图片

FFmpeg:如何用幻灯片和音频制作视频

如何使用 Gstreamer 从 PNG 图像创建 mp4 视频文件

在Python中将turtle绘制的图像转换为PNG

如何使用 Python 将 .ICO 转换为 .PNG?