無論是本地軟件推流還是Web推流,都需要解決推流抖動、畫面高糊、音頻卡頓等問題。在現有的Web技術環境下,如何穩定地把高質量的音視頻流呈現給更多用戶,是我們技術團隊攻克的重點。從技術角度來解讀一下這里的幾個關鍵詞:
【資料圖】
首先我們簡單來了解一下WebTransport這個傳輸協議基本的技術原理。WebTransport是基于HTTP3的應用層傳輸協議,HTTP3的底層又基于quic協議,quic協議是基于UDP協議實現的一套傳輸協議,支持可靠與非可靠傳輸兩種形式。
WebTransport 的技術優勢WebTransport對于Web應用的意義并不止于一個更好的傳輸協議,它更多的還是帶來了一個更加豐富的技術棧,能夠根據實際場景,結合WebCodecs、WebAssembly和WebNN等能力實現更好的應用體驗。相較于WebRTC相對中心化的技術棧,這種方式顯然是更加靈活的,易于做出更多靈活的技術組合。
另一個明顯的優勢在于WebTransport可以發揮頁面多線程的優勢,使用WebRTC協議,大量的邏輯只能放在主線程執行,而使用WebTransport就可以將整個音視頻的處理流程放在WebWorker中,降低對主線程的占用,提升頁面流暢度。同時使用多線程能夠提升應用的擴展性,在面對更多的音視頻任務時可以用線程來進行抽象和隔離。
充分利用多線程機制降低主線程負擔
利用多線程機制提升應用的可拓展性
從傳輸協議的特性上來說,它的建聯速度更快,首次建聯只需要1個RTT,相比之下,TCP則需要2~3個RTT。針對已經建立過的連接,超時時間內再次建聯可以實現0RTT。在網絡擁塞的情況下,減少RTT次數對速度的優化是非常明顯的??梢缘綆资甿s。最后一個特性是連接遷移,在直播過程中如果WIFI網絡不好。切到手機熱點也可以實現0RTT,相比之下,TCP、RTC都需要重新建立連接,恢復的速度會慢很多。
首次連接比TCP快1~2RTT
對有緩存的連接支持0RTT
基于這些優勢,火山引擎直播團隊選擇使用WebTransport優化直播推流。設計的方案是基于單向流的穩定傳輸,從傳輸格式上對標RTMP,這樣直播CDN的支持成本會相對較小,比較好復用目前的RTMP收流邏輯。由于這個技術棧較新也需要解決過程中的一些問題:雖然W3C定義了AAC的編碼能力,但是Chrome沒有提供AAC編碼的實現,可以將libFaaC編譯成wasm庫來實現,另外瀏覽器沒有針對flv容器的封裝,需要額外支持該部分能力。那么相比于WebRTC推流,WebTransport推流的實際應用效果如何呢?
WebTransport 推流 與 WebRTC 推流效果對比為什么WebTransport能夠比WebRTC推流獲得更好的效果:
網絡傳輸(畫質與穩定性):
WebRTC是面向實時通信的傳輸協議,對網絡延時的變化敏感。使用WebRTC協議推流時,它受到網絡抖動的影響較大,當網絡延時的抖動發生時,RTC的帶寬估計模塊會認為當前網絡處于擁塞狀態,需要降低發送碼率以避免擁塞,碼率的降低對視頻畫質的影響是非常大的,直觀感受就會出現局部的馬賽克。當使用WebTransport基于Quic可靠傳輸時,其擁塞控制算法對網絡抖動的敏感度相對較低,可以通過犧牲一定的延遲保證發送可靠性,因此不容易出現大幅降低發送帶寬的行為,畫質相對有保障。
編碼優化(畫質):
WebTransport在Web規范中提供了網絡傳輸的能力,并且可以與現有的Web端多媒體能力進行深度集成,例如WebCodecs、WebGPU等。給應用的優化提供了更多編碼格式、參數選擇方面的空間。
易于集成到直播 CDN(大規模分發):
WebTransport基于已經定稿的HTTP3規范,易于被直播CDN集成支持,應用復雜度相較于WebRTC更低,同時省去了RTC推流建連過程中的信令環節,可以加快首幀推送的速度,方便部署到更多的直播CDN
首先在網絡抖動的場景下,同樣加入100ms延遲抖動,WebTransport推流的畫面會明顯比RTC推流要清晰。在網絡搶占的場景下,固定一個較低的帶寬,使用GCC擁塞控制算法的數據流,面對使用TCP協議的數據傳輸,它能夠分到的帶寬資源是非常小的。
WebTransport推流+100ms延遲抖動
WebRTC推流+100ms延遲抖動
另外,在固定3Mbps上行帶寬的網絡下,同時使用WebTransport和RTC推流,設定的目標碼率都是1.5M,過程中RTC推流的碼率會受到嚴重的影響,碼率大幅下降,不能保證畫質。WebTransport推流在不同網絡狀態下的流暢度表現,除了大量丟包的情況下,其余的場景都能夠達到與RTC推流基本持平。
WebTransport推流
WebRTC推流
總結與展望不同的推流協議之間各有優缺點,目前沒有一個完美的解決方案,需要根據實際的場景來做選擇,比如連麥場景一般需要用WebRTC轉推,更適合低延遲互動的場景,WebTransport方案則更適合高畫質需求的場景??偟膩碚f,WebTransport推流的方案在解決“如何穩定地將高質量的音視頻傳遞給大量的用戶”的問題上,即實現了可靠的傳輸,連接穩定性有保障,并且在遭遇網損的場景,可以通過犧牲部分延遲保障音視頻質量,給出了一份令人較為滿意的答卷。如果想要體驗WebTransport的開播效果,可進入火山引擎控制臺進行在線demo體驗。
關鍵詞:
下一篇:最后一頁
X 關閉
X 關閉
- 15G資費不大降!三大運營商誰提供的5G網速最快?中國信通院給出答案
- 2聯想拯救者Y70發布最新預告:售價2970元起 迄今最便宜的驍龍8+旗艦
- 3亞馬遜開始大規模推廣掌紋支付技術 顧客可使用“揮手付”結賬
- 4現代和起亞上半年出口20萬輛新能源汽車同比增長30.6%
- 5如何讓居民5分鐘使用到各種設施?沙特“線性城市”來了
- 6AMD實現連續8個季度的增長 季度營收首次突破60億美元利潤更是翻倍
- 7轉轉集團發布2022年二季度手機行情報告:二手市場“飄香”
- 8充電寶100Wh等于多少毫安?鐵路旅客禁止、限制攜帶和托運物品目錄
- 9好消息!京東與騰訊續簽三年戰略合作協議 加強技術創新與供應鏈服務
- 10名創優品擬通過香港IPO全球發售4100萬股 全球發售所得款項有什么用處?