流媒體與直播技術(shù)

一直混跡在直播互動行業(yè),被人問到一些技術(shù)問題,一臉懵逼。

一、基本概念

1、流媒體

流媒體又叫流式媒體,它是指商家用一個視頻傳送服務(wù)器把節(jié)目當(dāng)成數(shù)據(jù)包發(fā)出,傳送到網(wǎng)絡(luò)上。用戶通過解壓設(shè)備對這些數(shù)據(jù)進(jìn)行解壓后,節(jié)目就會像發(fā)送前那樣顯示出來。

  這個過程的一系列相關(guān)的包稱為“流”。流媒體實(shí)際指的是一種新的媒體傳送方式,而非一種新的媒體。

??? 流媒體技術(shù)全面應(yīng)用后,人們在網(wǎng)上聊天可直接語音輸入;如果想彼此看見對方的容貌、表情,只要雙方各有一個攝像頭就可以了;在網(wǎng)上看到感興趣的商品,點(diǎn)擊以后,講解員和商品的影像就會跳出來;更有真實(shí)感的影像新聞也會出現(xiàn)。

???? 所謂流媒體是指采用流式傳輸?shù)姆绞皆贗nternet播放的媒體格式。如:音頻、視頻或多媒體文件。流式媒體在播放前并不下載整個文件,只將開始部分內(nèi)容存入內(nèi)存,流式媒體的數(shù)據(jù)流隨時(shí)傳送隨時(shí)播放,只是在開始時(shí)有一些延遲。流媒體實(shí)現(xiàn)的關(guān)鍵技術(shù)就是流式傳輸。

??? 流式傳輸方式則是將整個A/V及3D等多媒體文件經(jīng)過特殊的壓縮方式分成一個個壓縮包,由視頻服務(wù)器向用戶計(jì)算機(jī)連續(xù)、實(shí)時(shí)傳送。

  在采用流式傳輸方式的系統(tǒng)中,用戶不必像采用下載方式那樣等到整個文件全部下載完畢,而是只需經(jīng)過幾秒或幾十秒的啟動延時(shí)即可在用戶的計(jì)算機(jī)上利用解壓設(shè)備(硬件或軟件)對壓縮的A/V、3D等多媒體文件解壓后進(jìn)行播放和觀看。此時(shí)多媒體文件的剩余部分將在后臺的服務(wù)器內(nèi)繼續(xù)下載。

  與單純的下載方式相比,這種對多媒體文件邊下載邊播放的流式傳輸方式不僅使啟動延時(shí)大幅度地縮短,而且對系統(tǒng)緩存容量的需求也大大降低。

2、流式傳輸

傳統(tǒng)的網(wǎng)絡(luò)傳輸音視頻等多媒體信息的方式是完全下載后再播放,下載常常要花數(shù)分鐘甚至數(shù)小時(shí)。

采用流媒體技術(shù),就可實(shí)現(xiàn)流式傳輸,將聲音、影像或動畫由服務(wù)器向用戶計(jì)算機(jī)進(jìn)行連續(xù)、不間斷傳送,用戶不必等到整個文件全部下載完畢,而只需經(jīng)過幾秒或十幾秒的啟動延時(shí)即可進(jìn)行觀看。當(dāng)聲音視頻等在用戶的機(jī)器上播放時(shí),文件的剩余部分還會從服務(wù)器上繼續(xù)下載。

如果將文件傳輸看作是一次接水的過程,過去的傳輸方式就像是對用戶做了一個規(guī)定,必須等到一桶水接滿才能使用它,這個等待的時(shí)間自然要受到水流量大小和桶的大小的影響。

流式傳輸,就比如,打開水頭龍,等待一小會兒,水就會源源不斷地流出來,而且可以隨接隨用,因此,不管水流量的大小,也不管桶的大小,用戶都可以隨時(shí)用上水。

