我们在博客中广泛使用gif。我们曾经在其中嵌入男高音纳米gif(90px高度保持宽高比,用于GIF预览和在移动设备上共享)。现在,我们要创建自己的gif,并使用以下命令将mp4转换为gif,同时保持男高音nano gif的属性。使用ffmpeg版本4.1.4
但是,我们发现所创建的gif与使用次中音创建的gif在大小上存在巨大差异。
ffmpeg -i input.mp4 -filter_complex "[0:v]fps=10,scale=-1:90:flags=lanczos,split [a][b];[a] palettegen [p];[b][p] paletteuse" -y output.gif
[原始MP4]-845KB
Tenor Nano gif-42KB
ffmpeg gif-106KB
我们甚至尝试更改抖动算法以进一步减小尺寸,但最终增加了噪声并损坏了gif品质
paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle
我们也尝试过调整Gificle中的颜色量化,但这没有用。
gifsicle --resize _x90 --colors 256 --color-method diversity --dither=ordered --resize-method sample input.gif > output.gif
答案 0 :(得分:0)
尝试此bat文件。我为自己写的。我有Windows操作系统。
它将FFmpeg mp4转换为gif
color a
@echo off
set a="Your_files\*.mp4"
set b="Result\%%~na.gif"
set c=ffmpeg
set f=-filter_complex "[0:v] fps=10,scale=-1:-1:flags=full_chroma_int,split [a][b];[a] palettegen=max_colors=255:reserve_transparent=1:stats_mode=diff [p];[b][p] paletteuse=dither=none:bayer_scale=5:diff_mode=rectangle:new=1:alpha_threshold=128" -gifflags -offsetting
for %%a in (%a%) do (%c% -y -i "%%a" %f% %b%)
如果崩溃,请删除以下行: -gifflags -offsetting
答案 1 :(得分:0)
对我有用的是为输出 gif 指定较低的帧速率 (-r 10)。如果您追求质量,可能不是您想要的,但如果您追求质量,文件大小可能是妥协。