正所谓一图胜千言,有时候在REAMDE里面放一张gif动图比写一堆说明有用的多。这篇小文就简单来说明一下如何用XCode提供的功能来录制iOS的视频,最后转换为Gif动图。

需要用到的工具

  1. XCode
  2. 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是否循环播放

    1. -loop 0: 无限循环
    2. -loop -1: 不循环,只播放一次
    3. -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.pngout002.pngout003.png...

然后用ImageMagick生成gif

convert -delay 10 -loop 0 -layers optimize output/out*.png output.gif

这种方法主要是需要在中间调整编辑一下png文件时有用,只需要Gif的话还是推荐只使用ffpmg来生成gif简单一些。

03-05 21:01