流式傳輸時(shí),聲音、影像或動畫等時(shí)基媒體由音視頻服務(wù)器向用戶計(jì)算機(jī)的連續(xù)、實(shí)時(shí)傳送,用戶不必等到整個文件全部下載完畢,而只需經(jīng)過幾秒或十?dāng)?shù)秒的啟動延時(shí)即可進(jìn)行觀看。當(dāng)聲音等時(shí)基媒體在客戶機(jī)上播放時(shí),文件的剩余部分將在后臺從服務(wù)器內(nèi)繼續(xù)下載。流式不僅使啟動延時(shí)成十倍、百倍地縮短,而且不需要太大的緩存容量。流式傳輸避免了用戶必須等待整個文件全部從Internet上下載才能觀看的缺點(diǎn)。

通過網(wǎng)絡(luò)傳送媒體的技術(shù)總稱。實(shí)現(xiàn)方法:

①順序流式傳輸是順序下載,在下載文件的同時(shí)用戶可觀看在線媒體,在給定時(shí)刻,用戶只能觀看已下載的那部分,而不能跳到還未下載的前頭部分,順序流式傳輸不象實(shí)時(shí)流式傳輸在傳輸期間根據(jù)用戶連接的速度做調(diào)整。

由于標(biāo)準(zhǔn)的HTTP服務(wù)器可發(fā)送這種形式的文件,也不需要其他特殊協(xié)議,它經(jīng)常被稱作HTTP流式傳輸。

  順序流式傳輸比較適合高質(zhì)量的短片段,如片頭、片尾和廣告,由于該文件在播放前觀看的部分是無損下載的,這種方法保證電影播放的最終質(zhì)量。這意味著用戶在觀看前,必須經(jīng)歷延遲,對較慢的連接尤其如此。對通過調(diào)制解調(diào)器發(fā)布短片段,順序流式傳輸顯得很實(shí)用,它允許用比調(diào)制解調(diào)器更高的數(shù)據(jù)速率創(chuàng)建視頻片段。盡管有延遲,畢竟可讓你發(fā)布較高質(zhì)量的視頻片段。

  順序流式文件是放在標(biāo)準(zhǔn)HTTP?或?FTP服務(wù)器上,易于管理,基本上與防火墻無關(guān)。

???? 但是順序流式傳輸不適合長片段和有隨機(jī)訪問要求的視頻,如:講座、演說與演示。它也不支持現(xiàn)場廣播,嚴(yán)格說來,它是一種點(diǎn)播技術(shù)。

②實(shí)時(shí)流式傳輸指保證媒體信號帶寬與網(wǎng)絡(luò)連接配匹,使媒體可被實(shí)時(shí)觀看到。

實(shí)時(shí)流與HTTP流式傳輸不同,他需要專用的流媒體服務(wù)器與傳輸協(xié)議。實(shí)時(shí)流式傳輸總是實(shí)時(shí)傳送,特別適合現(xiàn)場事件,也支持隨機(jī)訪問,用戶可快進(jìn)或后退以觀看前面或后面的內(nèi)容。

  理論上,實(shí)時(shí)流一經(jīng)播放就可不停止,但實(shí)際上,可能發(fā)生周期暫停。實(shí)時(shí)流式傳輸必須配匹連接帶寬,這意味著在以調(diào)制解調(diào)器速度連接時(shí)圖象質(zhì)量較差。而且,由于出錯丟失的信息被忽略掉,網(wǎng)絡(luò)擁擠或出現(xiàn)問題時(shí),視頻質(zhì)量很差。如欲保證視頻質(zhì)量,順序流式傳輸也許更好。

實(shí)時(shí)流式傳輸需要特定服務(wù)器,如QuickTime?Streaming?Server、RealServer與Windows?Media?Server。這些服務(wù)器允許你對媒體發(fā)送進(jìn)行更多級別的控制,因而系統(tǒng)設(shè)置、管理比標(biāo)準(zhǔn)HTTP服務(wù)器更復(fù)雜。

