命令行中的手机录屏及转Gif工具

想法

最近,一直在找一个 Android 手机屏幕录制软件:像 Gif 动态图一样显示 App 的演示效果。上 Google Play 找了几款免费的软件,悲催的是大多数都是基于 Android 5.0 以上的系统,对于我手中的 4.4 系统 — 然并卵!!!

试着 Google 了一把,几个 ADB + Gif (懂行的你看就明白了) 关键词吸引了我,于是顺着如下两篇文章的指引,我成功了:

https://www.aswifter.com/2015/07/10/android-record-video-to-gif/

http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/

自己玩出来的效果是这样的:

showtime


如何做成的?

相信看了上文的两篇文章,你已经知道如何使用了,我这里再罗嗦两句。其实,是借助 Android SDK 中自带的 ADB 工具,使用 ADB 命令外加几个命令行的工具转化即可。相关工具如下:

  • ADB: Android App 开发的都知道,用它录制手机屏幕演示视频
  • ffmpeg: 一个视频操作工具,用它把录制的 mp4 视频转化为 gif
  • 数据线: 使用 ADB 时, 要跟电脑连接啊

忘了申明了,我在 Ubuntu 系统下测试的, Win | Mac 用户顺着原理找工具吧。


制作 Mp4

将手机和电脑保持连接,找到自己的 Android SDK 保存位置,在 SDK/platform-tools/ 目录下找到 ADB 工具,就可以开始敲命令了。

1
2
3
4
5
6
7
8
9
# 切换至 ADB 工具目录下
cd Android/Sdk/platform-tools/

# 运行 ADB Shell 命令, 同时操作手机录制 Mp4,
# 录制完成后,视频被保存在手机 sdcard 下,名为 showtime.mp4
./adb shell screenrecord --size 848x480 --bit-rate 2000000 /sdcard/showtime.mp4

# 使用 pull 命令将视频拉到电脑本地
./adb pull /sdcard/showtime.mp4 /home/dm/gif/

注意命令行参数:

  • screenrecord: 顾名思义,录屏的
  • –size 848x480: 定义视频大小
  • –bit-rate 2000000: 修改比特率为 2M/s (默认比特率是 4M/s )

更多参数解析查 DOC 吧。


Mp4 转 Gif

制成 Mp4 视频后,转化为 Gif 格式的工具就多了,这里使用 Ubuntu 下强大的 ffmpeg 视频操作库:

1
2
3
4
5
6
7
8
9
10
# 安装 ffmpeg
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg

# 切换到Mp4目录下
cd /home/dm/gif

# Mp4 -> gif: -b 2048k 转化为高质量gif
ffmpeg -i showtime.mp4 -b 2048k showtime.gif

ffmpeg 命令参数请看参考资料2吧,很详细。


另外

有时,我们可能需要将几张图片合成为一个 gif,这里再介绍一个搞定这个需求的方法:

convert

1
2
3
4
5
6
7
8
# 安装 convert
sudo apt-get install imagemagick

# 切换的图片目录下
cd /home/dm/pic/

# *.png -> gif
convert -delay 100 *.png test.gif

参考资料

[1] https://www.aswifter.com/2015/07/10/android-record-video-to-gif/
[2] http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/

END


0%