网易视频云分享:流媒体技术介绍(上篇)
網(wǎng)易視頻云分享:流媒體技術(shù)介紹(上篇)
網(wǎng)易視頻云2016-04-14 11:49:49 創(chuàng)業(yè) 媒體 技術(shù) 閱讀(949)評論(0) 聲明:本文由入駐搜狐公眾平臺的作者撰寫,除搜狐官方賬號外,觀點僅代表作者本人,不代表搜狐立場。舉報流媒體就是指采用流式傳輸技術(shù)在網(wǎng)絡(luò)上連續(xù)實時播放的媒體格式,如音頻、視頻或多媒體文件。所謂流媒體技術(shù)就是把連續(xù)的影像和聲音信息經(jīng)過壓縮處理后放上網(wǎng)站服務(wù)器,由視頻服務(wù)器向用戶計算機(jī)順序或?qū)崟r地傳送各個壓縮包,讓用戶一邊下載一邊觀看、收聽,而不要等整個音視頻文件下載到自己的計算機(jī)上才可以觀看的網(wǎng)絡(luò)傳輸技術(shù)。
一、傳統(tǒng)流媒體技術(shù)
傳統(tǒng)的媒體內(nèi)容分發(fā)技術(shù)是以RTSP/RTP(Real Time Streaming Protocol/Real Time Transfer Protocol)、RTMP為代表的面向連接的流媒體技術(shù)。
實時流式傳輸采用專門的流媒體服務(wù)器存儲多媒體文件。當(dāng)客戶端發(fā)起連接想要觀看多媒體資源的時候,一般通過專有的實時流式傳輸協(xié)議把位于流媒體服務(wù)器上的多媒體數(shù)據(jù)直接傳輸給客戶端的播放器,再實時播放。他與服務(wù)器交互的流程如圖-1 所示。
圖-1 實時流式傳輸
RTSP是一種傳統(tǒng)的流媒體控制協(xié)議,其具有狀態(tài)性的特點,意味著從一個客戶端開始連接至服務(wù)端,一直到連接中斷的整個過程,服務(wù)器端會一直監(jiān)聽客戶端的狀態(tài)。客戶端通過RTSP協(xié)議向服務(wù)器傳達(dá)控制命令,如播放、暫停或中斷等。
RTP/RTCP(Real Time Transfer Control Protocol)是端對端基于組播的應(yīng)用層協(xié)議。其中,RTP用于數(shù)據(jù)傳輸,RTCP用于統(tǒng)計、管理和控制RTP傳輸,兩者協(xié)同工作,能夠顯著提高網(wǎng)絡(luò)實時數(shù)據(jù)的傳輸效率。
基于此架構(gòu)的流媒體技術(shù)方案,服務(wù)端和客戶端之間建立連接之后,服務(wù)器開始持續(xù)不斷地發(fā)送媒體數(shù)據(jù)包,媒體數(shù)據(jù)包采用RTP進(jìn)行封裝,客戶端控制信息通過RTSP信息包以UDP或TCP的方式傳送。
RTMP是由Adobe 公司提出的。RTMP協(xié)議全稱是Real Time Messaging Protocol,即實時消息傳送協(xié)議,用于在Flash 平臺之間傳遞視音頻以及數(shù)據(jù)。與RTSP + RTP 組合提供流媒體服務(wù)的方式不同,RTMP 協(xié)議本身既可以傳輸多媒體數(shù)據(jù)也可以控制多媒體播放。RTMP 協(xié)議使用TCP 協(xié)議作為其傳輸層的網(wǎng)絡(luò)協(xié)議。TCP 是面向連接的,提供可靠交付的協(xié)議,因此在互聯(lián)網(wǎng)上傳輸時不會出現(xiàn)丟包情況,從而保證了用戶體驗。但是TCP 協(xié)議提供可靠交付的代價就是增加了一些額外的開銷,占用了一些帶寬和處理機(jī)資源。
選擇RTMP 協(xié)議作為其提供流媒體服務(wù)的應(yīng)用層協(xié)議,在于它有以下幾個特點: 無須安裝客戶端程序,瀏覽器Flash Player默認(rèn)支持播放RTMP流。采用TCP 協(xié)議作為其在傳輸層的協(xié)議,避免了多媒體數(shù)據(jù)在廣域網(wǎng)傳輸過程中的丟包對質(zhì)量造成的損失,保證了媒體傳輸質(zhì)量。
基于RTSP/RTP 的流媒體系統(tǒng)專門針對大規(guī)模流媒體直播和點播等應(yīng)用而設(shè)計,需要專門的流媒體服務(wù)器支持,主要具有如下優(yōu)勢。
?流媒體播放的實時性。
與漸進(jìn)下載客戶端需要先緩沖一定數(shù)量媒體數(shù)據(jù)才能開始播放不同,基于RTSP/RTP的流媒體客戶端幾乎在接收到第一幀媒體數(shù)據(jù)的同時就可以啟動播放。支持進(jìn)度條搜索、快進(jìn)、快退等高級VCR控制功能。
?平滑、流暢的音視頻播放體驗。
在基于RTSP的流媒體會話期間,客戶端與服務(wù)器之間始終保持會話聯(lián)系,服務(wù)器能夠?qū)碜钥蛻舳说姆答佇畔討B(tài)做出響應(yīng)。當(dāng)因網(wǎng)絡(luò)擁塞等原因?qū)е驴捎脦挷蛔銜r,服務(wù)器可通過適當(dāng)?shù)亟档蛶实确绞絹碇悄苷{(diào)整發(fā)送速率。
?支持大規(guī)模用戶擴(kuò)展。
專業(yè)的流媒體服務(wù)器在大容量媒體文件硬盤讀取、內(nèi)存緩沖和網(wǎng)絡(luò)發(fā)送等方面進(jìn)行了優(yōu)化,可支持大規(guī)模用戶接入。
?內(nèi)容版權(quán)保護(hù)。
在基于RTSP/RTP的流媒體系統(tǒng)中,客戶端只在內(nèi)存中維持一個較小的解碼緩沖區(qū),播放后的媒體數(shù)據(jù)隨時清除,用戶不容易截取和拷貝。此外還可利用DRM等版權(quán)保護(hù)系統(tǒng)進(jìn)行加密處理。
盡管如此,基于RTSP/RTP的流媒體系統(tǒng)在實際的應(yīng)用部署中仍然遇到了不少問題,主要體現(xiàn)在:
?與Web服務(wù)器相比,流媒體服務(wù)器的安裝、配置和維護(hù)都較為復(fù)雜,特別是對于已經(jīng)建有CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))等基礎(chǔ)設(shè)施的運營商來說,重新安裝配置支持RTSP/RTP的流媒體服務(wù)器工作量很大;
?RTSP/RTP協(xié)議棧的邏輯實現(xiàn)較為復(fù)雜,與HTTP相比支持RTSP/RTP的客戶端軟硬件實現(xiàn)難度較大,特別是對于嵌入式終端來說;
?RTSP協(xié)議使用的網(wǎng)絡(luò)端口號(554)可能被部分用戶網(wǎng)絡(luò)中的防火墻和NAT等封堵,導(dǎo)致無法使用。雖然有些流媒體服務(wù)器可通過隧道方式將RTSP配置在HTTP的80端口上承載,但實際部署起來并不是特別方便。
二、HTTP漸進(jìn)式下載技術(shù)
HTTP漸進(jìn)式下載技術(shù)與有狀態(tài)的RTSP/RTP技術(shù)相比,采用了無狀態(tài)的HTTP協(xié)議。當(dāng)HTTP客戶端向前端請求數(shù)據(jù)時,服務(wù)端將請求的數(shù)據(jù)下發(fā)給客戶端,但是服務(wù)端并不會記錄客戶端的狀態(tài),每次HTTP請求都是一個一次性獨立的會話。它的與服務(wù)器交互的流程如圖-2 所示。
圖-2 HTTP漸進(jìn)式下載
漸進(jìn)式下載的功能目前主流的終端播放器均支持,如Adobe的Flash、微軟的Silverlight以及Windows Media Player。所謂的漸進(jìn)式下載,即終端播放器可以在整個媒體文件被下載完成之前即可開始媒體的播放,如果客戶端及服務(wù)端都支持HTTP1.1,終端還可從沒下載完成的部分中任意選取一個時間點開始播放。
目前,主流的視頻網(wǎng)站都采用了HTTP漸進(jìn)式下載的方式來實現(xiàn)流媒體的分發(fā),如YouTube、優(yōu)酷網(wǎng)、搜狐視頻等等。
作為最簡單和原始的流媒體解決方案,HTTP漸進(jìn)式下載尤其顯著的優(yōu)點在于它僅需要維護(hù)一個標(biāo)準(zhǔn)的Web服務(wù)器,其安裝和維護(hù)的工作量和復(fù)雜性比起專門的流媒體服務(wù)器來說要簡單和容易得多。
然而,其缺點和不足也很明顯。
?帶寬容易浪費。當(dāng)一個用戶在開始下載觀看一個內(nèi)容之后選擇停止觀看,那么已經(jīng)下載完成的內(nèi)容則是對帶寬資源的一種浪費。
?缺乏文件內(nèi)容保護(hù)機(jī)制。在漸進(jìn)下載模式中,下載后的文件緩存在客戶端硬盤的臨時目錄中,用戶可將其拷貝至其他位置供以后再次播放。
?基于HTTP的漸進(jìn)式下載僅僅適用于點播內(nèi)容,而不支持直播內(nèi)容。
?此方式缺乏靈活的會話控制功能和智能的流量調(diào)節(jié)機(jī)制。
三、自適應(yīng)流媒體技術(shù)
自適應(yīng)流媒體技術(shù)(ABS - adaptive bitrate streaming) 融合了傳統(tǒng)RTSP/RTP流媒體技術(shù)以及基于HTTP漸進(jìn)式下載技術(shù)的優(yōu)點,具有高效、可擴(kuò)展以及兼容性強(qiáng)的特點。ABS技術(shù)使用HTTP 傳送視頻流,使用多碼率編碼源內(nèi)容,每個單碼率的視頻流被切成小的,幾秒鐘的小切片。如圖-3所示為ABS技術(shù)的實現(xiàn)原理。
圖-3 自適應(yīng)流媒體技術(shù)框架
流媒體客戶端首先獲取所有碼率的切片索引信息。一開始,客戶端先請求最低碼率的串流。如果客戶端判斷下載速度比當(dāng)前碼率的切片串流快,它就去請求下一個更高碼率的串流。隨著播放的進(jìn)行,如果客戶端發(fā)現(xiàn)下載速度比當(dāng)前碼率的切片串流慢,轉(zhuǎn)而請求下一個較低碼率的串流。
切片大小和具體實現(xiàn)密切相關(guān),不過一般都在2~10秒之間。每個切片由一個完整的GOP序列組成,一個GOP序列里面有1個或者多個I幀,GOP序列的第一個幀必須是I幀,并且每個切片都能單獨的解碼播放顯示。
碼流自適應(yīng)技術(shù)有幾個共同的技術(shù)特點:
?內(nèi)容的準(zhǔn)備,包括了支持多屏的轉(zhuǎn)碼平臺以及媒體的分割切片模塊。它從同一個源產(chǎn)生多個不同碼率的節(jié)目流以適應(yīng)不同的帶寬和不同的設(shè)備類型。
?內(nèi)容的分發(fā),包括了基于HTTP的內(nèi)容源服務(wù)器以及面向終端的內(nèi)容分發(fā)網(wǎng)絡(luò),能夠自適應(yīng)分發(fā)文件,支持大并發(fā)拉流的功能。以及碼流傳輸?shù)淖兓际沁m應(yīng)有效網(wǎng)絡(luò)吞吐量和可用的CPU資源。
?所有的操作對用戶都是透明的,節(jié)目流的切換都在后臺進(jìn)行,用戶很難注意到節(jié)目流的變化。
自適應(yīng)流媒體傳輸相對與傳統(tǒng)流媒體傳輸具有以下幾個優(yōu)點:
?采用了通用的HTTP協(xié)議,傳統(tǒng)的HTTP緩存/代理、防火墻等網(wǎng)絡(luò)設(shè)備可以完美兼容,它實施起來成本更低;
?它具備了更好的伸縮性和可達(dá)性,可根據(jù)最后接入網(wǎng)的帶寬大小動態(tài)地調(diào)整碼率,實現(xiàn)內(nèi)容的分發(fā);
?它能夠讓觀眾有更好的體驗,而不需要內(nèi)容提供商或運營商去猜測用那種碼率傳輸更適合觀眾;
ABS除了上述優(yōu)勢之外,還有以前任何技術(shù)均不具備的特點,具體如下:
?快速播放以及拖動,用戶等待的時間更短。客戶端初始化默認(rèn)選擇低碼率,開始播放后逐步向高碼率進(jìn)行切換,因此,其服務(wù)質(zhì)量是在可用帶寬范圍之內(nèi)不斷被進(jìn)行調(diào)整和優(yōu)化;
?不需要大的緩存,不間斷地播放,平滑的視頻播放體驗;
?基于網(wǎng)絡(luò)狀況和CPU解碼能力的無縫碼率切換;
相對于傳統(tǒng)的流媒體技術(shù),ABS技術(shù)能夠提供更好的服務(wù)質(zhì)量,因為它可以使用整個可用的帶寬,而非自適應(yīng)流技術(shù)則是強(qiáng)制客戶端選擇一個低于可用帶寬的固定比特率。
本次分享就到這里。流媒體技術(shù)技術(shù)之下篇將在網(wǎng)易視頻云官方微信(vcloud163)繼續(xù)發(fā)布哦,也可到網(wǎng)易視頻云官網(wǎng),與技術(shù)專家直接進(jìn)行交流!
總結(jié)
以上是生活随笔為你收集整理的网易视频云分享:流媒体技术介绍(上篇)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直播协议的选择:RTMP vs. HLS
- 下一篇: OpenMP 编程实例(蒙特卡罗算法)