俞木發(fā)
首先我們來(lái)了解一下問(wèn)題發(fā)生的原因,現(xiàn)在的直播網(wǎng)站為了視頻的流暢傳播,普遍使用了P2P(Peer-to-Peer)技術(shù),這種去中間化的技術(shù)可以讓每臺(tái)在直播間的在線電腦都成為一個(gè)“轉(zhuǎn)播點(diǎn)”,從而在不影響視頻質(zhì)量的情況下節(jié)省服務(wù)器的分發(fā)帶寬。而在視頻直播中實(shí)時(shí)語(yǔ)音或視頻對(duì)話的傳播則大多通過(guò)WebRTC(網(wǎng)頁(yè)即時(shí)通信,即WebReal-TimeCommunication的縮寫)這個(gè)API實(shí)現(xiàn),它可以在不借助中間媒介的情況下,建立瀏覽器之間的P2P連接,實(shí)現(xiàn)視頻流和(或)音頻流以及其他任意數(shù)據(jù)的傳輸。我們的電腦在成為其中一個(gè)“轉(zhuǎn)播點(diǎn)”后就會(huì)在本機(jī)上傳數(shù)據(jù)到網(wǎng)絡(luò)中,有些網(wǎng)站會(huì)濫用WebRTC(沒(méi)有設(shè)置合適的閾值),上傳數(shù)據(jù)時(shí)過(guò)度占用了用戶的上行帶寬,這樣會(huì)影響校驗(yàn)數(shù)據(jù)等上行操作,進(jìn)而影響下行的流暢度,最終的表現(xiàn)就是本機(jī)網(wǎng)絡(luò)的上行和下行速度都變慢。
了解了問(wèn)題的由來(lái)后,解決問(wèn)題的方法是讓自己的電腦不成為P2P節(jié)點(diǎn)中的“轉(zhuǎn)播點(diǎn)”。由于WebRTC是通過(guò)IP地址來(lái)識(shí)別直播間的電腦的,我們可以通過(guò)一些插件屏蔽其對(duì)電腦IP的檢測(cè)。以本文主要說(shuō)明的Edge瀏覽器為例,啟動(dòng)瀏覽器后在地址欄中輸入“edge://extensions/”并回車,點(diǎn)擊“獲取Edge擴(kuò)展”下載并安裝WebRTC Control(圖1)。
完成插件的安裝后,點(diǎn)擊瀏覽器地址欄后的插件圖標(biāo),選擇“擴(kuò)展選項(xiàng)”,在打開(kāi)的頁(yè)面中勾選“阻止WebRTC支持檢測(cè)”。這樣就會(huì)阻止RTCPeerConnection和RTCDataChannel兩個(gè)接口的連接,前者用于本地計(jì)算機(jī)到遠(yuǎn)端的WebRTC服務(wù)器的連接,后者用于在兩者之間建立一個(gè)雙向數(shù)據(jù)通道的連接,以后只要插件圖標(biāo)顯示為藍(lán)色即表示限制生效(圖2)。
完成上述的設(shè)置后,插件就會(huì)阻止WebRTC檢測(cè)本機(jī)的IP地址,從而避免電腦作為P2P中的“轉(zhuǎn)播點(diǎn)”。大家可以在上圖中點(diǎn)擊“測(cè)試WebRTC泄露”,測(cè)試開(kāi)啟限制前后的對(duì)比,可以看到限制后本機(jī)的IP地址會(huì)變?yōu)镹/A無(wú)法讀?。▓D3)。
現(xiàn)在大家可以再使用Edge瀏覽器連接那些視頻直播網(wǎng)站,通過(guò)禁用/啟用“WebRTC Control擴(kuò)展”前后的對(duì)比,查看自己電腦的網(wǎng)絡(luò)質(zhì)量是不是有了明顯的變化(圖4)。