Android 音視頻從入門到提高 —— 任務列表

音視頻開發是個很龐雜的領域,具體可分爲採集、處理、編解碼、傳輸、渲染等不同的路線。想要掌握這麼多技能,並非一朝一夕的事。

爲了能夠快速入門音視頻開發,我打算從Android端開始,一步一步構建我的音視頻知識體系。

參考音視頻領域大牛[盧俊@Jhuster]的文章:Android 音視頻開發入門指南,我給自己定了幾個開發任務,幫助自己一步一步入門音視頻開發。

任務列表

  • 簡單瞭解 JAVA 語法
  • 開發第一個 Android 應用
  • 在 Android 平臺繪製一張圖片,使用至少 3 種不同的 API,ImageView,SurfaceView,自定義 View
  • 在 Android 平臺使用 AudioRecord 和 AudioTrack API 完成音頻 PCM 數據的採集和播放,並實現讀寫音頻 wav 文件
  • 在 Android 平臺使用 Camera API 進行視頻的採集,分別使用 SurfaceView、TextureView 來預覽 Camera 數據,取到 NV21 的數據回調
  • 學習 Android 平臺的 MediaExtractor 和 MediaMuxer API,知道如何解析和封裝 mp4 文件
  • 學習 Android 平臺 OpenGL ES API,瞭解 OpenGL 開發的基本流程,使用 OpenGL 繪製一個三角形
  • 學習 Android 平臺 OpenGL ES API,學習紋理繪製,能夠使用 OpenGL 顯示一張圖片
  • 學習 MediaCodec API,完成音頻 AAC 硬編、硬解
  • 學習 MediaCodec API,完成視頻 H.264 的硬編、硬解
  • 串聯整個音視頻錄製流程,完成音視頻的採集、編碼、封包成 mp4 輸出
  • 串聯整個音視頻播放流程,完成 mp4 的解析、音視頻的解碼、播放和渲染
  • 進一步學習 OpenGL,瞭解如何實現視頻的剪裁、旋轉、水印、濾鏡,並學習 OpenGL 高級特性,如:VBO,VAO,FBO 等等
  • 學習 Android 圖形圖像架構,能夠使用 GLSurfaceviw 繪製 Camera 預覽畫面
  • 深入研究音視頻相關的網絡協議,如 rtmp,hls,以及封包格式,如:flv,mp4
  • 深入學習一些音視頻領域的開源項目,如 webrtc,ffmpeg,ijkplayer,librtmp 等等
  • 將 ffmpeg 庫移植到 Android 平臺,結合上面積累的經驗,編寫一款簡易的音視頻播放器
  • 將 x264 庫移植到 Android 平臺,結合上面積累的經驗,完成視頻數據 H264 軟編功能
  • 將 librtmp 庫移植到 Android 平臺,結合上面積累的經驗,完成 Android RTMP 推流功能
  • 上面積累的經驗,做一款短視頻 APP,完成如:斷點拍攝、添加水印、本地轉碼、視頻剪輯、視頻拼接、MV 特效等功能
發佈了11 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章