Android 視訊直播原理探索

迷失no發表於2018-11-18

視訊直播的流程可以分為如下幾步: 採集 —>處理—>編碼和封裝—>推流到伺服器—>伺服器流分發—>播放器流播放

1.採集 採集是整個視訊推流過程中的第一個環節,它從系統的採集裝置中獲取原始視訊資料,將其輸出到下一個環節。視訊的採集涉及兩方面資料的採集:音訊採集和影像採集,它們分別對應兩種完全不同的輸入源和資料格式。

音訊採集  音訊資料既能與影像結合組合成視訊資料,也能以純音訊的方式採集播放,後者在很多成熟的應用場景如線上電臺和語音電臺等起著非常重要的作用。音訊的採集過程主要通過裝置將環境中的模擬訊號採整合 PCM 編碼的原始資料,然後編碼壓縮成 MP3 等格式的資料分發出去。常見的音訊壓縮格式有:MP3,AAC,HE-AAC,Opus,FLAC,Vorbis (Ogg),Speex 和 AMR等。。

影像採集  將影像採集的圖片結果組合成一組連續播放的動畫,即構成視訊中可肉眼觀看的內容。影像的採集過程主要由攝像頭等裝置拍攝成 YUV 編碼的原始資料,然後經過編碼壓縮成 H.264 等格式的資料分發出去。常見的視訊封裝格式有:MP4、3GP、AVI、MKV、WMV、MPG、VOB、FLV、SWF、MOV、RMVB 和 WebM 等。

視訊採集的採集源主要有 攝像頭採集、螢幕錄製和從視訊檔案推流。

推流編碼: 推薦Andorid4.3(API18)或以上使用硬編,以下版本使用軟編;iOS使用全硬編方案;

播放解碼:Andorid、iOS播放器都使用軟解碼方案,經過我們和大量客戶的測試以及總結,雖然犧牲了功耗,但是在部分細節方面表現會較優,且可控性強,相容性也強,出錯情況少,推薦使用。

相關文章