Android視頻錄製app解決方案彙總

轉載:https://www.zybuluo.com/lichangadd/note/148109
現在市面上視頻App有很多,例如:蝌蚪音客、美拍、小影還有最近火起來的小咖秀。這類App的技術難點基本都是在音視頻處理這一塊,iOS對多媒體處理的支持還算比較豐富,但是Android就會差很多。這裏總結蝌蚪音客在多媒體處理上遇到的問題,供大家參考下。

錄製方視頻
現在市面上的視頻應用的視頻尺基本全部都是1:1的(攝像頭一般都能支持176X144/352X288這種尺寸,但是大一些的,640X480就有很多機子不行了,至於爲什麼,我也不知道。當然,攝像頭抓拍的視頻尺寸必須和攝像頭預覽的尺寸一致,預覽的尺寸可以枚舉一下。),這對於Android開發者來說就是一個比較棘手的問題,Android原生Recorder類並不支持視頻比例的設置。所以只能想其他辦法,目前常用的辦法大致可以分爲2種:

a. 摒棄原生接口,使用FFmpeg或OpenCV等方式進行錄製
這類方法的缺點在於對開發者技術要求較高,FFmpeg和OpenCV移植麻煩,多機型兼容複雜並且要求開發者一定程度的C語言功底,但是最難解決的問題是性能問題,FFmeg和OpenCV都是開源方案,如果要真正達實用級別往往還需要優化定製,這對於熟練於做Android展現的開發者來說完全就是一個新的領域。蝌蚪音客就嘗試過這種方案,結果視頻的碼率只能做到15fps左右,這明顯是不夠的。

b. 使用原生API錄製
在錄製界面使遮罩的方式給用戶一種1:1的錯覺。在預覽視頻時,使用FFmpeg進行視頻裁剪。如果團隊沒有駕馭FFmpeg的能力,我個人建議使用這種方式。對於視頻錄製功能來說相對簡單,而且裁剪命令優化後基本可以可以做到視頻預覽一遍也就基本裁剪完畢。

本地視頻壓縮
本地視頻壓縮除了FFmpeg之外目前還沒有瞭解到有其他方案,而且如果使用上面說到的b方案進行視頻錄製的話,本身就已經引入了FFmpeg。那就不用白不用了,但是壓縮命令的優化可是一門學問,使用x264還是mpeg4,碼率,分辨率,幀頻,文件大小等都會影響到壓縮速度而且差別相當大。

m3u8解決方案
絕對不建議創業公司自己編寫播放器,絕對無底洞,還不如直接使用MP4文件格式。m3u8國內比較出名的是vitamio,還有一些韓國人的技術方案。但是vitamio的開源版本感覺很久沒有更新,而且商業版本的授權動則幾十萬,這裏我推薦使用百度媒體雲的m3u8的解決方案,代碼家的AnimeTaste使用的就是這個,完全免費,項目質量還算穩定。但是隻能做成單例,如果想集成到listview中,需要費點事。
視頻濾鏡、水印
先說水印吧,如果集成了FFmpeg的話,直接在視頻處理的過程中可以並行處理水印。如果你需要視頻濾鏡的功能,那麼恭喜你,趕緊花錢招大牛吧。據說小影的開發Leader在視頻處理領域裏沉浸了20多年。目前這部分筆者還是在瞭解階段,目前看到的方案有使用GPUImage進行處理的,但是無奈對圖像處理的知識掌握的太少,遲遲沒有動手。
另外,7月中旬阿里百川開了發佈會,宣佈將和趣拍合作推出多媒體SDK,在和趣拍的溝通中,感覺趣拍團隊的技術支持和響應速度還是很不錯的,不過現在推出的SDK擴展性還有待提高,不過趣拍團隊也一直在做迭代。個人還是比較看好的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章