網(wǎng)易視頻云:流媒體服務(wù)器原理和架構(gòu)解析_第1頁
網(wǎng)易視頻云:流媒體服務(wù)器原理和架構(gòu)解析_第2頁
網(wǎng)易視頻云:流媒體服務(wù)器原理和架構(gòu)解析_第3頁
網(wǎng)易視頻云:流媒體服務(wù)器原理和架構(gòu)解析_第4頁
網(wǎng)易視頻云:流媒體服務(wù)器原理和架構(gòu)解析_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Netease視頻云:流媒體服務(wù)器原理和體系結(jié)構(gòu)分析完整的多媒體文件由音頻和視頻兩部分組成。H264、Xvid等是視頻編碼格式,MP3、AAC等是音頻編碼格式,字幕文件只是附件。目前,大多數(shù)播放器產(chǎn)品最好支持H.264 AAC的MP4編碼格式,但是MP4有很多缺點(diǎn),如視頻頭,它會(huì)影響在線視頻站點(diǎn)的初始加載時(shí)間。為了降低頭部的體積,需要視頻本身的物理片段等。Apple的http實(shí)時(shí)數(shù)據(jù)流(HLS)技術(shù)采用了這種方法,可以在物理上切片MPEG2-TS格式的視頻文件,將其分成較小的片段。另一種是使用Fragmented MP4文件格式。此文件格式是Microsoft Smooth Streaming

2、和Adobe HTTP Dynamic Streaming采用的文件內(nèi)部邏輯分區(qū)方法。許多在線視頻網(wǎng)站由于帶寬消耗壓力而選擇了主要由adobe提供的FLV或F4V,F(xiàn)LV是流媒體打包格式,允許以二進(jìn)制字節(jié)流查看數(shù)據(jù)。通常,F(xiàn)LV由一系列Tag和Tag Size對(duì)組成的文件頭和文件正文組成。流媒體傳輸類型流媒體不是在播放前完全下載整個(gè)文件,而是隨時(shí)播放從頭到尾將數(shù)據(jù)存儲(chǔ)在內(nèi)存中的數(shù)據(jù)流。流媒體服務(wù)器提供的流方法有兩種:順序流和實(shí)時(shí)流。順序流式傳輸是一種順序下載,允許用戶在下載文件的同時(shí)查看聯(lián)機(jī)媒體。使用常規(guī)HTTP服務(wù)器從頭到尾傳輸音頻和視頻數(shù)據(jù)時(shí)順序流媒體傳輸。實(shí)時(shí)流總是實(shí)時(shí)傳送,特別適用于現(xiàn)

3、場事件。通常,如果視頻是實(shí)時(shí)的、使用專用流媒體服務(wù)器或應(yīng)用專用實(shí)時(shí)協(xié)議(如RTSP),則是實(shí)時(shí)流媒體傳輸。實(shí)時(shí)流必須與連接帶寬匹配。也就是說,網(wǎng)絡(luò)速度下降可能導(dǎo)致圖像質(zhì)量下降。流媒體數(shù)據(jù)在流時(shí)具有實(shí)時(shí)、等時(shí)性等基本特征,流媒體服務(wù)期間和客戶終端必須保證各種媒體之間的同步關(guān)系,因此流媒體傳輸對(duì)QoS參數(shù)(如“最大延遲”、“延遲抖動(dòng)”)有嚴(yán)格的要求。實(shí)時(shí)流可以傳輸實(shí)時(shí)和完整的音頻和視頻文件(專用協(xié)議流)。順序流媒體不能用于實(shí)時(shí)廣播,只能傳輸整個(gè)音頻和視頻文件(HTTP漸進(jìn)式)。區(qū)分實(shí)時(shí)流順序流音頻和視頻數(shù)據(jù)源實(shí)時(shí)采集錄像設(shè)備或(使用專用協(xié)議傳輸?shù)?文件可播放的音頻和視頻文件服務(wù)器類型專用流媒體服務(wù)

4、器,包括:QuickTime Streaming ServerReal ServerWindows Media ServerFlash Media Server一般HTTP伺服器、或FTP服務(wù)器傳輸協(xié)議專用協(xié)議RTSP、HLS或RTMP等一般HTTP通訊協(xié)定、與傳輸網(wǎng)頁的協(xié)議相同廣播隨機(jī)存取隨機(jī)片段在給定的時(shí)間點(diǎn),用戶只能查看下載的部分,而不能查看尚未下載的部分主流流媒體協(xié)議主要流媒體協(xié)議包括RTMP、HLS、RTSP等。區(qū)分RTMPHLSRTSP全名Real Time Message ProtocolHttp實(shí)時(shí)流Real Time Streaming Protocol上級(jí)的協(xié)議TCP或HT

