【流媒體】初識流媒體與流媒體技術


流媒體

  流媒體又叫流式媒體,它是指商家用一個視頻傳送服務器把節目當成數據包發出,傳送到網絡上。用戶通過解壓設備對這些數據進行解壓后,節目就會像發送前那樣顯示出來。

  這個過程的一系列相關的包稱為“流”。流媒體實際指的是一種新的媒體傳送方式,而非一種新的媒體。

  流媒體技術全面應用后,人們在網上聊天可直接語音輸入;如果想彼此看見對方的容貌、表情,只要雙方各有一個攝像頭就可以了;在網上看到感興趣的商品,點擊以后,講解員和商品的影像就會跳出來;更有真實感的影像新聞也會出現。

  流媒體技術發端於美國,在美國目前流媒體的應用已很普遍,比如惠普公司的產品發布和銷售人員培訓都用網絡視頻進行。

  所謂流媒體是指采用流式傳輸的方式在Internet播放的媒體格式。如:音頻、視頻或多媒體文件。流式媒體在播放前並不下載整個文件,只將開始部分內容存入內存,流式媒體的數據流隨時傳送隨時播放,只是在開始時有一些延遲。流媒體實現的關鍵技術就是流式傳輸。

  流式傳輸方式則是將整個A/V及3D等多媒體文件經過特殊的壓縮方式分成一個個壓縮包,由視頻服務器向用戶計算機連續、實時傳送。

  在采用流式傳輸方式的系統中,用戶不必像采用下載方式那樣等到整個文件全部下載完畢,而是只需經過幾秒或幾十秒的啟動延時即可在用戶的計算機上利用解壓設備(硬件或軟件)對壓縮的A/V、3D等多媒體文件解壓后進行播放和觀看。此時多媒體文件的剩余部分將在后台的服務器內繼續下載。

  與單純的下載方式相比,這種對多媒體文件邊下載邊播放的流式傳輸方式不僅使啟動延時大幅度地縮短,而且對系統緩存容量的需求也大大降低。

 


流式傳輸

  傳統的網絡傳輸音視頻等多媒體信息的方式是完全下載后再播放,下載常常要花數分鍾甚至數小時。

  采用流媒體技術,就可實現流式傳輸,將聲音、影像或動畫由服務器向用戶計算機進行連續、不間斷傳送,用戶不必等到整個文件全部下載完畢,而只需經過幾秒或十幾秒的啟動延時即可進行觀看。當聲音視頻等在用戶的機器上播放時,文件的剩余部分還會從服務器上繼續下載。

  如果將文件傳輸看作是一次接水的過程,過去的傳輸方式就像是對用戶做了一個規定,必須等到一桶水接滿才能使用它,這個等待的時間自然要受到水流量大小和桶的大小的影響。

  流式傳輸,就比如,打開水頭龍,等待一小會兒,水就會源源不斷地流出來,而且可以隨接隨用,因此,不管水流量的大小,也不管桶的大小,用戶都可以隨時用上水。從這個意義上看,流媒體這個詞是非常形象的。

  流式傳輸時,聲音、影像或動畫等時基媒體由音視頻服務器向用戶計算機的連續、實時傳送,用戶不必等到整個文件全部下載完畢,而只需經過幾秒或十數秒的啟動延時即可進行觀看。當聲音等時基媒體在客戶機上播放時,文件的剩余部分將在后台從服務器內繼續下載。流式不僅使啟動延時成十倍、百倍地縮短,而且不需要太大的緩存容量。流式傳輸避免了用戶必須等待整個文件全部從Internet上下載才能觀看的缺點。

  在運用流媒體技術時,音視頻文件要采用相應的格式,不同格式的文件需要用不同的播放器軟件來播放,所謂“一把鑰匙開一把鎖”。

  流式傳輸定義很廣泛,現在主要指通過網絡傳送媒體(如視頻、音頻)的技術總稱。其特定含義為通過Internet 將影視節目傳送到PC機。

  實現流式傳輸有兩種方法實時流式傳輸(Realtime streaming)和順序流式傳輸(progressive streaming)。

  順序流式傳輸是順序下載,在下載文件的同時用戶可觀看在線媒體,在給定時刻,用戶只能觀看已下載的那部分,而不能跳到還未下載的前頭部分,順序流式傳輸不象實時流式傳輸在傳輸期間根據用戶連接的速度做調整。

  由於標准的HTTP服務器可發送這種形式的文件,也不需要其他特殊協議,它經常被稱作HTTP流式傳輸。

  順序流式傳輸比較適合高質量的短片段,如片頭、片尾和廣告,由於該文件在播放前觀看的部分是無損下載的,這種方法保證電影播放的最終質量。這意味着用戶在觀看前,必須經歷延遲,對較慢的連接尤其如此。對通過調制解調器發布短片段,順序流式傳輸顯得很實用,它允許用比調制解調器更高的數據速率創建視頻片段。盡管有延遲,畢竟可讓你發布較高質量的視頻片段。

  順序流式文件是放在標准HTTP 或 FTP服務器上,易於管理,基本上與防火牆無關。

  但是順序流式傳輸不適合長片段和有隨機訪問要求的視頻,如:講座、演說與演示。它也不支持現場廣播,嚴格說來,它是一種點播技術。 

  實時流式傳輸指保證媒體信號帶寬與網絡連接配匹,使媒體可被實時觀看到。

  實時流與HTTP流式傳輸不同,他需要專用的流媒體服務器與傳輸協議。實時流式傳輸總是實時傳送,特別適合現場事件,也支持隨機訪問,用戶可快進或后退以觀看前面或后面的內容。

  理論上,實時流一經播放就可不停止,但實際上,可能發生周期暫停。實時流式傳輸必須配匹連接帶寬,這意味着在以調制解調器速度連接時圖象質量較差。而且,由於出錯丟失的信息被忽略掉,網絡擁擠或出現問題時,視頻質量很差。如欲保證視頻質量,順序流式傳輸也許更好。

  實時流式傳輸需要特定服務器,如QuickTime Streaming Server、RealServer與Windows Media Server。這些服務器允許你對媒體發送進行更多級別的控制,因而系統設置、管理比標准HTTP服務器更復雜。

  實時流式傳輸還需要特殊網絡協議,如:RTSP (Realtime Streaming Protocol)或MMS (Microsoft Media Server)。這些協議在有防火牆時有時會出現問題,導致用戶不能看到一些地點的實時內容。

  一般說來,如視頻為實時廣播,或使用流式傳輸媒體服務器,或應用如RTSP的實時協議,即為實時流式傳輸。如使用HTTP服務器,文件即通過順序流發送。采用那種傳輸方法依賴你的需求。當然,流式文件也支持在播放前完全下載到硬盤。

  流媒體傳輸的過程

   


