這篇文章主要為開發(fā)人員解決Android手機錄視頻轉(zhuǎn)Gif格式困難痛點魄懂,下面是我在Mac下的操作步驟:
1、Mac系統(tǒng)下通過bash連接Android手機熬甚。
2逢渔、通過adb shell命令獲得錄制的視頻。
3乡括、將視頻轉(zhuǎn)化為Gif文件肃廓。
4、補充相關(guān)adb操作命令诲泌。
先看下我錄制的個人作品Gif效果圖
源碼參考個人作品 【圖靈機器人】
Demo下載地址
1盲赊、Mac系統(tǒng)下通過bash連接Android手機
如果在Mac bash下你連接不了手機,請參考下面的操作敷扫。
1哀蘑、Mac系統(tǒng)通過數(shù)據(jù)線連接Android手機
2、找到Android手機的vendor ID:
$ system_profiler SPUSBDataType
在列出的usb設(shè)備中找到自己的手機葵第,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绘迁、如果沒有設(shè)置adb環(huán)境變量,設(shè)置一下:
$ vi ~/.bash_profile
在文件最后加上(path因電腦而異):
$ export PATH=/Users/sunfusheng/Android/Studio/sdk/platform-tools/:$PATH
$ wq
保存退出后刷新一下卒密,終端執(zhí)行CMD:
$ source ~/.bash_profile
4缀台、測試是否連接上Android手機:
$ adb devices
2、通過adb shell命令獲得錄制的視頻
錄制命令
$ adb shell screenrecord /sdcard/test.mp4
視頻保存目錄可以自己指定哮奇,如上面的 /sdcard/test.mp4膛腐,命令執(zhí)行后會一直錄制180s,按下 ctrl+c 可以提前結(jié)束錄制鼎俘。
設(shè)定視頻分辨率
$ adb shell screenrecord --size 848*480 /sdcard/test.mp4
對于高分辨率的手機哲身,錄制的視頻很大,我們分享又不需要這么大的我們可以設(shè)置錄制的視頻分辨率贸伐。
設(shè)定視頻比特率
$ adb shell screenrecord --bit-rate 2000000 /sdcard/test.mp4
默認比特率是4M/s勘天,為了分享方便,我們可以調(diào)低比特率為2M
拉取視頻文件
$ adb pull /sdcard/test.mp4
?注意:使用adb pull 即可把手機SD卡中視頻拉取到本地捉邢,如果拉下來的視頻文件不能正常轉(zhuǎn)換脯丝,可以手動將手機里面的視頻發(fā)送到電腦上。
3歌逢、將視頻轉(zhuǎn)化為Gif文件
一巾钉、Mac上通過Gifrecord軟件將視頻轉(zhuǎn)化為Gif文件翘狱。
二秘案、Windows上通過Free Video to GIF Converter將視頻轉(zhuǎn)換成GIF,具體操作參考【Video 轉(zhuǎn) Gif 實戰(zhàn)】,轉(zhuǎn)換時還可以刪除不需要的幀阱高,這點真得很不錯赚导。
4、補充相關(guān)adb操作命令
$ adb dervices #顯示當前啟動的仿真器裝置序號
$ adb help #顯示adb指令用法
$ adb verson #顯示adb版本
$ adb install #安裝APK應用程序組件
$ adb push #上傳文件或目錄(adb push 文件所在PC的位置即文件名 目的位置)
$ adb pull #下載文件或目錄(adb pull 文件所在手機的位置即文件名 目的位置)
$ adb shell #進入Android系統(tǒng)命令行模式
$ adb logcat #監(jiān)控仿真器運行記錄
$ adb bugreport #生成adb出錯報告
$ adb start-server #啟動adb服務器
$ adb kill-server #關(guān)閉adb服務器
$ adb get-state #取得adb服務器運行狀態(tài)
$ adb get-serialno #獲得仿真器運行序號