正所谓一图胜千言,有时候在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简略一些。