FFmpeg 学习9 -- 进阶命令高清Gif生成

一、使用PNG的序列帧生成Gif

命令行代码

ffmpeg -r 20 -i image_%d.png video1.gif

此命令可以制作一个20fps的动图,但是我在制作的时候遇到了失色的情况(在图像周围有诡异的黄色出现)。为了解决此问题,可以先为每一张图片生成一个调试板,然后根据调色板制作gif图片。

ffmpeg -r 20 -i image_%02d.png -vf palettegen p1.png

ffmpeg -r 20 -i image_%02d.png -i p1.png -lavfi paletteuse video1.gif

二、使用Mp4 生成Gif

命令行之前只要使用

ffmpeg -i 2.mp4 2.gif

就可以输出gif 文件,但是不清晰;改用以下命令上一个档次

ffmpeg  -i 2.mp4 -vf palettegen palette.png

ffmpeg  -i 2.mp4 -i palette.png -lavfi paletteuse 21.gif

也可以简化为一条命令:

ffmpeg -i 2.mp4 -vf "split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" 22.gif

可以参考:https://www.freesion.com/article/39981384352/

还可以再增加为更复杂一点:

ffmpeg -i 2.mp4 -vf "split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -s 480*320 -r 10 23.gif

-s 表示分辨率改为多少

-r 是多少fps

-vf 就是表示,生产画板palettegen

-vf 表示使用画板 paletteuse


还可以再增加为更复杂一点:

ffmpeg -i input.mp4 -vf "fps=30,scale=720:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

这个命令将MP4视频转换为GIF,采用以下参数:

-vf "fps=30,scale=720:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse":这个是视频滤镜参数,将视频帧率设置为30FPS,将视频缩放到720宽度,保持高度比例不变,使用lanczos算法进行缩放,然后将视频分割成两个流,一个用于生成调色板,另一个用于应用调色板。

output.gif:这个是输出的GIF文件名。

这个命令将生成高质量的GIF文件,但文件大小可能会比较大。如果您需要更小的文件大小,可以尝试调整帧率和缩放比例等参数来进行优化。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容