我正在尝试从 MP4 视频文件中提取 GIF。
现在我有两种方法可以实现这个功能:
1) 常规的:
ffmpeg -t 7.7 -ss 00:22:53 -i video.mp4 -i palette.png -s 320x174 -filter_complex "fps=15" output.gif
它会产生一个大小为 1.6MB 的文件。
2)
ffmpeg -t 7.7 -ss 00:22:53 -i video.mp4 -i palette.png -filter_complex "fps=15,scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif
这会得到一个更好看的文件,但文件大小为 4.5MB(增加了 181%)。它使用一个 16x16 调色板文件,我用
ffmpeg -y -t 7.7 -ss 00:22:53 -i video.mp4 -vf fps=15,scale=320:-1:flags=lanczos,palettegen palette.png
现在我不太明白为什么 2 个具有相同 fps、持续时间和分辨率的 GIF 的大小会有如此大的差异。我的直觉是,它们应该是相同的。为什么会有这种差异?有没有办法在不损失质量的情况下将 2) 的大小缩小到 1) 的大小?
谢谢