这篇文章主要为开发人员解决Android手机录视频转Gif格式困难痛点,下面是我在Mac下的操作步骤:
1、Mac系统下通过bash连接Android手机。
2、通过adb shell命令获得录制的视频。
3、将视频转化为Gif文件。
4、补充相关adb操作命令。

先看下我录制的个人作品Gif效果图

源码参考个人作品 【图灵机器人】

Demo下载地址

1、Mac系统下通过bash连接Android手机

如果在Mac bash下你连接不了手机,请参考下面的操作。

1、Mac系统通过数据线连接Android手机

2、找到Android手机的vendor ID:

$ system_profiler SPUSBDataType

在列出的usb设备中找到自己的手机,copy下vendor ID

MI 5:  
Product ID: 0xff78  
Vendor ID: 0x2017  
Version: 3.18  
Serial Number: 14886d4e  
Speed: Up to 480 Mb/sec  
Manufacturer: Xiaomi  
Location ID: 0x14188000 / 11  
Current Available (mA): 500  
Current Required (mA): 500  

将vandor ID放到 ~/.android/adb_usb.ini 配置文件中:

$ vi  ~/.android/adb_usb.ini

3、如果没有设置adb环境变量,设置一下:

$ vi ~/.bash_profile  
在文件最后加上(path因电脑而异):   
$ export PATH=/Users/sunfusheng/Android/Studio/sdk/platform-tools/:$PATH  
$ wq   
保存退出后刷新一下,终端执行CMD:   
$ source ~/.bash_profile

4、测试是否连接上Android手机:

$ adb devices 

2、通过adb shell命令获得录制的视频

录制命令

$ adb shell screenrecord /sdcard/test.mp4

视频保存目录可以自己指定,如上面的 /sdcard/test.mp4,命令执行后会一直录制180s,按下 ctrl+c 可以提前结束录制。

设定视频分辨率

$ adb shell screenrecord --size 848*480 /sdcard/test.mp4

对于高分辨率的手机,录制的视频很大,我们分享又不需要这么大的我们可以设置录制的视频分辨率。

设定视频比特率

$ adb shell screenrecord --bit-rate 2000000 /sdcard/test.mp4

默认比特率是4M/s,为了分享方便,我们可以调低比特率为2M

拉取视频文件

$ adb pull /sdcard/test.mp4

⚠注意:使用adb pull 即可把手机SD卡中视频拉取到本地,如果拉下来的视频文件不能正常转换,可以手动将手机里面的视频发送到电脑上。

3、将视频转化为Gif文件

一、Mac上通过Gifrecord软件将视频转化为Gif文件。

二、Windows上通过Free Video to GIF Converter将视频转换成GIF,具体操作参考【Video 转 Gif 实战】,转换时还可以删除不需要的帧,这点真得很不错。

4、补充相关adb操作命令

$ adb dervices #显示当前启动的仿真器装置序号
$ adb help #显示adb指令用法
$ adb verson #显示adb版本
$ adb install #安装APK应用程序组件
$ adb push #上传文件或目录(adb push 文件所在PC的位置即文件名 目的位置)
$ adb pull #下载文件或目录(adb pull 文件所在手机的位置即文件名 目的位置)
$ adb shell #进入Android系统命令行模式
$ adb logcat #监控仿真器运行记录
$ adb bugreport #生成adb出错报告
$ adb start-server #启动adb服务器
$ adb kill-server #关闭adb服务器
$ adb get-state #取得adb服务器运行状态
$ adb get-serialno #获得仿真器运行序号