尝试了各种方案:
mac 自带的 qucktime 还是很强大哦的,直接选取需要录屏的区域,直接进行录制就行了,最后生成 mov 文件。。
但是用默认的 ffmpeg 参数直接转换成 gif ,画质很差,后来终于从老外的 github 上搜了一段脚本(原始 url 找不到了, = =)。。
#!/bin/sh
palette="/tmp/palette.png"
filters="fps=$4,scale=$3:-1:flags=lanczos"
ffmpeg -v warning -i $1 -vf "$filters,palettegen" -y $palette
ffmpeg -v warning -i $1 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $2
里面通过使用 ffmpeg 预生成调色板,来提高 gif 的画质,并且通过设置缩放比率、帧率来压缩文件大小。。
使用方式:
mov2gif xxx.mov xxx.gif 800 1
这是我这边设置的参数,由于我是录制终端视频,帧率设置为 1fps ,就已经足够了,不然文件太大。。
然后再用 convert 进一步压缩 gif 大小:
convert xxx.gif -fuzz 5% -layers Optimize xxx2.gif
如果不加-fuzz 5%
,优化粒度不大,这个参数可以将图片附近区域相近的颜色合并成相同值,进行压缩,通过这行命令,基本上可以继续压缩 50%的大小(对于终端视频,大块颜色都是背景色)
最后,晒下我这边的录制效果(顺带打个小广告 :)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.