从视频导出高质量 GIF 图片
依赖 ffmpeg,配置 ffmpeg 到环境变量。
1. 从视频片断导出高质量 GIF
新建文本文件,将下面代码保存,并改文件名和后缀名为 gif.bat
@echo off
setlocal enabledelayedexpansion
set gif_filename="%2.gif"
set start_time=%3
set duration=%4
set palette="palette.png"
set filters="fps=%5,scale=%6:-1:flags=lanczos"
ffmpeg -v warning -ss %start_time% -t %duration% -i %1 -vf "%filters%,palettegen=max_colors=%7:stats_mode=diff" -y %palette%
ffmpeg -v warning -ss %start_time% -t %duration% -i %1 -i %palette% -lavfi "%filters% [x]; [x][1:v] paletteuse=dither=floyd_steinberg" -y %gif_filename%
将 gif.bat
放在视频所在文件夹,
在视频文件夹图标上,按住 Shift, 点击鼠标右键选择:在此处打开命令窗口
运行命令:
gif.bat input.mp4 output 00:00:25 00:00:35 10 640 256
对应解释:
gif.bat 导入视频源 导出 Gif 图片名 开始时间 结束/持续时间 帧率 宽度 色彩数(4-256)
2. 整个视频导出高质量 GIF
同样准备文件 gif-all.bat
@echo off
setlocal enabledelayedexpansion
set gif_filename="%2.gif"
set palette="palette.png"
set filters="fps=%3,scale=%4:-1:flags=lanczos"
ffmpeg -v warning -i %1 -vf "%filters%,palettegen=max_colors=%5:stats_mode=diff" -y %palette%
ffmpeg -v warning -i %1 -i %palette% -lavfi "%filters% [x]; [x][1:v] paletteuse=dither=floyd_steinberg" -y %gif_filename%
调用:gif-all.bat input.mp4 output 10 640 256
FPS
- 5 (max 60 seconds)
- 7 (max 40 seconds)
- 10 (max 30 seconds)
- 20 (max 15 seconds)
- 25 (max 10 seconds)
如果要导多个 gif 图片,可以先记录好视频中各出入点,一行行编写到另一个批处理文件,然后再 start
。
更新日志:
- 2017-05-27