本文主要介紹基於Webrtc的多人視頻會議的簡單實現,文章來自博客園RTC.Blacker,支持原創,轉載請說明出處。
前面提到基於開源框架的視頻會議都存在諸多問題,所以我們通過重寫WEBRTC傳輸模塊來實現一個簡單的視頻會議,效果如下圖:
說明:
1、畫面1、2、3都是其他手機傳過來的圖像,局域網內有點點卡頓,同時軟解3路數據你懂的。
2、聲音比較清晰,服務端沒有做混音處理。
實現原理:
1、服務端是小伙伴用C++配合實現的,主要作用就是信令控制與轉發,所以原理沒有太多好講的。
2、因為有在WEBRTC里面注冊自己的傳輸模塊,所以在這個基礎上實現多人就很容易了,主要就是讓服務端轉發的時候知道往哪里轉發。
3、WEBRTC里面有channel機制,每個會話對應一個channel,如果要實現多個會話,就注冊多個channel,關鍵代碼如下:
下面是收到RTP包后通過channel找到對應的transport進行處理
總結:
1、通過上面這個demo可以做很多擴展,比如視頻直播、在線教學、安防監控。
2、很多開源框架都是基於這種架構模式,如Licode,jitsi。
3、這種模式以后結合VP9,H265和SVC會有很好的發展空間,不過需要時間,所以我們會繼續關注。
思考:
1、這種服務端是我之前說的哪種架構模式?
2、這種模式下怎么處理NACK和RTCP?
歡迎繼續關注我的博客,歡迎發郵件交流或回帖探討~