OSX 自带的 QuickTime Player 支持屏幕的录制功能。具体的操作步骤如下:
- 打开 QuickTime Player
- 点击菜单中的 File => New Screen Recording
- 拖拽选择需要录制的区域,并点击开始录制,点击右上角可以结束录制
- 录屏结束后,可以选择菜单中的 File => Export => As Movie 来保存视频
转化为 Gif 格式
假设上述步骤保存了一个名为 in.mov
的视频,通过以下步骤可以将视频转化为 Gif 格式:
- 右键点击
in.mov
文件,选择Get Info
,在More Info
中找到视频的大小信息,这里假设大小为 60x40 -
运行如下命令,将
in.mov
转化为out.gif
文件ffmpeg -i in.mov -s 60x40 -pix_fmt rgb24 -r 10 -f gif out.gif
这里参数的具体含义如下:
-s 60x40
指定了最大宽度和最大高度。这里可以不指定,输出将按照原始大小来。如果指定较小的长宽值,输出将变小。-r 10
将帧数从 25 调整为 10。
如果 ffmpeg
命令找不到,可以使用 Homebrew
进行安装:
brew install ffmpeg
优化 Gif 文件
可以使用 gifsicle
命令对产生的 gif 文件进行压缩:
gifsicle out.gif --optimize=3 -o optimized.gif
这里,--optimize=3
参数要求 gifsicle
使用最高等级优化图片。这会需要更多的时间和 CPU 来计算,但是压缩效果相对也是最好的。
如果找不到 gifsicle
命令,可以使用 Homebrew
进行安装:
brew install gifsicle
经测试,一个 463 KB
的文件,压缩后的大小为 417 KB
,压缩了 10%。
以上生成 Gif 和优化 Gif 的命令可以放到一起执行:
ffmpeg -i in.mov -s 60x40 -pix_fmt rgb24 - | gifsicle --optimize=3 > out.gif
参考
- https://gist.github.com/dergachev/4627207
- 该文作者针对 mov 到 gif 的转换写了一个 Ruby 脚本,可以显著提高转化后的质量,脚本见 https://github.com/dergachev/screengif