流媒體影響力

  由於流媒體技術在一定程度上突破了網絡帶寬對多媒體信息傳輸的限制,因此被廣泛運用於網上直播、網絡廣告、視頻點播、遠程教育、遠程醫療、視頻會議、企業培訓、電子商務等多種領域。

  流媒體技術為傳統媒體在互聯網上開辟更廣闊的空間提供了可能。廣播電視媒體節目的上網更為方便,聽眾、觀眾在網上點播節目更為簡單,網上音視頻直播也將得到廣泛運用。

  流媒體技術將過去傳統媒體的“推”式傳播,變為受眾的“拉” 式傳播,受眾不再是被動地接受來自廣播電視的節目,而是在自己方便的時間來接收自己需要的信息。這將在一定程度上提高受眾的地位,使他們在新聞傳播中占有主動權,也使他們的需求對新聞媒體的活動產生更為直接的影響。

  流媒體技術的廣泛運用也將模糊廣播、電視與網絡之間的界限,網絡既是廣播電視的輔助者與延伸者,也將成為它們的有力的競爭者。

  利用流媒體技術,網絡將提供新的音視頻節目樣式,也將形成新的經營方式,例如收費的點播服務。

  發揮傳統媒體的優勢,利用網絡媒體的特長,保持媒體間良好的競爭與合作,是未來網絡的發展之路,也是未來傳統媒體的發展之路。

  流媒體技術的運用只是一個開端,無數新的技術還在前面等着我們。

 


流媒體技術原理

  流式傳輸的實現需要緩存。

  因為Internet以包傳輸為基礎進行斷續的異步傳輸,對一個實時A/V源或存儲的A/V文件,在傳輸中它們要被分解為許多包,由於網絡是動態變化的,各個包選擇的路由可能不盡相同,故到達客戶端的時間延遲也就不等,甚至先發的數據包還有可能后到。為此,使用緩存系統來彌補延遲和抖動的影響,並保證數據包的順序正確,從而使媒體數據能連續輸出,而不會因為網絡暫時擁塞使播放出現停頓。

  通常高速緩存所需容量並不大,因為高速緩存使用環形鏈表結構來存儲數據:通過丟棄已經播放的內容,流可以重新利用空出的高速緩存空間來緩存后續尚未播放的內容。  

   流式傳輸的實現需要合適的傳輸協議。由於TCP需要較多的開銷,故不太適合傳輸實時數據。

  在流式傳輸的實現方案中,一般采用HTTP/TCP來傳輸控制信息,而用RTP/UDP來傳輸實時聲音數據。

  流式傳輸的過程一般是這樣的:用戶選擇某一流媒體服務后,Web瀏覽器與Web服務器之間使用HTTP/TCP交換控制信息,以便把需要傳輸的實時數據從原始信息中檢索出來;然后客戶機上的Web瀏覽器啟動A/VHelper程序,使用HTTP從Web服務器檢索相關參數對Helper程序初始化。這些參數可能包括目錄信息、A/V數據的編碼類型或與A/V檢索相關的服務器地址。  
  A/VHelper程序及A/V服務器運行實時流控制協議(RTSP),以交換A/V傳輸所需的控制信息。與CD播放機或VCRs所提供的功能相似,RTSP提供了操縱播放、快進、快倒、暫停及錄制等命令的方法。A/V服務器使用RTP/UDP協議將A/V數據傳輸給A/V客戶程序(一般可認為客戶程序等同於Helper程序),一旦A/V數據抵達客戶端,A/V客戶程序即可播放輸出。

  需要說明的是,在流式傳輸中,使用RTP/UDP和RTSP/TCP兩種不同的通信協議與A/V服務器建立聯系,是為了能夠把服務器的輸出重定向到一個不同於運行A/VHelper程序所在客戶機的目的地址。實現流式傳輸一般都需要專用服務器和播放器

 


