正所谓一图胜千言,有时候在REAMDE里面放一张gif动图比写一堆说明有用的多。这篇小文就简单来说明一下如何用XCode提供的功能来录制iOS的视频,最后转换为Gif动图。
需要用到的工具
- XCode
- ffmpeg
其中ffmpeg可以利用brew来安装。
一、用XCode来录屏
首先打开模拟器,然后运行下面的命令启动录制(可以使用control + c
来结束播放):
xcrun simctl io booted recordVideo --code=h264 --mask=black --force out.mov
参数说明:
--codec
: 可以用h264
或者hevc
两种格式--mask
: 用black
可以带上边框,或者用ignored
不显示边框
二、用ffmpg来转换格式
可以执行下面的命令把out.mov视频转换成output.gif。
ffmpeg -i out.mov -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
参数说明:
fps=10
: 每秒10帧,可以根据自己需要调整。scale=320:-1
: 用于输出gif文件宽高缩放,这里320这个值是指iphone竖屏的时候幕宽度,-1表示保持宽靠比进行缩放。-loop 0
: 这个用来控制输出gif是否循环播放-loop 0
: 无限循环-loop -1
: 不循环,只播放一次-loop 1
: 循环一次,会播放两次
三、另一种多此一举的方法
另外可以使用ffpmg生成png图片序列,再用ImageMagick生成gif。
ffmpeg -i out.mov -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output/out%3d.png
这条命令会在output
文件夹下面生成一堆png文件,诸如out001.png
,out002.png
,out003.png
...
然后用ImageMagick生成gif
convert -delay 10 -loop 0 -layers optimize output/out*.png output.gif
这种方法主要是需要在中间调整编辑一下png文件时有用,只需要Gif的话还是推荐只使用ffpmg来生成gif简单一些。