介紹一個自己剛出爐的安卓音視頻播放錄製開源項目

更多文章請看:Android音視頻開發專欄

這是一個非常特別的春節,新型冠狀病毒蔓延,武漢的天空,似乎瀰漫着一層濃厚的陰雲,全國上下,人人自危。

歷史總是驚人地相似,秦人不暇自哀而後人哀之,後人哀之而不鑑之。又一次,就像網上說的一樣,病毒就像照妖鏡,照出了國士無雙,也照出了精緻的利己主義者和貪婪沒有良知的蛀蟲。

不管怎麼樣,希望戰勝疫情的一天儘快到來,對當事人賞罰分明。

前言:

回到主題,這篇文章主要是介紹一個自己剛出爐的音視頻播放錄製開源項目UnitedPlayer

爲什麼叫做UnitedPlayer呢?因爲我是一個17年的曼聯球迷,曼聯英文名爲Manchester United,爲了簡單,我就叫做UnitedPlayer。

簡單介紹下,這是一個支持錄製和播放音頻視頻的應用,錄製的視頻將在播放列表中顯示,點擊列表項即可播放,並提供多種仿抖音濾鏡特效。

現在功能點並不多,交互體驗比較差,bug還不少。但是實現其中的底層邏輯實現卻耗費了我大量的精力。因爲自己之前並沒有音視頻開發的經驗,在去年春節的時候,對自己工作進行了思考,意識到自己做安卓好幾年並沒有在什麼領域有比較突出的優勢的尷尬境地。經過沉思,幾個深入方向中我對音視頻最感興趣,並且本科時期也學習過採樣編碼的基礎課程,所以打算在音視頻方向下功夫。然後過年後馬上收集各種學習資料,整個2019年幾乎每個週末節假日進行學習,從C++基礎、音視頻基礎、ffmpeg、OpenGL、OpenSL、MediaCodec一個個技術點學習,期間也遇到了重重的困難,體會過冥思苦想無果的捶胸頓足,也曾體會過一個功能難點突破的痛快感。

以下具體介紹下該項目情況:

基本技術實現點:

播放方面:
使用Camera+OpenGL ES實時預覽畫面,使用OpenSl ES錄製音頻,通過MediaCodec分別對音視頻進行編碼,並通過MediaMuxer將音視頻封裝爲MP4格式。

錄製方面:
使用ffmpeg解複用、解碼MP4文件,通過OpenGL ES渲染視頻畫面,OpenSl ES播放音頻,並通過OpenGL片段着色器提供不同的視頻仿抖音濾鏡效果。

功能點:

  1. 視頻音頻播放,支持進度條控制和暫停。(已完成)

  2. 視頻音頻錄製。(已完成)

  3. 視頻添加水印。(已經實現,待擴展)

  4. 視頻添加仿抖音濾鏡。(已經實現最基礎的濾鏡:反色、灰度圖、閃白、縮放、靈魂出竅、抖動)

    1. 反色:
      在這裏插入圖片描述

    2. 灰度圖:
      在這裏插入圖片描述

    3. 閃白:
      在這裏插入圖片描述

    4. 縮放:
      在這裏插入圖片描述

    5. 靈魂出竅:
      在這裏插入圖片描述

    6. 顏色偏移抖動:
      在這裏插入圖片描述

  5. 視頻添加背景音樂。(待開發)

  6. 音頻變調。(待開發)

  7. 視頻斷點續錄。(待開發)

  8. 視頻裁剪(待開發)

遺留問題

總的來說,當前項目只是實現了整體主要功能,用戶交互方面還是比較粗糙,性能也沒有專門進行優化過,bug還有不少,以後應該還會不斷優化和擴展功能~~

接下來也會抽時間,對項目的每個技術點用博文進行敘述,也希望更有經驗的同行提出更多優質的建議。

以下爲已完成博文:
Android平臺上基於OpenGl渲染yuv視頻

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