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