1. 程式人生 > >Android 流媒體技術見解

Android 流媒體技術見解

一、技術關鍵點

1. 音訊採集:設定合理的取樣引數,包括取樣率、通道數、取樣深度。

2. 視訊採集:手機攝像頭採集輸出的格式(NV12/NV21/YV12),要注意相互間的轉換,以及採集出來影象的方向應該根據那種策略進行旋轉,尤其在android裝置需要做更多的相容性測試。

3. 編碼和解碼:熟悉的使用ffmpeg可以方便我們快速完成視訊編解碼的功能,但是這種方式會過多的消耗CPU而使得效能大大降低,因此採用硬編碼通過GPU加速可以提升一個檔次;需要注意的是IOS的硬編碼相容性會遠大於Android的硬編碼,所以在Android裝置上做硬編碼同樣要採用一個有效的策略,提高其相容性;硬解碼整體的相容性問題會少很多;

4. 協議以及網路傳輸:對於標準協議,用的相對較多的是RTSP/RTMP/SIP,這三種屬於應用互動層的協議;在完成互動協議之後,才會使用到傳輸協議(TCP/UDP/RTP)

5. 技術延伸:包括點對點傳輸、後期視訊特效處理、影象識別;

二、相關開源專案

https://github.com/appunite/AndroidFFmpeg