實(shí)時(shí)流式傳輸還需要特殊網(wǎng)絡(luò)協(xié)議,如:RTSP?(Realtime?Streaming?Protocol)或MMS?(Microsoft?Media?Server)。這些協(xié)議在有防火墻時(shí)有時(shí)會出現(xiàn)問題,導(dǎo)致用戶不能看到一些地點(diǎn)的實(shí)時(shí)內(nèi)容。

一般說來,如視頻為實(shí)時(shí)廣播,或使用流式傳輸媒體服務(wù)器,或應(yīng)用如RTSP的實(shí)時(shí)協(xié)議,即為實(shí)時(shí)流式傳輸。如使用HTTP服務(wù)器,文件即通過順序流發(fā)送。采用那種傳輸方法依賴你的需求。當(dāng)然,流式文件也支持在播放前完全下載到硬盤。

二、流媒體影響力

由于流媒體技術(shù)在一定程度上突破了網(wǎng)絡(luò)帶寬對多媒體信息傳輸?shù)南拗?/b>,因此被廣泛運(yùn)用于網(wǎng)上直播、網(wǎng)絡(luò)廣告、視頻點(diǎn)播、遠(yuǎn)程教育、遠(yuǎn)程醫(yī)療、視頻會議、企業(yè)培訓(xùn)、電子商務(wù)等多種領(lǐng)域。

流媒體技術(shù)為傳統(tǒng)媒體在互聯(lián)網(wǎng)上開辟更廣闊的空間提供了可能。廣播電視媒體節(jié)目的上網(wǎng)更為方便,聽眾、觀眾在網(wǎng)上點(diǎn)播節(jié)目更為簡單,網(wǎng)上音視頻直播也將得到廣泛運(yùn)用。

流媒體技術(shù)將過去傳統(tǒng)媒體的“推”式傳播,變?yōu)槭鼙姷摹袄?式傳播,受眾不再是被動地接受來自廣播電視的節(jié)目,而是在自己方便的時(shí)間來接收自己需要的信息。這將在一定程度上提高受眾的地位,使他們在新聞傳播中占有主動權(quán),也使他們的需求對新聞媒體的活動產(chǎn)生更為直接的影響。

  流媒體技術(shù)的廣泛運(yùn)用也將模糊廣播、電視與網(wǎng)絡(luò)之間的界限,網(wǎng)絡(luò)既是廣播電視的輔助者與延伸者,也將成為它們的有力的競爭者。

  利用流媒體技術(shù),網(wǎng)絡(luò)將提供新的音視頻節(jié)目樣式,也將形成新的經(jīng)營方式,例如收費(fèi)的點(diǎn)播服務(wù)。

  發(fā)揮傳統(tǒng)媒體的優(yōu)勢,利用網(wǎng)絡(luò)媒體的特長,保持媒體間良好的競爭與合作,是未來網(wǎng)絡(luò)的發(fā)展之路,也是未來傳統(tǒng)媒體的發(fā)展之路。

三、流媒體技術(shù)原理

流式傳輸?shù)膶?shí)現(xiàn)需要緩存。

  因?yàn)镮nternet以包傳輸為基礎(chǔ)進(jìn)行斷續(xù)的異步傳輸,對一個實(shí)時(shí)A/V源或存儲的A/V文件,在傳輸中它們要被分解為許多包,由于網(wǎng)絡(luò)是動態(tài)變化的,各個包選擇的路由可能不盡相同,故到達(dá)客戶端的時(shí)間延遲也就不等,甚至先發(fā)的數(shù)據(jù)包還有可能后到。為此,使用緩存系統(tǒng)來彌補(bǔ)延遲和抖動的影響,并保證數(shù)據(jù)包的順序正確,從而使媒體數(shù)據(jù)能連續(xù)輸出,而不會因?yàn)榫W(wǎng)絡(luò)暫時(shí)擁塞使播放出現(xiàn)停頓。

