2017-05-31 134 views
3

我想从jpeg图像列表中创建一个gif图像,一切正常,但是如何减慢动画速度?使用ffmpeg从jpeg图像生成gif

这里是我的代码:

<?php 
exec('ffmpeg -f image2 -i thumb/%001d.jpg -vf scale=480x240 out.gif'); 
?> 

回答

2

要减慢图像序列,降低其帧率

ffmpeg -f image2 -framerate 10 -i thumb/%001d.jpg -vf scale=480x240 out.gif 
+0

您可以提高ffmpeg中gif的质量吗? – wojttaa

+0

是的,请参阅http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html – Mulvya

+0

谢谢,你能帮我按照网站上的教程申请我的ffmpeg代码吗? – wojttaa

0

您希望-r标志设置的帧速率(每秒帧数)。从官方文件:

-r [:stream_specifier] FPS(输入/输出,每流)

设定的帧速率(赫兹值,分数或缩写)。

作为输入选项,忽略存储在文件中的任何时间戳,而是生成时间戳,假设帧速率为fps。这与用于某些输入格式(如image2或v4l2)的-framerate选项不同(它在FFmpeg的旧版本中与以前版本相同)。如果有疑问,请使用-framerate而不是输入选项-r。

作为输出选项,复制或放下输入帧以实现恒定输出帧频fps。

例如,设置为30 fps:

ffmpeg -f image2 -i thumb/%001d.jpg -vf scale=480x240 -r 30 out.gif 

注:-r参数必须出现输入文件后如果你想让它适用于输出

+0

当-r 1设置仅显示2帧时有效。在拇指目录中,我有6张照片,我想显示所有人,并为每个人显示1秒钟。 – wojttaa

+0

尝试在'out.gif'之前添加'-frames:v 6'' – MTCoster

0

我使用这个代码:

<?php 
exec('ffmpeg -ss '.$date.' -i video.mp4 -vf scale=320x180 thumb/'.$i.'.png'); 
?> 

我使用一个循环生成多张图像,$ I在变量$日期并有环数,而$日期产生时的时间图像将被生成。问题在于有时会生成黑色图像。如何解决它?