流式下載
如果想要邊下載邊播放的話,就推薦你用流式下載。
如果是其它無法線上播放的資源,推薦使用非流式下載。
媒體是指採用流式傳輸的方式在Internet播放的媒體格式。
流式傳輸方式則是將整個A/V及3D等多媒體檔案經過特殊的壓縮方式分成一個個壓縮檔,由視頻伺服器向用戶計算機連續、實時傳送。在採用流式傳輸方式的系統中,用戶不必像採用下載方式那樣等到整個檔案全部下載完畢,而是只需經過幾秒或幾十秒的啟動延時即可在用戶的計算機上利用解壓設備(硬體或軟體)對壓縮的A/V、3D等多媒體檔案解壓後進行播放和觀看。此時多媒體檔案的剩餘部分將在後台的伺服器內繼續下載。
與單純的下載方式相比,這種對多媒體檔案邊下載邊播放的流式傳輸方式不僅使啟動延時大幅度地縮短,而且對系統快取容量的需求也大大降低。(ChinaByte)
由來
一、流式傳輸的基礎 在網路上傳輸音/視頻等多媒體信息目前主要有下載和流式傳輸兩種方案。A/V檔案一般都較大,所以需要的存儲容量也較大;同時由於網路頻寬的限制,下載常常要花數分鐘甚至數小時,所以這種處理方法延遲也很大。流式傳輸時,聲音、影像或動畫等時基媒體由音視頻伺服器向用戶計算機的連續、實時傳送,用戶不必等到整個檔案全部下載完畢,而只需經過幾秒或十數秒的啟動延時即可進行觀看。當聲音等時基媒體在客戶機上播放時,檔案的剩餘部分將在後台從伺服器內繼續下載。流式不僅使啟動延時成十倍、百倍地縮短,而且不需要太大的快取容量。流式傳輸避免了用戶必須等待整個檔案全部從Internet上下載才能觀看的缺點。
流媒體指在Internet/Intranet中使用流式傳輸技術的連續時基媒體,如:音頻、視頻或多媒體檔案。流式媒體在播放前並不下載整個檔案,只將開始部分內容存入記憶體,流式媒體的數據流隨時傳送隨時播放,只是在開始時有一些延遲。流媒體實現的關鍵技術就是流式傳輸。
流式傳輸定義很廣泛,現在主要指通過網路傳送媒體(如視頻、音頻)的技術總稱。其特定含義為通過Internet 將影視節目傳送到PC機。實現流式傳輸有兩種方法:實時流式傳輸(Realtime streaming)和順序流式傳輸(progressive streaming)。一般說來,如視頻為實時廣播,或使用流式傳輸媒體伺服器,或套用如RTSP的實時協定,即為實時流式傳輸。如使用HTTP伺服器,檔案即通過順序流傳送。採用那種傳輸方法依賴你的需求。當然,流式檔案也支持在播放前完全下載到硬碟。
順序流式傳輸
順序流式傳輸是順序下載,在下載檔案的同時用戶可觀看再線媒體,在給定時刻,用戶只能觀看已下載的那部分,而不能跳到還未下載的前頭部分,順序流式傳輸不象實時流式傳輸在傳輸期間根據用戶連線的速度做調整。由於標準的HTTP伺服器可傳送這種形式的檔案,也不需要其他特殊協定,它經常被稱作HTTP流式傳輸。順序流式傳輸比較適合高質量的短片段,如片頭、片尾和廣告,由於該檔案在播放前觀看的部分是無損下載的,這種方法保證電影播放的最終質量。這意味著用戶在觀看前,必須經歷延遲,對較慢的連線尤其如此。對通過數據機發布短片段,順序流式傳輸顯得很實用,它允許用比數據機更高的數據速率創建視頻片段。儘管有延遲,畢竟可讓你發布較高質量的視頻片段。順序流式檔案是放在標準HTTP 或 FTP伺服器上,易於管理,基本上與防火牆無關。順序流式傳輸不適合長片段和有隨機訪問要求的視頻,如:講座、演說與演示。它也不支持現場廣播,嚴格說來,它是一種點播技術。
實時流式傳輸
實時流式傳輸指保證媒體信號頻寬與網路連線配匹,使媒體可被實時觀看到。實時流與HTTP流式傳輸不同,他需要專用的流媒體伺服器與傳輸協定。實時流式傳輸總是實時傳送,特別適合現場事件,也支持隨機訪問,用戶可快進或後退以觀看前面或後面的內容。理論上,實時流一經播放就可不停止,但實際上,可能發生周期暫停。實時流式傳輸必須配匹連線頻寬,這意味著在以數據機速度連線時圖象質量較差。而且,由於出錯丟失的信息被忽略掉,網路擁擠或出現問題時,視頻質量很差。如欲保證視頻質量,順序流式傳輸也許更好。實時流式傳輸需要特定伺服器,如QuickTime Streaming Server、RealServer與Windows Media Server。這些伺服器允許你對媒體傳送進行更多級別的控制,因而系統設定、管理比標準HTTP伺服器更複雜。實時流式傳輸還需要特殊網路協定,如:RTSP (Realtime Streaming Protocol)或MMS (Microsoft Media Server)。這些協定在有防火牆時有時會出現問題,導致用戶不能看到一些地點的實時內容。
原理
流式傳輸的實現需要快取。因為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程式所在客戶機的目的地址。實現流式傳輸一般都需要專用伺服器和播放器。
智慧型流技術
今天,28.8Kbps數據機是Internet連線的基本速率,cable modem、 ADSL、DSS、ISDN等發展快,內容提供商不得不要么限制發布媒體質量,要么限制連線人數。根據RealNetwork站點統計,對28.8Kbps數據機,實際流量為10bps到26Kbps,呈鐘形分布,高峰在20Kbps。這意味著若內容提供商選擇20Kbps固定速率,將有大量用戶得不到好質量信號,並可能停止媒體流而引起客戶端再次緩衝,直到接收足夠數據。一種解決方法是伺服器減少傳送給客戶端的數據而阻止再緩衝,在RealSystem 5.0中,這種方法稱為\\\"視頻流瘦化\\\"。這種方法的限制是RealVideo檔案為一種數據速率設計,結果可通過抽取內部幀擴展到更低速率,導致質量較低。離原始數據速率越遠,質量越差。另一種解決方法是根據不同連線速率創建多個檔案,根據用戶連線,伺服器傳送相應檔案,這種方法帶來製作和管理上的困難,而且,用戶連線是動態變化的,伺服器也無法實時協調。 智慧型流技術通過兩種途徑克服頻寬協調和流瘦化。首先,確立一個編碼框架,允許不同速率的多個流同時編碼,合併到同一個檔案中;第二,採用一種複雜客戶/伺服器機制探測頻寬變化。
針對軟體、設備和數據傳輸速度上的差別,用戶以不同頻寬瀏覽音視頻內容。為滿足客戶要求,Progressive networks公司編碼、記錄不同速率下媒體數據,並保存在單一檔案中,此檔案稱為智慧型流檔案,即創建可擴展流式檔案。當客戶端發出請求,它將其頻寬容量傳給伺服器,媒體伺服器根據客戶頻寬將智慧型流檔案相應部分傳送給用戶。以此方式,用戶可看到最可能的優質傳輸,製作人員只需要壓縮一次,管理員也只需要維護單一檔案,而媒體伺服器根據所得頻寬自動切換。智慧型流通過描述I現實世界Internet上變化的頻寬特點來傳送高質量媒體並保證可靠性,並對混合連線環境的內容授權提供了解決方法。流媒體實現方式如下: * 對所有連線速率環境創建一個檔案 * 在混合環境下以不同速率傳送媒體 * 根據網路變化,無縫切換到其它速率 *關鍵幀優先,音頻比部分幀數據重要 * 向後兼容老版本RealPlayer。
智慧型流在RealSystem G2中是對所謂自適應流管理(ASM)API的實現,ASM描述流式數據的類型,輔助智慧型決策,確定傳送那種類型數據包。檔案格式和廣播外掛程式定義了ASM規則。用最簡單的形式分配預定義屬性和平均頻寬給數據包組。對高級形式,ASM規則允許外掛程式根據網路條件變化改變數據包傳送。每個ASM規則可有一定義條件的演示式,如演示式定義客戶頻寬是5,000到15,000Kbps,包損失小於2.5%。如此條件描述了客戶當前網路連線,客戶就訂閱此規則。定義在規則中的屬性有助於RealServer有效傳送數據包,如網路條件變化,客戶就訂閱一個不同規則。