流媒體傳輸的網絡協議
TCP需要較多的開銷,故不太適合傳輸實時數據;流式傳輸一般采用HTTP/TCP(RTCP)來傳輸控制信息,而用RTP/UDP(RTP)來傳輸實時聲音數據。
實時傳輸協議RTP
實時傳輸協議RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間信息和實現流同步;RTP通常使用UDP來傳送數據;當應用程序開始一個RTP會話時將使用兩個端口:一個給RTP,一個給RTCP。RTP本身并不能為按順序傳送數據包提供可靠的傳送制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務;通常RTP算法并不作為一個獨立的網絡層來實現,而是作為應用程序代碼的一部分。
實時傳輸控制協議RTCP
實時傳輸控制協議RTCP和RTP一起提供流量控制和擁塞控制服務;在RTP會話期間各參與者周期性地傳送RTCP包;RTCP包中含有已發送的數據包的數量、丟失的數據包數量等統計資料,因此,服務器可以利用這些信息動態地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,它們能以有效的反饋和最小的開銷使傳輸效率最佳化,因而特適合傳送網上的實時數據。
實時流協議RTSP
實時流協議RTSP定義了一對多應用程序如何有效地通過IP網絡傳送多媒體數據;RTSE在體系結構上位于RTP和RTCP之上,它使用TCP或RTP完成數據傳輸;HTTP與RTSP相比,HTTP傳送HTML超鏈接文檔,而RTSP傳送的是多媒體數據;HTTP請求由客戶機發出,服務器做出響應;使用RTSP時,客戶機和服務器都可以發出請求,即RTSP可以是雙向的。點對點的手機可視通話,必須在手機終端實現RTSP。
文件格式
在運用流媒體技術時,音視頻文件要采用相應的格式,不同格式的文件需要用不同的播放器軟件來播放。采用流媒體技術的音視頻文件主要有以下幾種:
①微軟的ASF(advanced stream format)。這類文件的擴展名是.asf和.wmv,與它對應的播放器是微軟公司的Media Player。用戶可以將圖形、聲音和動畫數據組合成一個ASF格式的文件,也可以將其他格式的視頻和音頻轉換為ASF格式,而且用戶還可以通過聲卡和視頻捕獲卡將諸如麥克風、錄像機等外設的數據保存為ASF格式。
②RealNetworks公司的ReaIMedia。它包括RealAudio、RealVideo和RealFlash三類文件,其中RealAudio用來傳輸接近CD音質的音頻數據,RealVideo用來傳輸不間斷的視頻數據,RealFlash則是ReaINetworks公司與Macromedia公司聯合推出的一種高壓縮比的動畫格式,這類文件的擴展名是.rm、.ra、.rmvb,文件對應的播放器是ReaIPlayer。
③蘋果公司的QuickTime。這類文件擴展名通常是.mov,它所對應的播放器是QuickTime。
此外,MPEG、AVI、DVI、SWF等都是適用于流媒體技術的文件格式。
系統組成
流媒體系統包括以下5個方面的內容:
(1)編碼工具:用于創建、捕捉和編輯多媒體數據,形成流媒體格式。
(2)流媒體數據。
(3)服務器:存放和控制流媒體的數據。
(4)網絡:適合多媒體傳輸協議甚至是實時傳輸協議的網絡。
(5)播放器:供客戶端瀏覽流媒體文件。
這5個部分有些是服務器端需要的,有些是客戶端需要的,而且不同的流媒體標準和不同公司的解決方案會在某些方面有所不同。
關鍵技術
流媒體技術不是一種單一的技術,它是網絡技術及視/音頻技術的有機結合。在網絡上實現流媒體技術,需要解決流媒體的制作、發布、傳輸及播放等方面的問題,而這些問題則需要利用視音頻技術及網絡技術來解決,具體如下:
(1)流媒體制作技術方面解決的問題
在網上進行流媒體傳輸,所傳輸的文件必須制作成適合流媒體傳輸的流媒體格式文件。因為通常格式存儲的多媒體文件容量十分大,若要在現有的窄帶網絡上傳輸則需要花費十分長的時間,若遇網絡繁忙,還將造成傳輸中斷。另外,通常格式的流媒體也不能按流媒體傳輸協議進行傳輸。因此,對需要進行流媒體格式傳輸的文件應進行預處理,將文件壓縮生成流媒體格式文件。這里應注意兩點:一是選用適當的壓縮算法進行壓縮,這樣生成的文件容量較小。二是需要向文件中添加流式信息。
(2)流媒體傳輸方面需解決的問題
流媒體的傳輸需要合適的傳輸協議,在internet上的文件傳輸大部分都是建立在tcp協議的基礎上,也有一些是以ftp傳輸協議的方式進行傳輸,但采用這些傳輸協議都不能實現實時方式的傳輸。隨著流媒體技術的深入研究,實時傳輸協議。
為何要在udp協議而不在tcp協議上進行實時數據的傳輸呢?這是因為udp和tcp協議在實現數據傳輸時的可靠性有很大的區別。tcp協議中包含了專門的數據傳送校驗機制,當數據接受方收到數據后,將自動向發送方發出確認信息,發送方在接收到確認信息后才繼續傳送數據,否則將一直處于等待狀態。而udp協議則不同,udp協議本身并不能做任何校驗。由此可以看出,tcp協議注重傳輸質量,而udp協議則注重傳輸速度.因此,對于對傳輸質量要求不是很高,而對傳輸速度則有很高的要求的視音頻流媒體文件來說,采用udp協議則更合適。
(3)流媒體的傳輸過程中需要緩存的支持
因為interent是以包為單位進行異步傳輸的,因此多媒體數據在傳輸中要被分解成許多包,由于網絡傳輸的不穩定性,各個包選擇的路由不同,所以到達客戶端的時間次序可能發生改變,甚至產生丟包的現象.為此,必須采用緩存技術來糾正由于數據到達次序發生改變而產生的混亂狀況,利用緩存對到達的數據包進行正確排序,從而使視音頻數據能連續正確地播放.緩存 中存儲的是某一段時間內的數據,數據在緩存中存放的時間是暫時的,緩存中的數據也是動態的,不斷更新的.流媒體在播放時不斷讀取緩存中的數據進行播放,播放完后該數據便被立即清除,新的數據將存入到緩存中.因此,在播放流媒體文件時并不需占用太大的緩存空間。
(4)流媒體播放方面需解決的問題
流媒體播放需要瀏覽器的支持.通常情況下,瀏覽器是采用mime來識別各種不同的簡單文件格式,所有的web瀏覽器都是基于http協議,而http協議都內建有mime.所以web瀏覽器能夠通過http協議中內建的mime來標記web上眾多的多媒體文件格式,包括各種流媒體格式。