5、TPHTTPRTP、RTCP軟件模型CSBSCS研究和開發(fā)主要是Adobe蘋果微軟對(duì)于客戶端Flash類產(chǎn)品支持的瀏覽器支持HTML5的瀏覽器蘋果的野生動(dòng)物園瀏覽器支持HTML5的瀏覽器播放器視頻格式要求FLV、F4VMP4無服務(wù)器要求專用Flash服務(wù)器Flash Media ServerRed5一般HTTP伺服器專用RTSP流媒體服務(wù)器實(shí)況現(xiàn)場直播要求專用編碼器上傳Flash Media Encoder專用編碼器上傳Apple開發(fā)工具與服務(wù)器相關(guān)自定義上載文件回放要求FLV、F4V文件、服務(wù)器將自動(dòng)分解為F4f數(shù)據(jù)文件F4x索引文件終端服務(wù)數(shù)據(jù)文件、M3u8索引文件與服務(wù)器相關(guān)與玩家有關(guān)流

6、媒體協(xié)議原理(a) HTTP漸進(jìn)式下載原理(僅支持文件播放)下載HTTP的同時(shí)播放嚴(yán)格來說不是直播協(xié)議。其原則是下載文件標(biāo)題、文件結(jié)尾、音頻視頻的時(shí)間戳、音頻和視頻數(shù)據(jù)下載、MP4播放等。播放方法:播放瀏覽器調(diào)用系統(tǒng)播放器;創(chuàng)建支持直接在瀏覽器中播放的HTML5的Video標(biāo)簽。(b)蘋果支持的HLS原理(現(xiàn)場直播,按需文檔)服務(wù)器端有三個(gè)組件:一個(gè)是編碼器(media encoder),它將設(shè)備輸出格式轉(zhuǎn)換為H264和AAC,并封裝在MPEG-2傳輸流中。第二:將MPEG-2流分成多個(gè)小片段后輸出的流seger;第三,用于按需文件(按需)的文件服務(wù)器將文件分成多個(gè)小塊,然后輸出。部署原則數(shù)據(jù)

7、是。ts文件(介質(zhì)數(shù)據(jù))和。m3u8文件(介質(zhì)數(shù)據(jù)索引)的三個(gè)部分存在于服務(wù)器上??蛻舳?。訪問m3u8,然后按索引。下載并播放ts文件。M3u8文件的內(nèi)容如下:#EXTM3U# EXT-X # EXT-X-target duration 336030# ext INF 333630,http:/192 . 169 . 1 . 176/sample _ 100k-1 . ts# ext INF 333630,http:/192 . 169 . 1 . 176/sample _ 100k-2 . ts# ext INF 333630,http:/192 . 169 . 1 . 176/sample

8、 _ 100k-3 . ts#EXT-X-ENDLIST根據(jù)該文件,播放器依次下載sample_100k-1.ts、sample_100k-2.ts和sample_100k-3.tsHLS中的按需文檔1.使用apple開發(fā)工具file segments對(duì)基于H264和AAC或MP3的MPEG4進(jìn)行分段。.終端服務(wù)和。創(chuàng)建m3u8文件并將其保存到普通服務(wù)器。2.apple應(yīng)用程序或apple瀏覽器可以。訪問m3u8文件以獲取索引,并下載和播放所需的數(shù)據(jù)片段。HLS實(shí)時(shí)1.使用apple開發(fā)工具stream segments將基于H264、AAC和MP3的MPEG2傳輸流分段。您可以使用其他工具將

9、MPEG4音頻和視頻文件加載到MPEG2傳輸流中。.終端服務(wù)和。創(chuàng)建m3u8文件并將其保存到普通服務(wù)器。2.apple應(yīng)用程序或apple瀏覽器可以。訪問m3u8文件以獲取索引,并下載和播放所需的數(shù)據(jù)片段。(c) Adobe Flash支持的RTMP協(xié)議(支持文件播放和實(shí)時(shí))實(shí)時(shí)消息傳遞協(xié)議(RTMP)是由Adobe Systems開發(fā)的開放協(xié)議,用于在Flash播放器和服務(wù)器之間傳輸音頻、視頻和數(shù)據(jù)。有四種變體:1)使用端口1935在TCP上工作的純文本協(xié)議;2) rtmp通過TLS/SSL連接。3) rtmp封裝在HTTP請(qǐng)求中,可以通過防火墻。4) rtmp類似于rtmp,但使用HTTP