流媒體傳輸模式

  流媒體之所以能夠實現多媒體數據的實時播放是采用了專門的網絡控制協議和數據傳輸機制。服務器端有專門的流媒體發布系統,而客戶端則有專門的播放器,這兩部分都需要通過數據緩存區進行數據的緩存。

  與普通的分組交換網絡不同,流媒體系統的緩存區中的數據在數據傳輸過程中是動態的,也可成為是交換狀態的,數據以堆棧方式進出緩沖區,而不需要等待數據全部達到客戶機后才從緩沖區中被釋放出來,由於數據緩沖區中的數據是“流動”的,再加上數據的播放需要維持一個穩定的數據輸出速度,隨時都要求緩沖區有相應的數據提供給播放器,如果沒有相應的數據,則會出現內容播放過程中的暫停和畫面的條約。

  出現前一種情況一般是由於網絡傳輸速度跟不上數據的播放速度,而發生了數據的下溢,而后一種情況的發生是由於網絡傳輸速度過快,超過了播放的速度,而又沒有適當的傳輸控制而造成的數據上溢。

 


RTP協議

  RTP 協議是 IETF 在 1996 年提出的適合實時數據傳輸的新型協議。

  RTP 協議實際上是由實時傳輸協議RTP(Real-time Transport Protocol)實時傳輸控制協議RTCP(Real-time Transport Control Protocol)兩部分組成。

  RTP 協議基於多播或單播網絡為用戶提供連續媒體數據的實時傳輸服務;RTCP 協議是 RTP 協議的控制部分,用於實時監控數據傳輸質量,為系統提供擁塞控制和流控制。

  每一個 RTP 數據包都由固定包頭(Header )和載荷(Payload)兩個部分組成,其中包頭前12個字節的含義是固定的,而載荷則可以是音頻或視頻數據。

 


H.264/AVC

  H.264/AVC 是ITU-T 視頻編碼專家組(VCEG)和ISO/IEC 動態圖像專家組(MPEG )聯合組成的聯合視頻組(JVT)共同努力制訂的新一代視頻編碼標准

  它最大的優勢是具有很高的數據壓縮比率,在同等圖像質量的條件下,H.264 的壓縮比是MPEG-2 的2 倍以上,是 MPEG-4的1.5~2 倍。同時,采用視頻編碼層(VCL)和網絡提取層(NAL )的分層設計,非常適用於流媒體技術進行實時傳輸。基於 RTP 協議,對 H.264 視頻進行流式打包傳輸,便可實現一個基本的流媒體服務器功能,同時利用開源播放器VLC 作為接收端,就可構成一個完整的H.264 視頻傳輸系統。

H.264 基本流的結構

  H.264 的基本流(elementary stream,ES)的結構分為兩層,包括視頻編碼層(VCL)網絡適配層(NAL)。

  視頻編碼層負責高效的視頻內容表示,而網絡適配層負責以網絡所要求的恰當的方式對數據進行打包和傳送。

  引入NAL並使之與VCL分離帶來的好處包括兩方面:

  1. 使信號處理和網絡傳輸分離,VCL 和NAL 可以在不同的處理平台上實現;
  2. VCL 和NAL 分離設計,使得在不同的網絡環境內,網關不需要因為網絡環境不同而對VCL比特流進行重構和重編碼。

  H.264 的基本流由一系列NALU (Network Abstraction Layer Unit )組成,不同的NALU數據量各不相同。

  H.264 草案指出,當數據流是儲存在介質上時,在每個NALU 前添加起始碼:0x000001,用來指示一個 NALU的起始和終止位置。

  在這樣的機制下,解碼器在碼流中檢測起始碼,作為一個NALU得起始標識,當檢測到下一個起始碼時,當前NALU結束。每個NALU單元由一個字節的 NALU頭(NALU Header)和若干個字節的載荷數據(RBSP)組成。

  H.264流媒體傳輸系統框架

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM