天天看點

技術分享| 視訊傳輸Simulcast與Svc

1.什麼是Simulcast

Simulcast直譯過來是多點傳播的意思,其實就是一個用戶端發送多條不同碼率大小的流,為了達到這樣的效果,用戶端會對同一幀畫面進行不同分辨率的編碼來達到降低碼率的目的。

視訊發送端同時向服務端SFU發送多個不同分辨率的視訊流(1080p、720p或360p)。SFU接收到這三個碼流後,根據終端性能選擇其中一個碼流轉發給終端。

例如PC2網絡良好時,SFU向終端發送1080p視訊流。網絡不好時,可以發送720p的視訊流。Simulcast模式對于移動終端類型非常有用。可以靈活智能地适應不同的網絡環境。

技術分享| 視訊傳輸Simulcast與Svc

但是Simulcast也有一定的缺陷,雖然Simulcast可以解決下行帶寬不足時降碼率的需求,但是在應用的過程中存在比較緻命的缺陷:

A.上行帶寬的增加,我們在上行時會多發送多條流,導緻大量的帶寬浪費。而為了應對幾個下行網絡較差的使用者而犧牲上行使用者的帶寬資源,這樣的做法有待商榷;

B.下行可供的流選擇性很少,及時使用3條流同時傳輸的方式,在移動網絡這樣複雜多變的網絡條件下,上下調整的幅度将會是巨大的,會造成不好的使用者體驗,相比SVC适用性較差。

2.什麼是SVC

可伸縮視訊編碼SVC(Scalable Video Coding)是一種可擴充的視訊編碼模式,是H.264标準的一個擴充,最初由JVT在2004年開始制定。H.264 SVC是H.264标準的擴充部分,SVC擴充部分引入了一種傳統H.264 AVC不存在的概念——編碼流中的層。基本層編碼最低層的時域、空域和品質流;增強層以基本層作為起始點,對附加資訊進行,進而在解碼過程中重構更高層的品質、分辨率和時域層。通過解碼基本層和相鄰增強層,解碼器能生成特定層的視訊流。與 Simulcast 模式下同時傳輸多個流不同,SVC 模式側重于視訊編碼。

SVC 在視訊編碼過程中将視訊分為多個層(核心層、中間層和擴充層)。上層依賴于下層。上層越高,視訊越清晰,視訊越低,視訊越模糊。

在帶寬較差的情況下,隻能傳輸底層(核心層)。如果帶寬足夠,則可以将所有資料傳輸到終端。

技術分享| 視訊傳輸Simulcast與Svc

SVC優勢:

  • 時域可分級:(Temporal scalability):可以從碼流中提出具有不同幀頻的碼流。
  • 空間可分級:(Spatial scalability):可以從碼流中提出具有不同圖像尺寸的碼流。

3.在anyRTC雲平台中如何應用

anyRTC雲平台中原生支援Simulcast,通過可拓展編碼方式可實作SVC的編碼傳輸;使用者可以根據自己的需求進行選擇。同時anyRTC雲平台提供的是傳輸服務,使用者隻需要關心端到端的情況。anyRTC雲平台提供的傳輸網絡包括:

A.分區域/分營運商部署RTC伺服器,使用者通過接入服務實作就近接入,保障了最後一公裡的品質。

B.靈活/按需部署路由節點,通過路由配置設定服務,能夠根據實時網絡品質選擇最優的傳輸路徑。

C.分布式的RTC節點更有利于通訊方數的擴充和服務擴容;同時支援公/私混合雲的部署方式。

D.需要保障資料傳輸品質,可以嘗試RAST協定庫。

4.概括

技術分享| 視訊傳輸Simulcast與Svc
技術分享| 視訊傳輸Simulcast與Svc

繼續閱讀