我正在尝试通过 ffmpeg 从视频制作 gif,但输出的 gif 文件太大。
'/usr/bin/ffmpeg' '-ss' '00:00:00.00' '-t' '5' '-i' '/htdocs/vv.mp4' '-vf' 'scale=480:-1' '-gifflags' '+transdiff' '-y' '/htdocs/gg.gif'
输入文件大小仅为 259k,输出文件大小为 1.7M。
有没有一种简单的方法可以降低 gif 大小?
小智 3
我也遇到同样的问题这么久了。您可以采用以下几种方法作为解决方案:
降低分辨率:您已经通过缩放视频来做到这一点。但是,如果视觉质量不是首要任务,您可以进一步降低分辨率。
优化调色板:GIF 使用有限的调色板(最多 256 种颜色)。您可以通过ffmpeg首先从视频生成调色板,然后使用该调色板创建 GIF 来优化它,而不是允许选择调色板。就是这样:
'/usr/bin/ffmpeg' -ss '00:00:00.00' -t '5' -i '/htdocs/vv.mp4' -vf "fps=10,scale=480:-1:flags=lanczos,palettegen" -y '/htdocs/palette.png'
'/usr/bin/ffmpeg' -ss '00:00:00.00' -t '5' -i '/htdocs/vv.mp4' -i '/htdocs/palette.png' -lavfi "fps=10,scale=480:-1:flags=lanczos [x]; [x][1:v] paletteuse" -y '/htdocs/gg.gif'
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,fps=10参数将 GIF 设置为每秒 10 帧,这通常足以满足 GIF 的需要,并且有助于减小尺寸。
这个方法对我减小gif尺寸有很大帮助;我尝试使用明显受限的调色板。
这个方法对我也有很大的帮助。虽然 gif 不像以前那么有用,但大小是我最关心的问题。
修剪不必要的部分:您已经使用-ss和-t参数来选择视频的特定片段。确保将视频修剪为仅最重要的部分,这样就不会包含任何不必要的帧。
使用 GIF 优化工具:创建 GIF 后,您可以使用专用的 GIF 优化工具来进一步减小其大小。Gifsicle等工具尤其有效。
另外,我应该提到的是,GIF 格式的性质意味着它在存储视频数据方面并不是特别有效,因此在保持可接受的视觉质量的同时,可以压缩的程度是有限的。考虑使用视频格式(例如 WebM 或 MP4)来制作更长或高质量的动画,因为它们通常比 GIF 更有效。
| 归档时间: |
|
| 查看次数: |
8108 次 |
| 最近记录: |