WebRTC 的音視頻開發(fā)過程是怎樣的?
共 803字,需瀏覽 2分鐘
·
2022-02-09 17:35
目前最簡單的WebRTC音視頻應用開發(fā),應該是基于瀏覽器內核提供的JS API直接進行Web應用開發(fā),相關的WebRTC JS API的Demo可以參考:WebRTC samples
這種開發(fā)基本的音視頻應用問題不大,但也存在不少限制,如無法直接接入RTSP流的網絡攝像機,無法本地進行多路畫面的合成和推流等特殊定制功能。
基于開源的WebRTC,則可以基于WebRTC C++ Native API進行開發(fā),這樣可以進行很多定制功能的開發(fā)(例如,啟用GPU硬件加速的視頻編解碼、多路畫面拼接合成后再使用WebRTC推流、使用RTSP流作為WebRTC推流的視頻源,通過WebRTC推流共享視頻文件,共享指定應用窗口,本地視頻錄制,使用外部的音頻處理算法等),其實完全可以基于WebRTC開發(fā)一款自己的音視頻引擎,以滿足產品的定制化功能需求。
當然,真正的音視頻產品,除了客戶端,基本離不開流媒體服務器,目前可以配合WebRTC客戶端的開源WebRTC服務器也挺多的了,我比較推薦SRS 4.0,使用起來比較方便,支持WebRTC、RTMP協(xié)議推流,支持WebRTC、RTMP、HLS、HTTP FLV拉流,也支持推流到CDN和服務器錄制等,開發(fā)可以參考:shanewfx:基于WebRTC Native API實現(xiàn)SRS4.0客戶端
但SRS 4.0是一個SFU類型的流媒體服務器,如果需要在服務器上進行多路視頻流的合流、混音等功能,需要選擇MCU類型的流媒體服務器,目前推薦Intel開源的OWT Server(基于licode開發(fā),業(yè)務部分使用nodejs開發(fā),媒體處理使用C++開發(fā),封裝為node模塊供nodejs調用),其也有配套的WebRTC客戶端SDK可以使用。
但MCU對服務器的硬件配置要求還是比較高的,真正產品化應該需要硬件加速支持,目前Intel提供了VCA板卡可以支持,但成本應該比較高些。
