五種常見的流媒體協議(簡單歸類)

流媒體(streaming media)是指將一連串數據壓縮後,經過網絡分段發送,即時傳輸以供觀看音視頻的一種技術。

通過使用 streaming media 技術,用戶無需將文件下載到本地即可播放。由於媒體是以連續的數據流發送的,因此在媒體到達時即可播放。可以像下載的文件一樣進行暫停、快進或後退操作。

在這篇文章中,首先將說明什麼是 video streaming protocol;其次會討論流協議(streaming protocl)和編解碼器之間的區別;最後,將介紹五種常見的流協議。

1. 什麼是 video streaming protocol

先看一下什麼是流視頻協議,大多數數字視頻是爲了兩件事情:存儲和播放。要滿足這樣的需求,視頻需要滿足小文件和通用播放這兩點。

大多數視頻文件都不適合流式傳輸。流式傳輸需要將音視頻分割成小塊(chunk),將這些小塊按順序發送,並在接收時播放。如果正在直播,則視頻源來自於攝像機;否則,來自於文件。

流媒體協議是一種標準化的傳遞方法,用於將視頻分解爲多個塊,將其發送給視頻播放器,播放器重新組合播放。

這是對 streaming protocol 簡單的總結,streaming protocl 協議涉及多方面,可以變得非常複雜。大部分流協議是碼率自適應(adaptive bitrate)的,這項技術可以在任一時間爲用戶提供最佳質量視頻。不同協議有不同優勢,例如,延遲、數字版權管理(Digital rights management,簡稱DRB),支持平臺數量。

2. 流協議和編、解碼器區別

編、解碼器(codec)指視頻壓縮技術。不同的編、解碼器用於不同的目的。例如,Apple ProRes 一般用於編輯視頻。H.264一般用於在線播放視頻。即使不需要使用流式協議,視頻也需要使用解編碼器進行編碼、解碼。

視頻格式(format)也容易引起疑惑。通常,視頻格式指視頻文件格式(container format)。常見 container format 包括 .mp4、.m4v、.avi、.mov等,container format 只是一個框(box),框中通常包含視頻文件、音頻文件和元數據。視頻文件格式並不是流式的核心概念。

下面的例子有助於理解這些概念。

假設你是商人,需要批量運輸衣服(衣服就是視頻)。編解碼器就是將衣服壓縮成捆以節省空間的機器。容器格式就是裝壓縮衣服的集裝箱。流協議就是將其運輸到目的地的鐵軌、信號燈和駕駛員。

很多 streaming protocol 只支持幾種解編碼器。

 3. 五種常見流協議

現在,比較一下常見的視頻流協議以及每種協議的適用情景。

3.1 Real-Time Messaging Protocol (RTMP)

RTMP 是一個古老的協議。RMTP 最初由 Macromedia 開發,後被 Adobe 收購,至今仍被使用。

由於 RTMP 播放視頻需要依賴 Flash 插件。而 Flash 插件多年來一直受安全問題困擾,正在被迅速淘汰。因此,目前 RTMP 主要用於提取 stream。也就是,當設置解編碼器將視頻發送到託管平臺時,視頻將使用 RTMP 協議發送到 CDN,隨後使用另一種協議(通常是HLS)傳遞給播放器。

何時使用 RTMP

RTMP 協議延遲非常低,但由於需要 Flash 插件,不建議使用該協議,但流提取是例外。在流提取方便,RTMP 非常強大,且幾乎得到了普遍支持。

3.2 Dynamic Adaptive Streaming over HTTP (MPEG-DASH)

MPEG-DASH 是最新的協議之一。儘管未被廣泛使用,但該協議有一些很大的優勢。

首先,MPEG-DASH 支持碼率自適應。這意味着將始終爲觀衆提供他們當前互聯網連接速度可以支持的最佳視頻質量。網絡速度波動時 DASH 可以保持不間斷播放。

其次,MPEG-DASH 幾乎支持所有編解碼器,還支持加密媒體擴展(Encrpted Media Extensions,簡寫EME)和媒體擴展源(Media Source Extension,簡寫MSE),這些擴展用於瀏覽器的數字版權管理標準API。

何時使用 MPEG-DASH?

如今只有一些廣播公司在使用,將來或許會成爲標準技術。但由於兼容性問題,這樣的時刻還沒有到來。


3.3 Microsoft Smooth Streaming (MSS)

Microsoft smooth streaming 技術於2008年推出。如今,以 Microsoft 爲重點的開發人員和在 Xbox 生態系統的開發人員仍在使用,除此之外已逐漸失去用戶。

Smooth streaming 支持碼率自適應,並且擁有強大的數字版權管理工具。

何時使用 Smooth Streaming

除非目標用戶是 Xbox 用戶,或計劃只開發 Windows 平臺的 app,否則,不推薦使用該協議。

3.4 HTTP Dynamic Streaming (HDS)

Adobe 攜帶 HDS 再次進入了流協議世界。HDS 是 RTMP 的後繼產品,也是依賴 Flash 的協議,但增加了碼率自適應,並以高質量著稱。

HDS 是延遲最低的流協議之一。但由於分段和加密操作,HDS 延遲並不如 RTMP 那樣低。在流媒體體育比賽和其他重要事件中廣受歡迎。

何時使用 HDS

通常,不建議使用 HDS。對於任何公司而言,採用基於 flash 的技術無法吸引用戶,圍繞 flash 搭建播放器不是一個好主意。

 3.5 HTTP Live Streaming (HLS)

HTTP Live Streaming 由 Apple 開發,旨在能夠從 iPhone 中刪除 flash,如今已成爲使用最廣泛的協議。

桌面瀏覽器、智能電視、Android、iOS 均支持 HLS。HTML5 視頻播放器也原生的支持HLS,但不支持 HDS 和 RTMP。這樣就可以觸達更多的用戶。

HLS 支持碼率自適應,並且支持最新的 H.265 解編碼器,同樣大小的文件,H.265 編碼的視頻質量是 H.264 的二倍。

此前,HLS 缺點一直是高延遲。但 Apple 在 WWDC 2019 發佈了新的解決方案,可以將延遲從8秒降低到1至2秒。具體可以查看Introducing Low-Latency HLS

何時使用 HLS

HLS 是目前使用最廣泛的協議,且功能強大。數據顯示,如果視頻播放過程中遇到故障,只有8%的用戶會繼續在當前網站觀看視頻。使用廣泛兼容的自適應協議(例如HLS),可以提供最佳的受衆體驗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章