如何使用PHP从图像创建视频?

mir*_*rza 14 php ffmpeg image-processing video-processing

假设我有10张图片,我想将这些图像组合成幻灯片中的视频.

例如,我想显示每个图像5秒,然后继续下一个图像再持续5秒.

如果可能,那么包含音乐和一些描述性文本也将是完美的.

是否有一个示例代码可能与ffmpeg库?

Tim*_*out 12

我的第一个想法是用这样的东西向ffmpeg命令发出外壳.

从图像创建视频

ffmpeg可用于将多个图像拼接成视频.有很多选项,但以下示例应该足以开始.它需要所有具有XXXXX.morph.jpg文件名的图像,其中X是数字,并创建一个名为"output.mp4"的视频.qscale选项指定图像质量(1表示最高,32表示最低)," - r"选项用于指定每秒的帧数.

ffmpeg -r 25 -qscale 2 -i%05d.morph.jpg output.mp4

(这个模糊的网站已经消失.链接已被删除.)

其中25表示每秒25幅图像.您可以将此设置为1表示轻微(1秒)延迟或使用小数,IE:0.5表示延迟2秒.

然后,您可以将视频和音频流与此类结合起来.

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -b:a 128k final.mp4
Run Code Online (Sandbox Code Playgroud)

当然选择适当的编解码器.如果你想要一个mp4使用libx264用于视频和aac(内置于ffmpeg而不再是"实验性")用于音频.

请记住,如果您选择使用这样的方法,默认情况下,当您尝试读取时,ffmpeg输出会转到stderr.如果您愿意,可以将其重定向到标准输出.


M. *_*ing 5

我想到的第一件事就是imagemagick.我已经将它与PHP一起用于大量的图像处理,我知道它支持读取大量的视频格式,并且根据该链接它也支持写入一些.

  • imagick需要ffmpeg所以基本上用php进行视频操作没有任何优势... (2认同)

Mic*_*hal 5

是的,ffmpeg 是适合您的解决方案。我最近刚刚制作了类似的东西 - 一个带有动画缩略图的视频网站。我使用 ffmpeg 将图像放在胺化的 gif 中。但是,输出可以是您需要的任何内容...不幸的是,在我对这个主题的搜索中,我没有找到任何示例代码可以结合您所追求的所有要点,所以我想您必须手动尝试使用 ffmpeg .. .在我的项目中,我在某些部分使用了 php 视频工具包http://sourceforge.net/projects/phpvideotoolkit/,以使其更容易一些...