通常高速緩存所需容量并不大,因?yàn)?b>高速緩存使用環(huán)形鏈表結(jié)構(gòu)來存儲數(shù)據(jù):通過丟棄已經(jīng)播放的內(nèi)容,流可以重新利用空出的高速緩存空間來緩存后續(xù)尚未播放的內(nèi)容。

流式傳輸?shù)膶?shí)現(xiàn)需要合適的傳輸協(xié)議。由于TCP需要較多的開銷,故不太適合傳輸實(shí)時(shí)數(shù)據(jù)。

在流式傳輸?shù)膶?shí)現(xiàn)方案中,一般采用HTTP/TCP來傳輸控制信息,而用RTP/UDP來傳輸實(shí)時(shí)聲音數(shù)據(jù)。

流式傳輸?shù)倪^程一般是這樣的:用戶選擇某一流媒體服務(wù)后,Web瀏覽器與Web服務(wù)器之間使用HTTP/TCP交換控制信息,以便把需要傳輸?shù)膶?shí)時(shí)數(shù)據(jù)從原始信息中檢索出來;然后客戶機(jī)上的Web瀏覽器啟動A/VHelper程序,使用HTTP從Web服務(wù)器檢索相關(guān)參數(shù)對Helper程序初始化。這些參數(shù)可能包括目錄信息、A/V數(shù)據(jù)的編碼類型或與A/V檢索相關(guān)的服務(wù)器地址。

A/VHelper程序及A/V服務(wù)器運(yùn)行實(shí)時(shí)流控制協(xié)議(RTSP),以交換A/V傳輸所需的控制信息。與CD播放機(jī)或VCRs所提供的功能相似,RTSP提供了操縱播放、快進(jìn)、快倒、暫停及錄制等命令的方法。A/V服務(wù)器使用RTP/UDP協(xié)議將A/V數(shù)據(jù)傳輸給A/V客戶程序(一般可認(rèn)為客戶程序等同于Helper程序),一旦A/V數(shù)據(jù)抵達(dá)客戶端,A/V客戶程序即可播放輸出。

四、流媒體相關(guān)技術(shù)

1、智能流技術(shù)

自動檢測網(wǎng)絡(luò)狀況,并將音視頻的屬性調(diào)整到最佳,使用用戶收到與其網(wǎng)絡(luò)速度相符的媒體流,從而獲取最佳的用戶體驗(yàn)。

2、分流(splitting)技術(shù)

一般只在直播中使用。發(fā)送服務(wù)器將媒體流發(fā)送到分布在各地的多個接收服務(wù)器,客戶端可以就近訪問服務(wù)器獲得較高質(zhì)量的媒體流,同時(shí)減少帶寬使用。推流為將直播內(nèi)容推送至服務(wù)器的過程;拉流為服務(wù)器已有直播內(nèi)容,用指定地址進(jìn)行拉取的過程。

緩存(caching)技術(shù)

解決由于異步網(wǎng)絡(luò)、網(wǎng)絡(luò)延遲和抖動導(dǎo)致的數(shù)據(jù)包錯序的問題,數(shù)據(jù)包先緩存在本地,而緩存系統(tǒng)使用環(huán)形鏈表結(jié)構(gòu)丟棄掉已經(jīng)播放的內(nèi)容,防止緩存溢出。

內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)技術(shù)

架構(gòu)在IP網(wǎng)絡(luò)之上的一個內(nèi)容疊加網(wǎng),通過引入主動內(nèi)容管理、全局負(fù)載均衡和內(nèi)容緩存等技術(shù),將用戶請求的流媒體內(nèi)容發(fā)布到距離用戶最近的網(wǎng)絡(luò)邊緣,從而提供響應(yīng)速度,減輕骨干網(wǎng)絡(luò)的壓力。

五、流媒體傳輸模式