10、S連接。實(shí)時(shí)消息協(xié)議(Protocol)在Flash中用于對(duì)象、視頻和音頻傳輸。此協(xié)議構(gòu)建在TCP協(xié)議或輪詢HTTP協(xié)議之上。RTMP協(xié)議相當(dāng)于用于容納可能是AMF格式數(shù)據(jù)或FLV中視頻/音頻數(shù)據(jù)的數(shù)據(jù)包的容器。單個(gè)連接可以通過多個(gè)通道傳輸基于固定大小數(shù)據(jù)包傳輸?shù)亩嗤ǖ谰W(wǎng)絡(luò)流。需要Flash服務(wù)器Flash Media Server(FMS)或RED5。FMS的按需文件1.服務(wù)器將F4v或Flv文件轉(zhuǎn)換為RTMP流或HTTP流2.客戶端導(dǎo)入RTMP流并提取相應(yīng)的Flv或F4v文件片段進(jìn)行播放。FMS現(xiàn)場直播1.設(shè)備端數(shù)據(jù)將轉(zhuǎn)換為F4v片段,并通過RTMP流上載到服務(wù)器2.服務(wù)器將RTMP傳遞給

11、客戶端3.客戶端導(dǎo)入RTMP流并提取數(shù)據(jù)剪輯回放。(d) RTSP協(xié)議它用于C/S模型,是基于文本的協(xié)議,用于在客戶端和服務(wù)器端建立和協(xié)商實(shí)時(shí)流會(huì)話。實(shí)時(shí)流協(xié)議(RTSP)是控制實(shí)時(shí)數(shù)據(jù)傳輸?shù)膽?yīng)用級(jí)別協(xié)議。RTSP提供可擴(kuò)展的框架,以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù),如音頻和視頻的受控視頻點(diǎn)播。數(shù)據(jù)源包含字段數(shù)據(jù)和剪輯中存儲(chǔ)的數(shù)據(jù)。此協(xié)議的目的是控制多個(gè)數(shù)據(jù)傳輸連接,提供選擇UDP、多播UDP和TCP等傳輸通道的路徑,并提供選擇基于RTP的傳輸機(jī)制的方法。實(shí)時(shí)數(shù)據(jù)流協(xié)議(RTSP)設(shè)置和控制一個(gè)或多個(gè)時(shí)間同步的連續(xù)流媒體??梢耘c連續(xù)媒體流交換控制流,但通常不發(fā)送連續(xù)流本身。也就是說,RTSP充當(dāng)多媒體服務(wù)器的網(wǎng)絡(luò)

12、遠(yuǎn)程控制。RTSP連接不綁定到傳輸層連接,如TCP。在RTSP連接過程中,RTSP用戶可以通過打開或關(guān)閉多個(gè)可傳輸服務(wù)器連接來發(fā)出RTSP請(qǐng)求。您還可以使用UDP等無連接傳輸協(xié)議。RTSP流控制的流可以使用RTP,但RTSP操作不依賴于用于攜帶連續(xù)介質(zhì)的傳輸機(jī)制。協(xié)議支持以下操作:(1)從媒體服務(wù)器掃描媒體:用戶可以通過HTTP或其他方法提交演示說明。如果演示是多播,則演示包括用于連續(xù)介質(zhì)的多播地址和端口。如果演示僅通過單播發(fā)送給用戶,用戶必須提供目標(biāo)地址以確保安全。(2)媒體服務(wù)器將被邀請(qǐng)參加會(huì)議。媒體服務(wù)器可以被邀請(qǐng)參加進(jìn)行中的會(huì)議,播放媒體,只記錄部分或全部記錄。此模式在分布式培訓(xùn)應(yīng)用程

13、序中很有用,在會(huì)議期間只能按幾次遠(yuǎn)程控制按鈕。(3)將媒體添加到開箱即用的講座中:如果服務(wù)器告訴用戶提供其他媒體內(nèi)容,則對(duì)于現(xiàn)場講座尤其有用。與HTTP/1.1一樣,RTSP請(qǐng)求可以通過代理、通道和緩存處理。以下是一些操作模式的區(qū)分:(1)單播:用戶選擇的端口號(hào)將媒體發(fā)送到RTSP請(qǐng)求源。(2)服務(wù)器選擇地址多播:介質(zhì)服務(wù)器選擇多播地址和端口,這通常用于實(shí)時(shí)或按需方式。(3)用戶選擇地址多播:當(dāng)服務(wù)器參與正在進(jìn)行的多播會(huì)議時(shí),將根據(jù)會(huì)議說明提供多播地址、端口和密鑰。RTSP控制通過單獨(dú)的協(xié)議傳輸?shù)臄?shù)據(jù)流,與控制通道無關(guān)。例如,RTSP控制可以通過TCP連接,數(shù)據(jù)流通過UDP。因此,即使媒體服務(wù)

