日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

流媒体及流媒体传输协议简介

發布時間:2023/12/16 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 流媒体及流媒体传输协议简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

流媒體(streaming media):是指將一連串的媒體數據壓縮后,經過網上分段發送數據,在網上即時傳輸影音以供觀賞的一種技術與過程,此技術使得數據包得以像流水一樣發送;如果不使用此技術,就必須在使用前下載整個媒體文件

多媒體兼指多媒體信息和多媒體技術,并以后者居多。多媒體信息是指集數據、文字、圖形與圖像為一體的綜合媒體信息;多媒體技術則是將計算機技術與通信傳播技術融為一體,綜合處理、傳送和儲存多媒體信息的數字技術,它提供了良好的人機交互功能和可編程環境,極大的拓展了計算機的應用領域。流媒體的實質是一種多媒體文件,由于在網絡上傳輸的過程中應用了流技術而命名。所謂流技術,就會把連續的影像和聲音信息經過壓縮處理后放到網站服務器,讓用戶一邊下載一邊觀看、收聽,而不需要等整個壓縮文件下載到自己的機器后才可以觀看的網絡傳輸技術。這個過程的一系列相關的包稱為流”。流媒體實際指的是一種新的媒體傳送方式,而非一種新的媒體。

在網絡上傳輸音/視頻等多媒體信息,主要有下載和流式傳輸兩種方案。音頻/視頻(A/V)文件一般都較大,所以需要的存儲容量也較大;同時由于網絡帶寬的限制,下載常常要花數分鐘甚至數小時,所以這種處理方法延遲也很大。流式傳輸時,聲音、影像或動畫等時基媒體由音視頻服務器向用戶計算機的連續、實時傳送,用戶不必等到整個文件全部下載完畢,而只需經過幾秒或十數秒的啟動延時即可進行觀看。當聲音等時基媒體在客戶機上播放時,文件的剩余部分將在后臺從服務器內繼續下載。流式不僅使啟動延時成十倍、百倍地縮短,而且不需要太大的緩存容量。流式傳輸避免了用戶必須等待整個文件全部從Internet上下載才能觀看的缺點

流式傳輸方式則是將整個A/V及3D等多媒體文件經過特殊的壓縮方式分成一個個壓縮包,由視頻服務器向用戶計算機連續、實時傳送。在采用流式傳輸方式的系統中,用戶不必像采用下載方式那樣等到整個文件全部下載完畢,而是只需經過幾秒或幾十秒的啟動延時即可在用戶的計算機上利用解壓設備(硬件或軟件)對壓縮的A/V、3D等多媒體文件解壓后進行播放和觀看。此時多媒體文件的剩余部分將在后臺的服務器內繼續下載。與單純的下載方式相比,這種對多媒體文件邊下載邊播放的流式傳輸方式,不僅使啟動延時大幅度地縮短,而且對系統緩存容量的需求也大大降低。

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

