2024-06-03
|
隨著數位媒體的蓬勃發展,直播服務已成為日常生活不可或缺的一部分,從線上音樂會、運動賽事到視訊會議,高畫質、穩定的即時影音串流技術對於無縫的觀看體驗至關重要。
本文將深入比較 RTP、SRT、RTMP、RIST、ZiXi 和 WebRTC 六種常見的直播串流傳輸協定,探討它們的技術特性、應用場景和相互間的差異,幫助想建立直播服務的客戶選擇最適合他們需求的解決方案。
在了解各種直播傳輸協定前,對於 TCP 與 UDP 這兩種網路通訊協定需要有一些基礎的認識。
「網路通訊協定」是一套規則,它們決定了如何在網路上發送和接收資訊。可以把它想像成不同電腦或裝置之間溝通的語言或方式,這讓它們能夠互相理解並交換數據。
想像你要寄信給遠方的朋友,你會遵循某些步驟:寫下內容、放入信封、寫上地址、貼上郵票,然後投入郵筒。在這裡,你遵循了寄信的「協定」。類似地,網路通訊協定規定了數據包(就像信件)的格式、如何寄送、如何確保它們從一台裝置安全地傳到另一台裝置。
這些協定確保資訊可以在不同裝置和技術間順利流通,無論它們使用的是什麼作業系統或網路技術。這就是為什麼你的手機、電腦或平板電腦能夠輕鬆地訪問並在網路上交換資料的原因。
TCP (Transmission Control Protocol)會在開始傳送資料前,建立一個網路通道,並嚴格確保所有傳輸資料都會被正確傳輸,而且是依照順序送達。可以想像一列火車,所有資料會被放在一節一節車廂內,所有車廂內的資料是依照車廂順序被送到目的地,由於火車鐵軌已經是事前建立好,車廂數也是固定,所以有哪一個車廂不見了,都是很容易被發現與重新傳送的。相對地,由於要求嚴謹性,所以整個傳輸前所需要的準備時間就會比較多,例如事前確認車廂數量,或是建立火車軌道等。總括而言,TCP 在正確性上表現會較為優秀,但在直播延遲上表現會不如 UDP。
UDP (User Datagram Protocol)相對於 TCP 是更為自由的傳輸方式,他會把資料分成好幾份各自傳輸,並不保證送達順序,可以想像把資料切成好幾份,分給好幾個郵差分開送達,郵差只要各自處理手上的資料,所以不需要事先溝通,這就減少了所需的事前處理時間。但相對地,資料送達的順序就無法被保證,要是某個郵差送丟資料了,也不一定能找的回來。總括而言,TCP 在降低延遲表現上表現會較為優秀,但在正確性上表現會不如 TCP,因此可能會有聲音畫面不同步、畫質波動、短暫的畫面模糊或失真等狀況。
在稍微了解後,我們可以依照這兩種傳輸方式為基礎去深入瞭解每種不同的直播傳輸協定的細節。
RTP (Real-time Transport Protocol) 是一種廣泛使用的協定,專為實時影音數據傳輸而設計,比較常使用 UDP 方式傳輸。它支持時間同步和多媒體串流的順序傳輸,但本身不提供任何機制來保證數據的可靠傳輸或控制擁塞,通常與 RTCP(RTP控制協定)一起使用以提供品質監控,由於其低延遲的特性,較常用於可以接受一定程度的掉封包但需要較低延遲的使用情境,例如 IP 攝影機或是物聯網等情境。
RTMP(Real Time Messaging Protocol)最初由 Macromedia 開發,目的是在 Flash 播放器與伺服器之間通過網路傳輸串流媒體音頻、影片及數據,後來被Adobe 採用在於 Flash 技術之中。
RTMP 算是目前最為流行的傳輸協定,也是一個相對老舊的傳輸協定,在官方的定義中,甚至沒有包含對於 H.265 或是 AV1 等較新轉檔/編碼(encoding)技術的支援,這些都仰賴各 CDN 廠商自行研發。此外,RTMP 在安全加密方面跟其他較新的協定相比也有不足。在延遲程度上,由於 RTMP 是基於 TCP 結構設計的協定,雖然保證了高穩定性,但是在直播延遲上會相對較久。
儘管上述缺點確實存在,但對應於它的廣泛使用性與穩定的技術累計,包含各種軟硬體設備的支援,直至今日,RTMP 還是我們最推薦使用的傳輸協定。BlendVision One 也能基於此協定穩定傳輸,把直播延遲降到最低,適用各種需要高畫質、穩定性,或是需要透過 CDN 傳輸的情境,例如,演場會、運動賽事或是產品說明會等。
SRT (Secure Reliable Transport) 是一種開源協定,旨在通過公共網路傳輸高品質的影片內容,相比於其他它是一個較新的協定。SRT 最初由 Haivision 和 Wowza 兩家公司共同研發,到目前為止 SRT 的參與成員已經超過 450 個。
SRT 底層是用 UDP 的方式實作,但在 UDP 基礎上它還額外實作類似於 TCP 的傳輸可靠性,因此它結合了低延遲傳輸和高度可靠性兩方的優點,特別適用於不穩定的網絡環境,最低直播的延遲時間可以低至 120ms。另外,在安全層面上,SRT 也通過錯誤修正機制和加密等功能,確保影片內容能夠安全傳輸。表面上看起來 SRT 同時有 TCP 與 UDP 兩種傳輸模式的優點,但現今普及度不如 RTMP 的主要原因就是現場的直播設備對於 SRT 支援度仍不夠高。
RIST(Reliable Internet Stream Transport)是相對於 SRT 另外一種新興的開源協定,主要是由 VSF activity group 推動發展,類似於 SRT 是基於 UDP 基礎上額外發展更高可靠性的傳輸協定,它的優缺點跟 SRT 類似,優點就是同時兼顧低延遲高可靠,缺點就是目前直播設備的支援還不夠充足。SRT 跟 RIST 還在發展階段,可以期待它們未來各自的表現。
Zixi 是由 Zixi 公司所提供的商用協定,不同於 SRT 或是 RIST 是開源協定,Zixi 是單家公司所開發的解決方案,它的發展已經超過 10 年。Zixi 同樣是基於 UDP 開發,它透過聰明的 Error Correction 錯誤矯正機制,在 UDP 的低延遲基礎下,提供了類似於 TCP 的高可靠性。由於是商用服務,易用性與服務本身的完整性是最大的好處,但它並不是一個免費的開源服務,沒辦法隨意的依照開發者的需求做調整。
WebRTC (Web Real-time Communication)跟上述的傳輸方式有所不同,它是由 Google 開發,基本上是一個由瀏覽器與瀏覽器之間互相傳輸的協定,原則上是不會通過一個中央伺服器往外擴散,而是每個瀏覽器之間都會互相傳輸,這造成它不利於用 CDN 做大規模的傳輸。WebRTC 也是以 UDP 為基礎,所以它的延遲非常低,另外由於它本身的設計並不是追求高畫質,所以並不適合對畫質有要求的直播活動。所以一般使用上,WebRTC 會較適合小群體的即時互動,例如會議或是粉絲見面會等場景。
在比較這些直播傳輸協定時,我們可以根據客戶對直播的需求和使用情境來評估它們的優勢和局限性,從而找出最合適的協定。
RTP 和 RTMP 從早期到現今的直播解決方案中依然占據主導地位,尤其是直播設備的廣泛支援讓它們不容易被後進者取代。
但隨著技術進步,SRT、RIST 和 ZiXi 等協定提供了更高效、可靠的選擇,特別是在面對傳輸延遲和品質兩方面都要求嚴格的場景中,這些協定都會更有優勢。
而 WebRTC 由於其特殊性,在一些不要求畫質或大量傳播,只需要即時互動的場景中會是最佳的選擇。
依照客戶的特殊需求,也有可能需要兩種以上的直播模式互相搭配,BlendVision 在過去有幫助許多大型企業客戶解決過直播的技術問題,可以透過專業的顧問服務協助客戶找出最佳的解決方案。
填寫右邊的表格,讓顧問幫助您制定成功的影音策略