五种常见流媒体协议
五種常見流媒體協(xié)議
流媒體(streaming media)是指將一連串?dāng)?shù)據(jù)壓縮后,經(jīng)過網(wǎng)絡(luò)分段發(fā)送,即時(shí)傳輸以供觀看音視頻的一種技術(shù)。
通過使用 streaming media 技術(shù),用戶無需將文件下載到本地即可播放。由于媒體是以連續(xù)的數(shù)據(jù)流發(fā)送的,因此在媒體到達(dá)時(shí)即可播放。可以像下載的文件一樣進(jìn)行暫停、快進(jìn)或后退操作。
在這篇文章中,首先將說明什么是 video streaming protocol;其次會討論流協(xié)議(streaming protocl)和編解碼器之間的區(qū)別;最后,將介紹五種常見的流協(xié)議。
1. 什么是 video streaming protocol
先看一下什么是流視頻協(xié)議,大多數(shù)數(shù)字視頻是為了兩件事情:存儲和播放。要滿足這樣的需求,視頻需要滿足小文件和通用播放這兩點(diǎn)。
大多數(shù)視頻文件都不適合流式傳輸。流式傳輸需要將音視頻分割成小塊(chunk),將這些小塊按順序發(fā)送,并在接收時(shí)播放。如果正在直播,則視頻源來自于攝像機(jī);否則,來自于文件。
流媒體協(xié)議是一種標(biāo)準(zhǔn)化的傳遞方法,用于將視頻分解為多個(gè)塊,將其發(fā)送給視頻播放器,播放器重新組合播放。
這是對 streaming protocol 簡單的總結(jié),streaming protocl 協(xié)議涉及多方面,可以變得非常復(fù)雜。大部分流協(xié)議是碼率自適應(yīng)(adaptive bitrate)的,這項(xiàng)技術(shù)可以在任一時(shí)間為用戶提供最佳質(zhì)量視頻。不同協(xié)議有不同優(yōu)勢,例如,延遲、數(shù)字版權(quán)管理(Digital rights management,簡稱DRB),支持平臺數(shù)量。
2. 流協(xié)議和編、解碼器區(qū)別
編、解碼器(codec)指視頻壓縮技術(shù)。不同的編、解碼器用于不同的目的。例如,Apple ProRes 一般用于編輯視頻。H.264一般用于在線播放視頻。即使不需要使用流式協(xié)議,視頻也需要使用解編碼器進(jìn)行編碼、解碼。
視頻格式(format)也容易引起疑惑。通常,視頻格式指視頻文件格式(container format)。常見 container format 包括 .mp4、.m4v、.avi、.mov等,container format 只是一個(gè)框(box),框中通常包含視頻文件、音頻文件和元數(shù)據(jù)。視頻文件格式并不是流式的核心概念。
下面的例子有助于理解這些概念。假設(shè)你是商人,需要批量運(yùn)輸衣服(衣服就是視頻)。編解碼器就是將衣服壓縮成捆以節(jié)省空間的機(jī)器。容器格式就是裝壓縮后衣服的集裝箱。流協(xié)議就是將其運(yùn)輸?shù)侥康牡氐蔫F軌、信號燈和駕駛員。
很多 streaming protocol 只支持幾種解編碼器。
3. 五種常見流協(xié)議
現(xiàn)在,比較一下常見的視頻流協(xié)議以及每種協(xié)議的適用情景。
3.1 Real-Time Messaging Protocol (RTMP)
RTMP 是一個(gè)古老的協(xié)議。RMTP 最初由 Macromedia 開發(fā),后被 Adobe 收購,至今仍被使用。
由于 RTMP 播放視頻需要依賴 Flash 插件。而 Flash 插件多年來一直受安全問題困擾,正在被迅速淘汰。因此,目前 RTMP 主要用于提取 stream。也就是,當(dāng)設(shè)置解編碼器將視頻發(fā)送到托管平臺時(shí),視頻將使用 RTMP 協(xié)議發(fā)送到 CDN,隨后使用另一種協(xié)議(通常是HLS)傳遞給播放器。
何時(shí)使用 RTMP
RTMP 協(xié)議延遲非常低,但由于需要 Flash 插件,不建議使用該協(xié)議,但流提取是例外。在流提取方便,RTMP 非常強(qiáng)大,且?guī)缀醯玫搅似毡橹С帧?/p>
3.2 Dynamic Adaptive Streaming over HTTP (MPEG-DASH)
MPEG-DASH 是最新的協(xié)議之一。盡管未被廣泛使用,但該協(xié)議有一些很大的優(yōu)勢。
首先,MPEG-DASH 支持碼率自適應(yīng)。這意味著將始終為觀眾提供他們當(dāng)前互聯(lián)網(wǎng)連接速度可以支持的最佳視頻質(zhì)量。網(wǎng)絡(luò)速度波動時(shí) DASH 可以保持不間斷播放。
其次,MPEG-DASH 幾乎支持所有編解碼器,還支持加密媒體擴(kuò)展(Encrpted Media Extensions,簡寫EME)和媒體擴(kuò)展源(Media Source Extension,簡寫MSE),這些擴(kuò)展用于瀏覽器的數(shù)字版權(quán)管理標(biāo)準(zhǔn)API。
何時(shí)使用 MPEG-DASH
如今只有一些廣播公司在使用,將來或許會成為標(biāo)準(zhǔn)技術(shù)。但由于兼容性問題,這樣的時(shí)刻還沒有到來。
3.3 Microsoft Smooth Streaming (MSS)
Microsoft smooth streaming 技術(shù)于2008年推出。如今,以 Microsoft 為重點(diǎn)的開發(fā)人員和在 Xbox 生態(tài)系統(tǒng)的開發(fā)人員仍在使用,除此之外已逐漸失去用戶。
Smooth streaming 支持碼率自適應(yīng),并且擁有強(qiáng)大的數(shù)字版權(quán)管理工具。
何時(shí)使用 Smooth Streaming
除非目標(biāo)用戶是 Xbox 用戶,或計(jì)劃只開發(fā) Windows 平臺的 app,否則,不推薦使用該協(xié)議。
3.4 HTTP Dynamic Streaming (HDS)
Adobe 攜帶 HDS 再次進(jìn)入了流協(xié)議世界。HDS 是 RTMP 的后繼產(chǎn)品,也是依賴 Flash 的協(xié)議,但增加了碼率自適應(yīng),并以高質(zhì)量著稱。
HDS 是延遲最低的流協(xié)議之一。但由于分段和加密操作,HDS 延遲并不如 RTMP 那樣低。在流媒體體育比賽和其他重要事件中廣受歡迎。
何時(shí)使用 HDS
通常,不建議使用 HDS。對于任何公司而言,采用基于 flash 的技術(shù)無法吸引用戶,圍繞 flash 搭建播放器不是一個(gè)好主意。
3.5 HTTP Live Streaming (HLS)
HTTP Live Streaming 由 Apple 開發(fā),旨在能夠從 iPhone 中刪除 flash,如今已成為使用最廣泛的協(xié)議。
桌面瀏覽器、智能電視、Android、iOS 均支持 HLS。HTML5 視頻播放器也原生的支持HLS,但不支持 HDS 和 RTMP。這樣就可以觸達(dá)更多的用戶。
HLS 支持碼率自適應(yīng),并且支持最新的 H.265 解編碼器,同樣大小的文件,H.265 編碼的視頻質(zhì)量是 H.264 的二倍。
此前,HLS 缺點(diǎn)一直是高延遲。但 Apple 在 WWDC 2019 發(fā)布了新的解決方案,可以將延遲從8秒降低到1至2秒。具體可以查看Introducing Low-Latency HLS。
何時(shí)使用 HLS
HLS 是目前使用最廣泛的協(xié)議,且功能強(qiáng)大。數(shù)據(jù)顯示,如果視頻播放過程中遇到故障,只有8%的用戶會繼續(xù)在當(dāng)前網(wǎng)站觀看視頻。使用廣泛兼容的自適應(yīng)協(xié)議(例如HLS),可以提供最佳的受眾體驗(yàn)。
關(guān)于 HTTP Live Streaming 更詳細(xì)的介紹,可以查看我的另一篇文章:HTTP Live Streaming 詳解。
參考資料:
總結(jié)
- 上一篇: 【职场】清华同学在鹅厂五星绩效,还是失业
- 下一篇: mysql子查询_笔记之MySQL子查询