唯一有區別的就是在影音品質上。由於流媒體爲了解決帶寬問題以及縮短下載時間。而採用了較高的壓縮比,所以用戶感覺不到很是高的圖像和聲音質量。算法
一.流式傳輸
流式傳輸定義很是普遍,現在主要指經過網絡傳送媒體(如視頻、音頻)的技術總稱。瀏覽器
其特定含義爲經過Internet 將影視節目傳送到PC機。網絡
實現流式傳輸有兩種方法:實時流式傳輸(Realtime streaming)和順序流式傳輸(progressive streaming)。
1.順序流式傳輸
順序流式傳輸是順序下載,在下載文件的同一時候用戶可觀看再線媒體,在給定時刻,用戶僅僅能觀看已下載的那部分,而不能跳到還未下載的前頭部分,順序流式傳輸不象實時流式傳輸在傳輸期間依據用戶鏈接的速度作調整。由於標準的HTTPserver可發送這樣的形式的文件,也不需要其它特殊協議,它常常被稱做HTTP流式傳輸。順序流式傳輸比較適合高質量的短片斷,如片頭、片尾和廣告,由於該文件在播放前觀看的部分是無損下載的,這樣的方法保證電影播放的終於質量。這意味着用戶在觀看前,必須經歷延遲。對較慢的鏈接尤爲如此。tcp
對經過調制解調器公佈短片斷,順序流式傳輸顯得很是有用。它贊成用比調制解調器更高的數據速率建立視頻片斷。雖然有延遲,畢竟可以讓你公佈較高質量的視頻片斷。ide
順序流式文件是放在標準HTTP 或FTPserver上。易於管理,基本上與防火牆無關。順序流式傳輸不適合長片斷和有隨機訪問要求的視頻,如:講座、演說與演示。工具
它也不支持現場廣播,嚴格說來。它是一種點播技術。
2.實時流式傳輸
二.流媒體技術原理
多媒體數據必須進行預處理才幹適合流式傳輸,這是由於眼下的網絡帶寬對多媒體巨大的數據流兩來講還顯得遠遠不夠。預處理主要包含雙方面:一是減小質量。二是採用先進高效的壓縮算法。
流式傳輸的過程一般是這樣的:
(1)用戶選擇某一流媒體服務後。Web瀏覽器與Webserver之間使用HTTP/TCP交換控制信息。以便把需要傳輸的音/視頻流實時數據從原始信息中檢索出來。
(2)客戶機上的Web瀏覽器啓動client程序(即一些播放程序),使用HTTP從Webserver檢索相關參數對client程序進行初始化。這些參數可能包含文件夾信息、音/視頻數據的編碼類型或與A/V檢索相關的server地址。post
(3)client程序及流媒體server執行實時流控制協議(RTSP),以交換音/視頻數據流傳輸所需的控制信息。RTSP起到一個遙控器的做用,用於client對流媒體server的遠程控制,控制媒體數據流的播放、快進、快倒、暫停等命令。
(4)流媒體server使用RTP/UDP協議將音/視頻傳輸數據給client程序,一旦音/視頻數據抵達client,音/視頻客戶程序就能夠播放輸出。性能
需要說明的是,在流式傳輸中,使用RTP/UDP和RTSP/TCP兩種不一樣的通訊協議與流媒體server創建聯繫。是爲了可以把server的輸出重定向到一個不一樣於執行client程序所在客戶機的目的地址。實現流式傳輸通常都需要專用server和播放器。
三.支持流媒傳輸的網絡協議
1.實時傳輸協議RTP與RTCP
RTP(Real-timeTransportProtocol)是用於Internet上針對多媒體數據流的一種傳輸協議。RTP被定義爲在一對一或一對多的傳輸狀況下工做,其目的是提供時間信息和實現流同步。RTP一般使用UDP來傳送數據,但RTP也可以在TCP或ATM等其它協議之上工做。當應用程序開始一個RTP會話時將使用兩個端口:一個給RTP。一個給RTCP。學習
RTP自己並不能爲按順序傳送數據包提供可靠的傳送機制。也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務。一般RTP算法並不做爲一個獨立的網絡層來實現,而是做爲應用程序代碼的一部分。編碼
實時傳輸控制協議RTCP。RTCP(Real-timeTransportControlProtocol)和RTP一塊兒提供流量控制和擁塞控制服務。
在RTP會話期間,各參與者週期性地傳送RTCP包。RTCP包中含有已發送的數據包的數量、丟失的數據包的數量等統計資料,所以,server可以利用這些信息動態地改變傳輸速率。甚至改變有效載荷類型。
RTP和RTCP配合使用,它們能以有效的反饋和最小的開銷使傳輸效率最佳化,於是特別適合傳送網上的實時數據。
RTCP執行下列四大功能:
主要是提供數據公佈的質量反饋。是做爲RTP傳輸協議的一部分,與其它傳輸協議的流和堵塞控制有關。反饋對自適應編碼控制直接起做用。但IP組播經驗代表。從發送者收到反饋對診斷髮送錯誤是致關重要的。
給所有參加者發送接收反饋報告贊成問題觀察者預計那些問題是局部的,仍是全局的。
諸如IP組播等公佈機制使網絡服務提供商類團體可能接收反饋信息,充當第三方監控者來診斷網絡問題。
反饋功能由RTCP發送者和接收者報告執行。
RTCP帶有稱做規範名字(CNAME)的RTP源持久傳輸層標識。如發現衝突。或程序又一次啓動。既然SSRC標識可改變,接收者需要CNAME跟蹤參加者。接收者也需要CNAME 與相關RTP鏈接中給定的幾個數據流聯繫。
前兩種功能要求所有參加者發送RTCP包,所以,爲了RTP擴展到大規模數量,速率必須受到控制。讓每個參加者給其它參加者發送控制包。就大獨立觀察參加者數量。該數量用語計算包發送的速率。
第四個可選功能是傳送最小鏈接控制信息。如參加者辨識。最可能用在\"鬆散控制\"鏈接。那裏參加者自由進入或離開,沒有成員控制或參數協調,RTCP充當通往所有參加者的方便通道,但沒必要支持應用的所有控制通信要求。
2.實時流協議RTSP
實時流協議RTSP(RealTimeStreamingProtocol)是由RealNetworks和Netscape共同提出的,該協議定義了一對多應用程序怎樣有效地經過IP網絡傳送多媒體數據。RTSP在體系結構上位於RTP和RTCP之上,它使用TCP或RTP完畢傳輸數據。
HTTP與RTSP相比,HTTP傳送HTML。而RTP傳送的是多媒體數據。
HTTP請求由客戶機發出,server做出響應;使用RTSP時,客戶機和server都可以發出請求。即RTSP可以是雙向的。
3.資源預訂協議RSVP協議
由於音頻和視頻數據流比傳統數據對網絡的延時更敏感,要在網絡中傳輸高質量的音頻、視頻信息,除帶寬要求以外,還需其它不少其它的條件。RSVP(ResourceReserveProtocol)是正在開發的Internet上的資源預訂協議,使用RSVP預留一部分網絡資源(即帶寬),能在必定程度上爲流媒體的傳輸提供QoS。在某些試驗性的系統如網絡視頻會議工具vic中就集成了RSVP。
四.流媒體系統的組成
一個最主要的流媒體系統必須包含編碼器(Encoder)、流媒體server(Server)和client面播放器(Player)3個模塊。
模塊之間經過特定的協議互相通訊,並依照特定格式互相交換文件數據。當中編碼器用於將原始的音/視頻轉換成合適的流格式文件,server向client發送編碼後的媒體流,client播放器則負責解碼和播放接收到的媒體數據。
一、編碼器
編碼器的功能是對輸入的原始音、視頻信號進行壓縮編碼。不一樣的流媒體業務,對編碼器有不一樣的性能要求。
眼下常用的視頻編碼方案有MPEG-四、H.264和Microsoft公司的Windows Media Video採用的AC-1;音頻編碼方案有MP三、MPEG-二、AAC、AMR和AMR-WB等。多媒體編碼器所生成的碼流僅僅包含了解碼該碼流所必需的信息,不包含媒體間的同步、隨機訪問等系統信息。所以編碼後的多媒體數據還要被組織成爲流媒體文件格式用於傳輸或存儲。
二、流媒體server
一般流媒體的播放採用下面三種方式
1.單播
在client與媒體server之間需要創建一個單獨的數據通道,從一臺server送出的每個數據包僅僅能傳送給一個客戶機,這樣的傳送方式稱爲單播。
每個用戶必須分別對媒體server發送單獨的查詢,而媒體server必須向每個用戶發送所申請的數據包拷貝。
這樣的巨大冗餘首先形成server沉重的負擔,響應需要很是長時間,甚至中止播放;管理人員也被迫購買硬件和帶寬來保證必定的服務質量。
2.組播
在IP組播技術構建一種具備組播能力的網絡上。贊成路由器一次將數據包拷貝到多個通道上。
採用組播方式,單臺server可以對幾十萬臺客戶機同一時候發送連續數據流而無延時。媒體server僅僅需要發送一個信息包,而不是多個;所有發出請求的client共享同一信息包。信息可以發送到隨意地址的客戶機。減小網絡上傳輸的信息包的總量。網絡利用效率大大提升,成本大爲降低。
3.點播與廣播
點播鏈接是client與server之間的主動的鏈接。在點播鏈接中,用戶經過選擇內容項目來初始化client鏈接。用戶可以開始、中止、後退、快進或暫停流。
點播鏈接提供了對流的最大控制,但這樣的方式由於每個client各自鏈接server。卻會迅速用完網絡帶寬。
廣播指的是用戶被動接收流。在廣播過程當中,client接收流。但不能控制流。好比。用戶不能暫停、快進或後退該流。廣播方式中數據包的單獨一個拷貝將發送給網絡上的所有用戶。 使用單播發送時。需要將數據包複製多個拷貝,以多個點對點的方式分別發送到需要它的那些用戶,而使用廣播方式發送。數據包的單獨一個拷貝將發送給網絡上的所有用戶,而不管用戶是否需要,上述兩種傳輸方式會很是浪費網絡帶寬。組播吸取了上述兩種發送方式的好處,克服了上述兩種發送方式的弱點,將數據包的單獨一個拷貝發送給需要的那些客戶。組播不會複製數據包的多個拷貝傳輸到網絡上,也不會將數據包發送給不需要它的那些客戶。保證了網絡上多媒體應用佔用網絡的最小帶寬。
三、client播放器
音/視頻RTP數據包經網絡傳輸到client後,先進入一個緩衝隊列等待,這個緩衝隊列中的所有數據包依照包頭的序列號排序。假設有遲到的包,則按序列號又一次插入正確的位置上。這樣就避免了亂序的問題。
client每次從隊列頭部讀取一幀數據。從包頭的時間標記中解出該幀的播放時間,而後進行音/視頻同步處理。同步後的數據將送入解碼器進行解碼。解碼後的數據被送入一個循環讀取的緩衝中等待。一旦該幀的播放時間到達,就將解碼數據從緩衝存中取出,送入播放模塊進行顯示或播放。
五.流媒體文件格式
流媒體文件格式是支持採用流式傳播及播放的媒體格式。流式文件格式通過特殊編碼,使其適合在網絡上邊下載邊播放,而不是等到下載完整個文件才幹播放。
將壓縮媒體文件編碼成流式文件。必須假如一些附加信息,如計時、壓縮和版權信息。
六.流媒體應用
1.在線直播
隨着Internet的普及網絡上輿的資料再也不侷限於文字和圖形,有不少的視頻應用需要在網上直播。如世界盃現場直播、春節晚會直播等。對電視臺來講,利用流媒體技術實現在線直播。可以最大範圍地覆蓋觀衆,能像電視直播同樣大體宣傳、廣告或知足觀衆需求的目的。
2.視頻點播
隨着多媒體技術、通訊技術以及硬件存儲技術的發展。人們已再也不知足以往單1、被動的單方向信息獲取方式。採用流媒體技術的視頻點播(Video on Demand,VOD)的交互式業務,正受到人們的歡迎。現在網上很是多的在線影院基本上都是採用RealNetwork公司的RealSystem或微軟的Windows Meadia System。
3.遠程教育
遠程教育系統與傳統學校教育相比,突破了時空限制。添加了學習機會,有利於擴大教育規模,提升教學質量,減小教學成本。
學習者可以在本身方便的時間、適合的地點,依照本身需要的速度和方式。運用豐富的教學資源來進行教學。眼下不少大學都已採用流媒體技術實現了遠程教育。
此外。滬江網校也是。流媒體技術在電子商務、遠程醫療和視頻會議等不少方面都有成功應用。眼下流媒體技術的應用主要有寬帶和窄帶兩種方式。
窄帶方式包含多媒體新聞直播、遠程教學、e-Learing、股評分析和視頻會議等;寬帶方式包含網絡電視、KTV、企業培訓和多媒體IDC等。