流媒體之所以能夠?qū)崿F(xiàn)多媒體數(shù)據(jù)的實(shí)時(shí)播放是采用了專門的網(wǎng)絡(luò)控制協(xié)議和數(shù)據(jù)傳輸機(jī)制。服務(wù)器端有專門的流媒體發(fā)布系統(tǒng),而客戶端則有專門的播放器,這兩部分都需要通過數(shù)據(jù)緩存區(qū)進(jìn)行數(shù)據(jù)的緩存。

與普通的分組交換網(wǎng)絡(luò)不同,流媒體系統(tǒng)的緩存區(qū)中的數(shù)據(jù)在數(shù)據(jù)傳輸過程中是動態(tài)的,也可成為是交換狀態(tài)的,數(shù)據(jù)以堆棧方式進(jìn)出緩沖區(qū),而不需要等待數(shù)據(jù)全部達(dá)到客戶機(jī)后才從緩沖區(qū)中被釋放出來,由于數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)是“流動”的,再加上數(shù)據(jù)的播放需要維持一個穩(wěn)定的數(shù)據(jù)輸出速度,隨時(shí)都要求緩沖區(qū)有相應(yīng)的數(shù)據(jù)提供給播放器,如果沒有相應(yīng)的數(shù)據(jù),則會出現(xiàn)內(nèi)容播放過程中的暫停和畫面的條約。

出現(xiàn)前一種情況一般是由于網(wǎng)絡(luò)傳輸速度跟不上數(shù)據(jù)的播放速度,而發(fā)生了數(shù)據(jù)的下溢,而后一種情況的發(fā)生是由于網(wǎng)絡(luò)傳輸速度過快,超過了播放的速度,而又沒有適當(dāng)?shù)膫鬏斂刂贫斐傻臄?shù)據(jù)上溢。

六、直播的實(shí)現(xiàn)

(1)直播中使用的流媒體協(xié)議

RTMP,Real Time Messaging Protocol(實(shí)時(shí)消息傳輸協(xié)議)的首字母縮寫。該協(xié)議基于TCP,是一個協(xié)議族,包括RTMP基本協(xié)議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設(shè)計(jì)用來進(jìn)行實(shí)時(shí)數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議,主要用來在Flash/AIR平臺和支持RTMP協(xié)議的流媒體/交互服務(wù)器之間進(jìn)行音視頻和數(shù)據(jù)通信。RTMP 基于 flash 無法在 iOS 的瀏覽器里播放,但是實(shí)時(shí)性比 HLS 要好。

HLS,HTTP Live Streaming(HTTP直播流技術(shù)),Apple的動態(tài)碼率自適應(yīng)技術(shù)。主要用于PC和Apple終端的音視頻服務(wù)。包括一個m3u(8)的索引文件,TS媒體分片文件和key加密串文件。

2、直播的模塊劃分

視頻錄制端:一般是電腦上的音視頻輸入設(shè)備或者手機(jī)端的攝像頭或者麥克風(fēng),目前以移動端的手機(jī)視頻為主。技術(shù):webRTC(用途:H5視頻錄制)

視頻播放端:可以是電腦上的播放器,手機(jī)端的 Native 播放器,還有就是 H5 的 video 標(biāo)簽等,目前還是已手機(jī)端的 Native 播放器為主。技術(shù):HLS協(xié)議或RTMP協(xié)議(用途:視頻播放)、ffmpeg(用途:使用RTMP協(xié)議時(shí)進(jìn)行移動端視頻解碼)

視頻服務(wù)器端:一般是一臺 nginx 服務(wù)器,用來接受視頻錄制端提供的視頻源,同時(shí)提供給視頻播放端流服務(wù)。技術(shù):RTMP協(xié)議(用途:上傳視頻流)、nginx rtmp-moduleSRS(simple-rtmp-server)(用途:流服務(wù)器)




參考文檔:

初識流媒體與流媒體技術(shù)

流媒體與直播技術(shù)學(xué)習(xí)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容