我正在从我服务器上的视频生成动画 GIF。
生成的 GIF 质量不是很高,看起来像素很大。
例子:
这就是我生成 GIF 的方式:
shell_exec("/usr/bin/ffmpeg -i video.mkv -vf scale=500:-1 -t 10 -r 10 image.gif");
我在谷歌上搜索了一下,发现了这个:
shell_exec("/usr/bin/ffmpeg -i video.mkv -r 20 -f image2pipe -vcodec ppm - | convert -delay 5 - output.gif");
但是上面的命令没有做任何事情,并且根本没有生成 output.gif。
我遇到了一些教程,但没有一个对我有用,其中一些涉及使用我无法访问的 ImageMagick。
有人可以让我知道是否有使用 FFmpeg 生成高质量 GIF 的明确方法吗?
最佳答案
我专门为最高质量编写了一个工具:
https://gif.ski
ffmpeg -i video.mp4 frame%04d.png
gifski -o clip.gif frame*.png
它可以生成良好的每帧调色板,但也可以跨帧组合调色板,每帧甚至可以实现数千种颜色。
如果要减小视频尺寸,请添加缩放过滤器:
ffmpeg -i video.mp4 -vf scale=400:240 frame%04d.png
如果要降低帧率,请添加
fps
筛选:ffmpeg -i video.mp4 -vf fps=12 frame%04d.png
您可以将过滤器与
-vf scale=400:240,fps=12
组合使用
关于animation - FFmpeg:高质量的动画 GIF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42980663/