7

我想从静止图像创建视频,最好使用 ImageMagick 和/或 ffmpeg。我找到的最好的指南在这里:http ://www.itforeveryone.co.uk/image-to-video.html

这种工作,但这个命令

convert *.JPG -delay 10 -morph 10 %05d.morph.jpg

对我不起作用,因为延迟设置了静止图像和变形图像的时间。

我为一组四张图片(1.jpg ... 4.jpg)和一张额外的黑色图片 0.jpg 提出了这个解决方案:

convert -size 800x600 xc:'rgba(0,0,0,1)' 0.jpg
convert \
\( -set delay 1 0.jpg 1.jpg -morph 10 \) \
\( -set delay 60 1.jpg \) \
\( -set delay 1 1.jpg 2.jpg -morph 10 \) \
\( -set delay 60 2.jpg  \) \
\( -set delay 1 2.jpg 3.jpg -morph 10 \) \
\( -set delay 60 3.jpg         \) \
\( -set delay 1 3.jpg 4.jpg -morph 10 \) \
\( -set delay 60 4.jpg         \) \
\( -set delay 1 4.jpg 0.jpg -morph 10 \) \
 output.mpg

这做了我想要的,除了它

  1. 看起来很复杂
  2. 我显然不能在其中放置“*.jpg”,以便它适用于目录中的任何图像集。

现在我可以用 python 或 bash 自己的方式编写一个为我自动执行此操作的脚本,但我的直觉是我监督了一些明显的事情,可以将上述脚本变成一个漂亮的单行脚本?或者至少是不那么难看的东西?

提前致谢。

4

2 回答 2

3

我没有找到允许在其中扔“*.jpg”的解决方案。但是使用 -duplicate 可以稍微清理一下。我使用的常量与您不同,但这里是:

convert \
\( 0.png 1.png -morph 23 -duplicate 25,-1 \) \
\( 1.png 2.png -morph 23 -duplicate 25,-1 \) \
\( 2.png 3.png -morph 23 -duplicate 25,-1 \) \
\( 3.png 4.png -morph 23 -duplicate 25,-1 \) \
\( 4.png 0.png -morph 23 \) \
output.mpg

我知道这个问题现在有点老了。如果,自从您发布以来,您找到了一个允许在其中抛出“*.jpg”的解决方案,我很乐意看到它。

于 2013-09-17T20:29:52.513 回答
1

我在阅读同一篇文章后发现了这篇文章。我能够让它与黑客一起工作,而不是你可以可靠地自动化的东西。但它对我有用,有一次我将使用这些说明。

我无法让我的这批 205 张按顺序编号且尺寸相同的图像进行转换。我会等待 10-15 分钟,输出文件夹中不会出现任何内容。我将处理分成 100 批,它会在 2-3 分钟后处理。我猜 205 张图像对它的大脑来说太多了。

这需要我使用 -scene 参数调整输出命名顺序

convert 00*.jpg -delay 10 -morph 10 frames/%05d.morph.jpg
convert 01*.jpg -delay 10 -morph 10 -scene 1079 frames/%05d.morph.jpg
convert 02*.jpg -delay 10 -morph 10 -scene 2169 frames/%05d.morph.jpg
ffmpeg -i frames/%05d.morph.jpg -c:v libx264 -vf fps=25 -pix_fmt yuv420p output.mp4
于 2014-11-29T06:42:34.397 回答