Android下如何把屏幕錄制演示生成gif動態圖
最近想錄制一段視頻用來演示自己的作品 XBrowser 的網址補全及搜索提示功能 , 通過屏幕錄制生成的.mp4文件把視頻放到"某酷" 視頻網站,本來才十幾秒的產品演示,前置廣告就近一分鐘。這是實在是讓人崩潰,無奈之下只好放棄,突然我在想為什么不用gif呢?gif圖是很古老的技術,到現在還是經久不衰都應該歸結到它的簡單易于傳播吧。本著不重復造輪子的原則于是我上網搜尋這樣的工具,結果真的沒有找到讓我特別稱心如意的好用工具。直覺告訴我快速簡單一鍵把屏幕錄像生成gif圖絕對是強需求,要是不是精力有限我真擼一個這樣的工具這樣的工具出來。對于可以自力更生的程序員來講,好處是沒有飛機大炮,小米加步槍還是可以搞定的,下面分享一下我是如何運用簡單粗暴的方法把屏幕錄制過程直接生成gif圖片的。
先說一下我的工作環境吧 ,MacOs 10.9.5 ,Android系統需要4.4以上 完成操作基本上是簡單粗暴的命令行,所以說我介紹的方法也許未必適合你,請酌情選擇閱讀和嘗試。
生成gif動態圖包括兩個重要的步驟,首先我們還是得先把屏幕錄制過程生成視頻,然后再通過ffmpge命令把視頻轉為gif圖片。
一些前置條件
- Homebrew - MAC 下的包管理軟件,如果不了解請自行搜索,這樣主要是用來完成ffmpge命令的編譯安裝 (如果你使用linux系統,用其他的包管理系統效果是一樣的,比如apt-get)
- Android 4.4 系統以上 - 這里會用到Android4.4系統下的 screenrecord 命令
- Android SDK - 主要是需要其工具包里的adb 命令用來和手機設備的shell交互,SDK的安裝可以參考這篇文章《打造一個全命令行的Android構建系統》 </ul>
首先我們需要通過homebrew 安裝ffmpge ,在這里我假設你已經在使用homebrew管理mac的軟件依賴了,終端下敲入下面的命令。(為了確保安裝成功最好在V*N環境下,因為某些安裝包的依賴可能在墻外的,我自己是在V*N狀態下安裝成功的)
brew install ffmpeg
接下來我們可以嘗試用Android4.4 下的 "screenrecord" 錄制一段屏幕錄像,下面的命令用于開啟屏幕錄制,按下回車命令我們就可以在手機屏幕上進行操作了,錄制完畢直接 ctrl+c 這時候會在手機的 /sdcard目錄下生成一個叫做"demo.mp4"的視頻文件。
adb shell screenrecord /sdcard/demo.mp4
經過多次嘗試,我準備使用600x800的分辨率,控制10秒的時長,主要是從視頻質量和大小進行考量,視頻源的大小和質量同時也會影響到接下來gif生成的質量(gif圖片的大小最好控制在1M以下).
adb shell screenrecord /sdcard/demo.mp4 --size 600x800 --time-limit 10
由于生成的屏幕錄像視頻存在于手機本身的 SD卡目錄下,而ffmpge命令是我PC中的命令,所以還需要把"demo.mp4" 復制到PC中,使用下面的命令。
adb pull /sdcard/demo.mp4
ffmpeg生成gif的基本用法如下:
ffmpeg -t <視頻時長> -ss -i <視頻文件> demo.gif
接下來我們用ffmpeg命令就可以生成一個10妙的git動態圖。
ffmpeg -t 10 -ss 00:00:00 -i demo.mp4 demo.gif
下面是我生成的兩個gif動態圖,一個是用來演示地址欄的搜索建議和網址補全功能,另外一個是用來演示,如何在地址欄中搜索本地安裝的應用,并打開。
