流媒體報告1.1 概述所謂流媒體是指採用串流的方式在在網路上傳輸的媒體格式,如音頻、視頻或多媒體檔案。流媒體在播放前並不下載整個檔案,只將開始部分內容存入記憶體,在電腦中對資料包進行緩衝並使媒體資料正確地輸出。流媒體的資料流隨時傳送隨時播放,只是在開始時有些延遲。顯然,流媒體實現的關鍵技術就是串流,串流主要指將整個音頻和視頻及三維媒體等多媒體檔案經過特定的壓縮方式解析成一個個壓縮包,由視頻伺服器向使用者順序或即時傳送。在採用串流方式的系統中,使用者不必像採用下載方式那樣等到整個檔案全部下載完畢,而是只需經過幾秒或幾十秒的啟動延時即可利用解壓裝置對壓縮的多媒體檔案解壓後進行播放和觀看。此時多媒體檔案的剩餘部分將在背景伺服器內繼續下載。該技術先在電腦上創造一個緩衝區,於播放前預先下載一段資料作為緩衝,當網路實際連線速度小於播放所耗用資料的速度時,播放程式就會取用這一小段緩衝區內的資料,避免播放的中斷,也使得播放品質得以維持。1.2 流媒體檔案格式1.2.1 RA的音頻格式和RM視頻影像格式RA格式是Real Networks公司所開發的一種新型流式音頻Real Audio檔案格式。RM格式則是流式視頻Real Video檔案格式,主要用來在低速率的網路上即時傳輸活動視頻影像,可以根據網路資料轉送速率的不同而採用不同的壓縮比率,在資料轉送過程中邊下載邊播放視頻影像,從而實現影像資料的即時傳送和播放。用戶端可以通過Real Player播放器進行播放。 1.2.2 ASF格式Microsoft Media technology的ASF也是流行一種網上流媒體格式。它的使用與Windows作業系統是分不開的,其播放器Microsoft Media Player已經與Windows捆綁在一起,不僅用於Web方式播放,還可以用於在瀏覽器以外的地方來播放影音檔案。 1.2.3 H.263格式 也是3GPP的規範之一,副檔名為AVI,特徵有:1.關於碼率低於64kbit/s的窄帶通道視頻編碼建議。2.在H.261建議的基礎上發展起來,其楨頻為每秒10楨以上3.映像解析度為175X144像素(QCIF),或128X96像素(Sub-QCIF) 1.2.4Nancy格式 只有Mpeg-4方式的1/10以下的負荷Mpeg-4使用小數點運算的離散餘弦變換(DCT)、動向預測(motion estimate)、哈夫曼( Huffman )符號和run length符號化方式。Nancy Codec 只要求4種操作、比較和位元轉換( bit-shift ) 。而不採用DCT,ME, and Run Length. 可以先行在3G服務之前提供視頻內容服務,譬如說影音郵件,視頻下載等。特徵1.軟體即時編碼 2.最輕量的編碼/解碼器,低消耗電力,高容錯性 3.極高性的價比,低成本的基礎投資但是Nancy不是3GPP的解決方案。 1.2.5 比較媒體類型 優點 缺點 3GPP標準 建議RM 成熟標準 壓縮演算法複雜 是 推薦使用MPEG-4 成熟標準 壓縮演算法複雜 是 推薦使用H.263 成熟標準 壓縮演算法複雜 是 推薦使用NANCY 壓縮演算法簡單 非標準 否 不推薦使用 1.3 流媒體技術的主要解決方案 到目前為止,使用較多的流媒體格式主要有Real Networks公司的Real system、Microsoft公司的Windows Media Technology和Apple公司的QuickTime,它們是網上流媒體傳輸系統的三大主流。 1.3.1 Real system Real System由媒體內容製作工具Real Producer、伺服器端Real Server、用戶端軟體(Client **)三部分組成。其流媒體檔案包括RealAudio、Real Video、Real Presentation和Real Flash四類檔案,分別用於傳送不同的檔案。Real System採用Sure Stream技術,自動地並持續地調整資料流的流量以適應實際應用中的各種不同網路頻寬需求,輕鬆在網上實現視音頻和三維動畫的回放。 1.3.2 Windows Media Technology Windows Media Technology是Microsoft提出的資訊流式播放方案,其主要目的是在Internet和Internet上實現包括音頻、視頻資訊在內的多媒體流資訊的傳輸。其核心是ASF(Advanced Stream Format)檔案,ASF是一種包含音頻、視頻、映像以及控制命令、指令碼等多媒體資訊在內資料格式,通過分成一個個的網路資料包在Internet上傳輸,實現流式多媒體內容發布。因此,我們把在網路上傳輸的內容就稱為ASF Stream。ASF支援任意的壓縮/解壓縮編碼方式,並可以使用任何一種底層網路傳輸協議,具有很大的靈活性。Microsoft已將Windows Media技術捆綁在Windows 2000中,並打算將ASF用作將來的Windows版本中多媒體內容的標準檔案格式,這無疑將對Internet特別是流式技術的應用和發展產生重大影響。 Windows Media Technology由Media Tools、Media Server和Media Player工具構成。Media Tools是整個方案的重要組成部分,它提供了一系列的工具協助使用者產生ASF格式的多媒體流(包括即時產生的多媒體流),這些工具可以分為建立工具和編輯工具兩種,建立工具主要用於產生ASF格式的多媒體流;編輯工具主要對ASF格式的多媒體流資訊進行編輯與管理,包括後期製作編輯工具,以及對ASF流進行檢查並改正錯誤的ASF Check。Media Server可以保證檔案的保密性,不被下載,並使每個使用者都能以最佳的影片品質瀏覽網頁,具有多種檔案發布形式和監控管理功能。Media Player則提供強大的流資訊的播放功能。 1.3.3 QuickTime Apple公司於1991年開始發布QuickTime,它幾乎支援所有主流的個人計算平台和各種格式的靜態影像檔、視頻和動畫格式,具有內建Web瀏覽器外掛程式(Plug-in)技術,支援IETF(Internet Engineering Task Force)流標準以及RTP、RTSP、SDP、FTP和HTTP等網路通訊協定。 QuickTime包括伺服器QuickTime Streaming Server、帶編輯功能的播放器QuickTime Player(免費)、製作工具QuickTime 4 Pro、映像瀏覽器Picture Viewer以及使Internet瀏覽器能夠播放QuickTime影片的QuickTime 外掛程式。QuickTime 4支援兩種類型的流:即時資料流和快速啟動流。使用即時資料流的 QuickTime 影片必須從支援 QuickTime 流的伺服器上播放,是真正意義上的Streaming Media,使用即時傳輸協議(RTP)來傳輸資料。快速啟動影片可以從任何Web Server上播放,使用超文字傳輸通訊協定 (HTTP)(HTTP)或檔案傳輸通訊協定(FTP)來傳輸資料。1.4 流媒體的傳輸1.4.1 預先處理 多媒體資料必須進行預先處理才能適合串流,這是因為目前的網路頻寬對多媒體巨大的資料流量來說還顯得遠遠不夠。預先處理主要採用先進高效的壓縮演算法,將多媒體資訊進行壓縮。壓縮後的編碼資料可以利用文本/圖形/指令碼形式進行多路傳輸,並且放在能夠實現流的方式的檔案結構中,也就意味著該檔案有時間標記以及其他易於實現流的方式的特點,然後再在用戶端進行解碼。編碼過程是一種藝術,應該考慮不同編碼速度的定製效能、包損失的容錯性與網路的頻寬波動,最低速度下的播放效果、編碼/流式傳送的成本、流的控制以及其他方面。1.4.2 緩衝 串流的實現需要緩衝。這是因為Internet以包傳輸為基礎進行斷續的非同步傳輸,對一個即時多媒體檔案,在傳輸中它們要被分解為許多包,由於網路是動態變化的,各個包選擇的路由可能不盡相同,故到達用戶端的時間延遲也就不等,甚至先發的資料包還有可能後到。為此,使用緩衝系統來彌補延遲和抖動的影響,並保證資料包的順序正確,從而使媒體資料能連續輸出,而不會因為網路暫時擁塞使播放出現停頓。通常快取所需容量並不大,這是因為快取使用環形鏈表結構來儲存資料:通過丟棄已經播放的內容,"流"可以重新利用空出的快取空間來緩衝後續尚未播放的內容。1.4.3 傳輸過程 使用者選擇某一流媒體服務後,Web瀏覽器與Web伺服器之間使用HTTP/TCP交換控制資訊,以便把需要傳輸的即時資料從原始資訊中檢索出來;然後客戶機上的Web瀏覽器 啟動客戶程式,使用HTTP從Web伺服器檢索相關參數對客戶程式初始化。這些參數可能包括目錄資訊、資料的編碼類別型和與檢索相關的伺服器位址。 客戶程式及伺服器運行即時資料流控制協議(RTSP),以交換傳輸所需的控制資訊。與CD播放機或VCRs所提供的功能相似,RTSP提供了操縱 播放、快進、快倒、暫停及錄製等命令的方法。 伺服器使用RTP/UDP協議將資料轉送給客戶程式,一旦資料抵達用戶端,客戶程式即可播放輸出。1.5 串流協議 串流的實現有特定的即時傳輸協議,其中包括Internet本身的多媒體傳輸協議,以及一些即時資料流式傳輸協議等,只有採用合適的協議才能更好的發揮流媒體的作用,保證傳輸品質。IETF(Internet工程工作群組,Internet規劃與發展的主要標準化組織)已經設計出幾種支援流媒體傳輸的協議。主要有用於Internet上針對多媒體資料流的即時傳輸協議RTP(Real-time Transport Protocol)、與RTP一起提供流量控制和擁塞控制服務的即時傳輸控制通訊協定RTCP(Real-time Transport Control Protocol)、定義了一對多的應用程式如何有效地通過IP網路傳送多媒體資料的即時資料流通訊協定RTSP(Real-time Streaming Protocol)。 1.5.1 即時傳輸協議RTP RTP(Real-time Transport Protocol)是用於Internet 上針對多媒體資料流的一種傳輸協議。RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間資訊和實現流同步。RTP通常使用UDP來傳送資料,但RTP也可以在TCP或ATM等其他協議之上工作。當應用程式開始一個RTP 會話時將使用兩個連接埠:一個給RTP,一個給RTCP。RTP本身並不能為按順序傳送的資料包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP 提供這些服務。通常RTP演算法並不作為一個獨立的網路層來實現,而是作為應用程式代碼的一部分。1.5.2 即時傳輸控制通訊協定RTCP RTCP(Real-time Transport Control Protocol)和RTP一起提供流量控制和擁塞控制服務。在RTP會話期間,各參與者周期性地傳送RTCP包。RTCP包中含有已發送的資料包的數量、丟失的資料包的數量等統計資料,因此,伺服器可以利用這些資訊動態地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,它們能以有效反饋和最小的開銷使傳輸效率最佳化,因而特別適合傳送網上的即時資料。 1.5.3 即時資料流通訊協定RTSP 即時資料流通訊協定RTSP(Real Time Streaming Protocol)是 由Real Networks和Netscape共同提出的,該協議定義了一對多應用程式如何有效地通過IP網路傳送多媒體資料。RTSP在體繫結構上位於RTP和RTCP之上,它使用TCP或RTP完成資料轉送。HTTP與RTSP相比,HTTP傳送HTML,而RTP傳送的是多媒體資料。HTTP請求由客戶機發出,伺服器作出響應;使用RTSP時,客戶機和伺服器都可以發出請求,即RTSP可以是雙向的。1.5.4 資源預訂協議RSVP RSVP(Resource Reserve Protocol)是正在開發的Internet上的資源預訂協議,使用RSVP 能在一定程度上為流媒體的傳輸提供QoS。