流式傳輸定義很廣泛,主要指通過網絡傳送媒體(如視頻、音頻)的技術總稱。其特定含義為通過Internet 將影視節目傳送到PC機。實現流式傳輸有兩種方法:實時流式傳輸(Real time 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需要較多的開銷,故不太適合傳輸實時數據

流式傳輸的過程一般是這樣的:用戶選擇某一流媒體服務后,Web瀏覽器與Web服務器之間使用HTTP/TCP交換控制信息,以便把需要傳輸的實時數據從原始信息中檢索出來;然后客戶機上的Web瀏覽器啟動A/V Helper程序,使用HTTP從Web服務器檢索相關參數對Helper程序初始化。這些參數可能包括目錄信息、A/V數據的編碼類型或與A/V檢索相關的服務器地址。A/V Helper程序及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/V Helper程序所在客戶機的目的地址。實現流式傳輸一般都需要專用服務器和播放器。

流媒體格式:聲音流、視頻流、文本流、圖像流、動畫流

(1). RA:實時聲音。

(2). RM:實時視頻或音頻的實時媒體。

(3). RT:實時文本。

(4). RP:實時圖像。

(5). SMIL:同步的多重數據類型綜合設計文件。

(6). SWF:macromedia的real flash和shockwave flash動畫文件。

(7). RPM:HTML文件的插件。

(8). RAM:流媒體的元文件,是包含RA、RM、SMIL文件地址(URL地址)的文本文件。

(9). CSF:一種類似媒體容器的文件格式,可以將非常多的媒體格式包含在其中,而不僅僅限于音、視頻。

流媒體傳輸協議

(1). RSVP(Resource Reservation Protocol, 資源預留協議):最初是IETF為QoS的綜合服務模型定義的一個信令協議,用于在流(flow)所經路徑上為該流進行資源預留,從而滿足該流的QoS要求。資源預留的過程從應用程序流的源節點發送Path消息開始,該消息會沿著流所經路徑傳到流的目的節點,并沿途建立路徑狀態;目的節點收到該Path消息后,會向源節點回送Resv消息,沿途建立預留狀態,如果源節點成功收到預期的Resv消息,則認為在整條路徑上資源預留成功。RSVP是一個在ip上承載的信令協議,它允許路由器網絡任何一端上終端系統或主機在彼此之間建立保留帶寬路徑,為網絡上的數據傳輸預定和保證Qos。它對于需要保證帶寬和時延的業務,如語音傳輸,視頻會議等具有十分重要的作用。

(2). RTP(Real-time Transport Protocol, 實時傳輸協議):是一個網絡傳輸協議,詳細說明了在互聯網上傳遞音頻和視頻的標準數據包格式。它一開始被設計為一個多播協議,但后來被用在很多單播應用中。RTP協議常用于流媒體系統(配合RTSP協議),視頻會議和一鍵通(Push to Talk)系統(配合H.323或SIP),使它成為IP電話產業的技術基礎。RTP協議和RTP控制協議RTCP一起使用,而且它是創建在UDP協議上的。RTP為數據提供了具有實時特征的端對端傳送服務,如在組播或單播網絡服務下的交互式視頻音頻或模擬數據。應用程序通常在 UDP上運行RTP以便使用其多路結點和校驗服務;這兩種協議都提供了傳輸層協議的功能。但是RTP可以與其它適合的底層網絡或傳輸協議一起使用。如果底層網絡提供組播方式,那么RTP可以使用該組播表傳輸數據到多個目的地。

RTP本身并沒有提供按時發送機制或其它服務質量(QoS)保證,它依賴于底層服務去實現這一過程。 RTP并不保證傳送或防止無序傳送,也不確定底層網絡的可靠性。RTP實行有序傳送,RTP中的序列號允許接收方重組發送方的包序列,同時序列號也能用于決定適當的包位置,例如在視頻解碼中,就不需要順序解碼。

(3). RTCP(Real-time Transport Control Protocol, 實時傳輸控制協議):是實時傳輸協議(RTP)的一個姐妹協議。RTP使用一個偶數UDP port,而RTCP則使用RTP的下一個port,也就是一個奇數port。RTCP與RTP聯合工作,RTP實施實際數據的傳輸,RTCP則負責將控制包送至電話中的每個人。RTCP為RTP媒體流提供信道外(out-of-band)控制。RTCP本身并不傳輸數據,但和RTP一起協作將多媒體數據打包和發送。RTCP定期在流多媒體會話參加者之間傳輸控制數據。RTCP的主要功能是為RTP所提供的服務質量(Quality of Service)提供反饋。

RTCP收集相關媒體連接的統計信息,例如:傳輸字節數,傳輸分組數,丟失分組數,jitter,單向和雙向網絡延遲等等,網絡應用程序即可利用RTCP的統計信息來控制傳輸的品質,比如當網絡帶寬高負載時限制信息流量或改用壓縮比較小的編解碼器。RTCP本身不提供數據加密或身份認證。

(4). MMS(Microsoft Media Server Protocol, 微軟媒體服務協議):用來訪問并流式接收 Windows Media服務器中.asf文件的一種協議。MMS協議用于訪問Windows Media發布點上的單播內容。MMS是連接Windows Media單播服務的默認方法。若觀眾在Windows Media Player中鍵入一個URL以連接內容,而不是通過超級鏈接訪問內容,則他們必須使用MMS 協議引用該流。MMS的預設埠(端口)是1755。當使用MMS協議連接到發布點時,使用協議翻轉以獲得最佳連接。”協議翻轉”始于試圖通過MMSU連接客戶端。MMSU是MMS協議結合UDP數據傳送。如果MMSU連接不成功,則服務器試圖使用MMST。MMST是MMS協議結合TCP數據傳送。

(5). RTSP(Real-Time Streaming Protocol, 實時流傳輸協議):是由Real Network和Netscape共同提出的如何有效地在IP網絡上傳輸流媒體數據的應用層協議。RTSP對流媒體提供了諸如暫停,快進等控制,而它本身并不傳輸數據,RTSP的作用相當于流媒體服務器的遠程控制。服務器端可以自行選擇使用TCP或UDP來傳送串流內容,它的語法和運作跟HTTP 1.1類似,但并不特別強調時間同步,所以比較能容忍網絡延遲。RTSP是應用級協議,控制實時數據的發送。RTSP提供了一個可擴展框架,使實時數據,如音頻與視頻的受控點播成為可能。數據源包括現場數據與存儲在剪輯中數據。該協議目的在于控制多個數據發送連接,為選擇發送通道,如UDP、組播UDP與TCP,提供途徑,并為選擇基于RTP上發送機制提供方法。RTSP建立并控制一個或幾個時間同步的連續流媒體。盡管連續媒體流與控制流交換是可能的,通常它本身并不發送連續流。換言之,RTSP充當多媒體服務器的網絡遠程控制。RTSP連接沒有綁定到傳輸層連接,如TCP。在RTSP連接期間,RTSP用戶可打開或關閉多個對服務器的可傳輸連接以發出RTSP請求。此外,可使用無連接傳輸協議,如UDP。RTSP流控制的流可能用到RTP,但RTSP操作并不依賴用于攜帶連續媒體的傳輸機制。更詳細介紹可參考:https://blog.csdn.net/fengbingchun/article/details/90546484

(6). MIME(Multipurpose Internet Mail Extensions, 多用途互聯網郵件擴展類型):是設定某種擴展名的文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動使用指定應用程序來打開。多用于指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。它是一個互聯網標準,擴展了電子郵件標準,使其能夠支持:非ASCII字符文本;非文本格式附件(二進制、聲音、圖像等);由多部分(multiple parts)組成的消息體;包含非ASCII字符的頭信息(Header information)。

(7). RTMP(Real Time Messaging Protocol, 實時消息傳輸協議):是Adobe Systems公司為Flash播放器和服務器之間音頻、視頻和數據傳輸開發的開放協議。該協議基于TCP,是一個協議族,包括RTMP基本協議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設計用來進行實時數據通信的網絡協議,主要用來在Flash/AIR平臺和支持RTMP協議的流媒體/交互服務器之間進行音視頻和數據通信。支持該協議的軟件包括Adobe Media Server/Ultrant Media Server/red5等。

(8). RTMFP(Secure Real-Time Media Flow Protocol):是Adobe公司開發的一套新的通信協議,該協議可以讓使用Adobe Flash Player的終端用戶之間進行直接通信。用Adobe AIR框架開發的程序也可以用此協議來發布直播、實時信息。

(9). HLS(HTTP Live Streaming):是Apple的動態碼率自適應技術。主要用于PC和Apple終端的音視頻服務。包括一個m3u(8)的索引文件,TS媒體分片文件和key加密串文件。

流媒體播放方式

(1). 單播在客戶端與媒體服務器之間需要建立一個單獨的數據通道,從一臺服務器送出的每個數據包只能傳送給一個客戶機,這種傳送方式稱為單播。每個用戶必須分別對媒體服務器發送單獨的查詢,而媒體服務器必須向每個用戶發送所申請的數據包拷貝。這種巨大冗余首先造成服務器沉重的負擔,響應需要很長時間,甚至停止播放;管理人員也被迫購買硬件和帶寬來保證一定的服務質量。

(2). 組播:IP組播技術構建一種具有組播能力的網絡,允許路由器一次將數據包復制到多個通道上。采用組播方式,單臺服務器能夠對幾十萬臺客戶機同時發送連續數據流而無延時。媒體服務器只需要發送一個信息包,而不是多個;所有發出請求的客戶端共享同一信息包。信息可以發送到任意地址的客戶機,減少網絡上傳輸的信息包的總量。網絡利用效率大大提高,成本大為下降。

(3). 點播點播連接是客戶端與服務器之間的主動的連接。在點播連接中,用戶通過選擇內容項目來初始化客戶端連接。用戶可以開始、停止、后退、快進或暫停流。點播連接提供了對流的最大控制,但這種方式由于每個客戶端各自連接服務器,卻會迅速用完網絡帶寬

(4). 廣播指的是用戶被動接收流在廣播過程中,客戶端接收流,但不能控制流。例如,用戶不能暫停、快進或后退該流。廣播方式中數據包的單獨一個拷貝將發送給網絡上的所有用戶。使用單播發送時,需要將數據包復制多個拷貝,以多個點對點的方式分別發送到需要它的那些用戶,而使用廣播方式發送,數據包的單獨一個拷貝將發送給網絡上的所有用戶,而不管用戶是否需要,上述兩種傳輸方式會非常浪費網絡帶寬。組播吸收了上述兩種發送方式的長處,克服了上述兩種發送方式的弱點,將數據包的單獨一個拷貝發送給需要的那些客戶。組播不會復制數據包的多個拷貝傳輸到網絡上,也不會將數據包發送給不需要它的那些客戶,保證了網絡上多媒體應用占用網絡的最小帶寬。

流媒體技術應用流媒體技術廣泛用于多媒體新聞發布、在線直播、網絡廣告、電子商務、視頻點播、遠程教育、遠程醫療、網絡電臺、實時視頻會議等互聯網信息服務的方方面面。流媒體技術的應用將為網絡信息交流帶來革命性的變化,對人們的工作和生活將產生深遠的影響。一個完整的流媒體解決方案應是相關軟硬件的完美集成,它大致包括下面幾個方面的內容:內容采集、視音頻捕獲和壓縮編碼、內容編輯、內容存儲和播放、應用服務器內容管理發布及用戶管理等。流媒體技術和聲音信息經過壓縮處理后放上網站服務器,讓用戶一邊下載一邊觀看、收聽,而不要等整個壓縮文件下載到自己的計算機上才可以觀看的網絡傳輸技術。該技術先在使用者端的計算機上創建一個緩沖區,在播放前預先下一段數據作為緩沖,在網路實際連線速度小于播放所耗的速度時,播放程序就會取用一小段緩沖區內的數據,這樣可以避免播放的中斷,也使得播放品質得以保證。

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

(1). Web瀏覽器與Web服務器之間使用HTTP/TCP交換控制信息,以便把需要傳輸的實時數據從原始信息中檢索出來。

(2). 用HTTP從Web服務器檢索相關數據,由A/V播放器進行初始化。

(3). 從Web服務器檢索出來的相關服務器的地址定位A/V服務器。

(4). A/V播放器與A/V服務器之間交換A/V傳輸所需要的實時控制協議。

(5). 一旦A/V數據抵達客戶端,A/V播放器就可播放。

主流的流媒體技術有三種:分別是RealNetworks公司的RealMedia、Microsoft公司的WindowsMediaTechnology和Apple公司的QuickTime。這三家的技術都有自己的專利算法、專利文件格式甚至專利傳輸控制協議。

UDP和TCP協議在實現數據傳輸時的可靠性有很大的區別:TCP協議中包含了專門的數據傳送校驗機制,當數據接受方收到數據后,將自動向發送方發出確認信息,發送方在接收到確認信息后才繼續傳送數據,否則將一直處于等待狀態。而UDP協議則不同,UDP協議本身并不能做任何校驗。由此可以看出,TCP協議注重傳輸質量,而UDP協議則注重傳輸速度。因此,對于對傳輸質量要求不是很高,而對傳輸速度則有很高的要求的視音頻流媒體文件來說,采用UDP協議則更合適。

流媒體的傳輸過程中需要緩存的支持:因為Interent是以包為單位進行異步傳輸的,因此多媒體數據在傳輸中要被分解成許多包,由于網絡傳輸的不穩定性,各個包選擇的路由不同,所以到達客戶端的時間次序可能發生改變,甚至產生丟包的現象。為此,必須采用緩存技術來糾正由于數據到達次序發生改變而產生的混亂狀況,利用緩存對到達的數據包進行正確排序,從而使視音頻數據能連續正確地播放。緩存中存儲的是某一段時間內的數據,數據在緩存中存放的時間是暫時的,緩存中的數據也是動態的,不斷更新的流媒體在播放時不斷讀取緩存中的數據進行播放,播放完后該數據便被立即清除,新的數據將存入到緩存中。因此,在播放流媒體文件時并不需占用太大的緩存空間

一些術語:

直播過程:[采樣] --> [編碼] --> [推流] --> [接流] -->[流處理] --> [分發] -->[拉流] --> [解碼] -->[播放]。

編碼:就是對視頻/音頻數據進行壓縮的過程。視頻壓縮算法中通常會將視頻幀分為不同類型,常見的有I幀、P幀、B幀三種。視頻是一張張圖片的序列,但如果每張圖片都完整,就太大了,因而會將視頻序列分成三種幀:(1). I幀:也稱關鍵幀。里面是完整的圖片,只需要本幀數據,就可以完成解碼。(2). P幀:前向預測編碼幀。P幀表示的是這一幀跟之前一個關鍵幀(或P幀)的差別,解碼時需要用之前緩存的畫面,疊加上和本幀定義的差別,生成最終畫面。(3). B幀:雙向預測內插編碼幀。B幀記錄的是本幀與前后幀的差別。要解碼B幀,不僅要取得之前的緩存畫面,還要解碼之后的畫面,通過前后畫面的數據與本幀數據的疊加,取得最終的畫面。I幀最完整,B幀壓縮率最高,而壓縮后幀的序列,應該是IBBP間隔出現。這就是通過時序進行編碼。

I:幀內編碼幀,特點:

(1). 它是一個全幀壓縮編碼幀。它將全幀圖像信息進行JPEG壓縮編碼及傳輸;

(2). 解碼時僅用I幀的數據就可重構完整圖像;

(3). I幀描述了圖像背景和運動主體的詳情;

(4). I幀不需要參考其他畫面而生成;

(5). I幀是P幀和B幀的參考幀(其質量直接影響到同組中以后各幀的質量);

(6). I幀是幀組GOP的基礎幀(第一幀),在一組中只有一個I幀;

(7). I幀不需要考慮運動矢量;

(8). I幀所占數據的信息量比較大。

P:前向預測編碼幀,P幀的預測與重構:P幀是以I幀為參考幀,在I幀中找出P幀”某點”的預測值和運動矢量,取預測差值和運動矢量一起傳送。在接收端根據運動矢量從I幀中找出P幀”某點”的預測值并與差值相加以得到P幀”某點”樣值,從而可得到完整的P幀。又稱predictive-frame,通過充分將低于圖像序列中前面已編碼幀的時間冗余信息來壓縮傳輸數據量的編碼圖像,也叫預測幀。特點:

(1). P幀是I幀后面相隔1~2幀的編碼幀;

(2). P幀采用運動補償的方法傳送它與前面的I或P幀的差值及運動矢量(預測誤差);

(3). 解碼時必須將I幀中的預測值與預測誤差求和后才能重構完整的P幀圖像;

(4). P幀屬于前向預測的幀間編碼。它只參考前面最靠近它的I幀或P幀;

(5). P幀可以是其后面P幀的參考幀,也可以是其前后的B幀的參考幀;

(6). 由于P幀是參考幀,它可能造成解碼錯誤的擴散;

(7). 由于是差值傳送,P幀的壓縮比較高。

B:雙向預測內插編碼幀。B幀的預測與重構:B幀以前面的I或P幀和后面的P幀為參考幀,”找出”B幀”某點”的預測值和兩個運動矢量,并取預測差值和運動矢量傳送。接收端根據運動矢量在兩個參考幀中”找出(算出)”預測值并與差值求和,得到B幀”某點”樣值,從而可得到完整的B幀。又稱bi-directional interpolated prediction frame,既考慮與源圖像序列前面已編碼幀,也顧及源圖像序列后面已編碼幀之間的時間冗余信息來壓縮傳輸數據量的編碼圖像,也叫雙向預測幀。特點:

(1). B幀是由前面的I或P幀和后面的P幀來進行預測的;

(2). B幀傳送的是它與前面的I或P幀和后面的P幀之間的預測誤差及運動矢量;

(3). B幀是雙向預測編碼幀;

(4). B幀壓縮比最高,因為它只反映丙參考幀間運動主體的變化情況,預測比較準確;

(5). B幀不是參考幀,不會造成解碼錯誤的擴散。

GOP:視頻流中兩個I幀的時間距離。

音頻編碼格式有:AAC、AMR、PCM、ogg、AC3、DTS、APE、AU、WMA。

視頻編碼格式有:Xvid(MPEG4)、H264、H263、MPEG1、MPEG2、AC-1、RM、RMVB、H.265。

碼率:碼流(Data Rate)是指視頻文件在單位時間內使用的數據流量,也叫碼率或碼流率,通俗一點的理解就是取樣率,是視頻編碼中畫面質量控制中最重要的部分,一般我們用的單位是kb/s或者Mb/s。一般來說同樣分辨率下,視頻文件的碼流越大,壓縮比就越小,畫面質量就越高。碼流越大,說明單位時間內采樣率越大,數據流,精度就越高,處理出來的文件就越接近原始文件,圖像質量越好,畫質越清晰,要求播放設備的解碼能力也越高。當然,碼率越大,文件體積也越大。

通常來說,一個視頻文件包括了畫面(視頻)及聲音(音頻),例如一個RMVB的視頻文件,里面包含了視頻信息和音頻信息,音頻及視頻都有各自不同的采樣方式和比特率,也就是說,同一個視頻文件音頻和視頻的比特率并不是一樣的。而我們所說的一個視頻文件碼流率大小,一般是指視頻文件中音頻及視頻信息碼流率的總和。

幀率:也稱為FPS(Frames Per Second,幀/秒),是指每秒鐘刷新的圖片的幀數,也可以理解為圖形處理器每秒鐘能夠刷新幾次。越高的幀速率可以得到更流暢、更逼真的動畫。每秒鐘幀數(FPS)越多,所顯示的動作就會越流暢。

分辨率:視頻分辨率是指視頻成像產品所成圖像的大小或尺寸。常見的視像分辨率有640*480,1024*768。在成像的兩組數字中,前者為圖片長度,后者為圖片的寬度,兩者相乘得出的是圖片的像素,長寬比一般為4:3。480P:640*480個像素點;720P:1280*720個像素點;1080P:1920*1080個像素點。

YUV格式有兩大類:planar和packed。對于planar的YUV格式,先連續存儲所有像素點的Y,緊接著存儲所有像素點的U,隨后是所有像素點的V。對于packed的YUV格式,每個像素點的Y,U,V是連續交替存儲的。YUV也是一種顏色編碼方法,主要用于電視系統以及模擬視頻領域,它將亮度信息(Y)與色彩信息(UV)分離,沒有UV信息一樣可以顯示完整的圖像,只不過是黑白的,這樣的設計很好地解決了彩色電視機與黑白電視的兼容問題。并且,YUV不像RGB那樣要求三個獨立的視頻信號同時傳輸,所以用YUV方式傳送占用極少的頻寬。YUV分為三個分量,”Y”表示明亮度(Luminance或Luma),也就是灰度值;而”U”和”V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用于指定像素的顏色。

硬編解碼:通過硬件實現編解碼,減輕CPU計算的負擔,如GPU等。

軟編解碼:如H264、H265、MPEG-4等編解碼算法,更消耗CPU。

:一般指通過網絡傳輸的有序數據序列,如直播流,點播流。

推流:指的是把采集階段封包(將音頻,視頻打包成packet)好的內容傳輸到流媒體服務器的過程。

接流:網絡協議將編碼好的視頻流,從主播端推送到服務器,在服務器上有個運行了同樣協議的服務端來接收這些網絡數據包,從而得到里面的視頻流,這個過程稱為接流。

拉流(抓流):指流媒體服務器已有直播內容,用指定地址進行拉取的過程。

解碼:把獲取到的數據解壓縮,恢復成原始數據。

以上內容均來自網絡整理,主要參考:

1.?https://baike.baidu.com/item/%E6%B5%81%E5%AA%92%E4%BD%93

2.?https://juejin.im/post/5a6873fd51882573497916bb

3.?https://blog.csdn.net/tttyd/article/details/12032357

4.?https://segmentfault.com/a/1190000017431963

GitHub:https://github.com/fengbingchun/OpenCV_Test

總結

以上是生活随笔為你收集整理的流媒体及流媒体传输协议简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。