標籤:com 移植 ocs 本地 get 通過 推流 mux log
Android 音視頻開發這塊目前的確沒有比較系統的教程或者書籍,網上的部落格文章也都是比較零散的。只能通過一點點的學習和積累把這塊的知識串聯積累起來。在學習的過程中,遇到不懂的地方,要及時的去google或者請教大神,不要半知半解的過去。
初級入門篇:
- 在 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 特效等功能。如果你認真把所有的點都完成了,你一定會成為音視頻熱門人才。
下面是一些推薦的參考資料:
1. 《雷霄驊的專欄》:http://blog.csdn.net/leixiaohua1020
2. 《Android音頻開發》:http://ticktick.blog.51cto.com/823160/d-15
3. 《FFMPEG Tips》:http://ticktick.blog.51cto.com/823160/d-17
4. 《Learn OpenGL 中文》:https://learnopengl-cn.readthedocs.io/zh/latest/
5. 《Android Graphic 架構》:https://source.android.com/devices/graphics/
6. 《Jhuster的專欄》:http://ticktick.blog.51cto.com/all/823160
Android 音視頻開發學習思路