直播系統搭建:音視頻處理的一般流程與推流端的四個環節

音視頻處理的一般流程
數據採集→數據編碼→數據傳輸(流媒體服務器) →解碼數據→播放顯示
1.數據採集:攝像機及拾音器收集視頻及音頻數據,此時得到的爲原始數據涉及技術或協議:攝像機:CCD、CMOS拾音器:聲電轉換裝置(咪頭)、音頻放大電路。

2.數據編碼:使用相關硬件或軟件對音視頻原始數據進行編碼處理(數字化)及加工(如音視頻混合、打包封裝等),得到可用的音視頻數據涉及技術或協議:編碼方式:CBR、VBR編碼格式視頻:H.265、H.264、MPEG-4等,封裝容器有TS、MKV、AVI、MP4等音頻:G.711μ、AAC、Opus等,封裝有MP3、OGG、AAC等

3.數據傳輸:將編碼完成後的音視頻數據進行傳輸,早期的音視頻通過同軸電纜之類的線纜進行傳輸,IP網絡發展後,使用IP網絡優傳輸涉及技術或協議:傳輸協議:RTP與RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等控制信令:SIP和SDP、SNMP等。

4、解碼數據:使用相關硬件或軟件對接收到的編碼後的音視頻數據進行解碼,得到可以直接顯示的圖像/聲音涉及技術或協議:一般對應的編碼器都會帶有相應的解碼器,也有一些第三方解碼插件等5、播放顯示:在顯示器(電視、監視屏等)或揚聲器(耳機、喇叭等)裏,顯示相應的圖像畫面或聲音涉及技術或協議:顯示器、揚聲器、3D眼鏡等。  

推流端的四個環節
1、 首先是採集環節:採集是指對圖像和聲音的採集,簡單說就是能讓網絡視頻直播系統和主播攝像頭連起來,軟件能獲取到外界的音視頻信息。
然後是前處理階段:這裏也是俗稱美顏的階段,這要求我們在網絡視頻直播系統中加入美顏、特效、萌顏等效果,而這個算法需要涉及到GPU編程,這個階段的難點不在於美顏,因爲美顏通常使用SDK來解決的,重點在於GPU佔比。

2、 目前市面上的手機硬件配置已經越來越高了,但在一些老舊機型上,功耗仍然是個很大的問題,GPU佔用太高會導致手機發燙、攝像頭掉幀甚至軟件閃退。

3、 接下來就是編碼了,編碼是爲了壓縮數據也是爲了更好的解碼,通常我們會選擇用硬編碼來平衡編碼速度和編碼質量之間的效率比,但軟編仍然是畫面質量更高的選擇,也有用戶願意使用軟編碼的方式,因此在最初設計系統時,我們應當同時設計好軟編硬編兩種編碼方式。

4、 推流端最後一個操作就是推流,把視頻推流到服務器,以便於直播視頻的分發和拉流。

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