14、器未收到請(qǐng)求,數(shù)據(jù)也將繼續(xù)發(fā)送。在連接壽命期間,單個(gè)媒體流可以通過其他TCP連接順序發(fā)出請(qǐng)求來控制。因此,服務(wù)器必須與RTSP請(qǐng)求保持連接。RTSP中的許多方法與狀態(tài)無關(guān),但以下方法在定義和應(yīng)用服務(wù)器流資源分配方面起著重要作用:(1) SETUP:服務(wù)器將資源分配給流并啟動(dòng)RTSP連接。(2) PLAY和RECORD:啟動(dòng)到SETUP分配流的數(shù)據(jù)傳輸。(3) PAUSE:暫時(shí)停止流,但不釋放服務(wù)器資源。(4) TEARDOWN:釋放流的資源,RTSP連接停止。標(biāo)識(shí)狀態(tài)的RTSP方法使用連接器段標(biāo)識(shí)RTSP連接,并在服務(wù)器連接中生成連接id以響應(yīng)SETUP請(qǐng)求。RTSP是純傳輸控制協(xié)議。RTSP

15、協(xié)議本身與加載的媒體數(shù)據(jù)無關(guān)。RTSP協(xié)議要求自定義客戶端向服務(wù)器發(fā)送RTSP命令。流媒體服務(wù)器的協(xié)議棧在TCP/IP參考模型中,傳輸層通信協(xié)議TCP和UDP都不能滿足流媒體傳輸?shù)腝oS要求。TCP協(xié)議使用滑動(dòng)窗口控制機(jī)制,因此流媒體實(shí)時(shí)和流媒體等傳輸要求在流控制窗口動(dòng)態(tài)啟動(dòng)和關(guān)閉時(shí)很困難。UDP協(xié)議的斷開功能可以提高傳輸速度,在一定程度上滿足流媒體的實(shí)時(shí)要求,但其本身的可靠性不能滿足流媒體傳輸?shù)囊蟆?duì)于傳輸層協(xié)議,需要在傳輸層協(xié)議(TCP/UDP)和應(yīng)用層之間添加通信控制層,以便設(shè)計(jì)流媒體服務(wù)器,以便在IP中實(shí)時(shí)播放流媒體的傳輸。在增加的通信控制層中,主要是數(shù)據(jù)流部分的實(shí)時(shí)傳輸協(xié)議實(shí)時(shí)傳輸

16、協(xié)議(RTCP)、控制部分的實(shí)時(shí)傳輸控制協(xié)議實(shí)時(shí)傳輸控制協(xié)議(RTCP)和實(shí)時(shí)流協(xié)議實(shí)時(shí)流協(xié)議流媒體服務(wù)器的協(xié)議棧,如圖1所示。RTP協(xié)議主要用于傳輸實(shí)時(shí)流媒體信息,數(shù)據(jù)報(bào)主要包括多媒體數(shù)據(jù)、傳輸負(fù)載的時(shí)間戳和序列號(hào)。RTCP協(xié)議數(shù)據(jù)報(bào)包括接收方從多媒體流接收服務(wù)質(zhì)量信息(Qos),以便對(duì)服務(wù)器端進(jìn)行反饋。RTSP是控制協(xié)議,包含對(duì)從服務(wù)器傳輸?shù)亩嗝襟w數(shù)據(jù)(包括通信連接前設(shè)置)的控制。用于控制實(shí)時(shí)數(shù)據(jù)傳輸。提供對(duì)流媒體(如播放、暫停、快進(jìn)、錄制等)的類似視頻芯片組記錄(VCR)的控制。也就是說,RTSP實(shí)現(xiàn)了多媒體服務(wù)器的網(wǎng)絡(luò)遠(yuǎn)程控制。圖2所示的流媒體服務(wù)器的框圖。當(dāng)服務(wù)器收到RTSP請(qǐng)求時(shí),它首先創(chuàng)建RTSP請(qǐng)求對(duì)象。服務(wù)器通過RTSP協(xié)議的響應(yīng)信息以流會(huì)話格式描述請(qǐng)求的內(nèi)容,該格式包括數(shù)據(jù)流中包含的流數(shù)、媒體類型和編解碼器格式。一個(gè)流會(huì)話由一個(gè)或多個(gè)數(shù)據(jù)流(如視頻流或音頻流)組成。實(shí)際數(shù)據(jù)流通過RTP協(xié)議傳遞到客戶端。RTP在一對(duì)一或一對(duì)多傳輸中工作,目的是提供時(shí)間信息并實(shí)現(xiàn)流同步。RTP本身不為順序傳輸包提供可靠的傳輸機(jī)制,而是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論