美橙網(wǎng)站建設(shè)怎么做全國(guó)疫情最新數(shù)據(jù)
推流:將直播內(nèi)容推送至服務(wù)器的過(guò)程
拉流:為服務(wù)器已有直播內(nèi)容,用指定地址進(jìn)行拉取的過(guò)程
什么是推流?
推流,指的是把采集階段封包好的內(nèi)容傳輸?shù)椒?wù)器的過(guò)程。其實(shí)就是將現(xiàn)場(chǎng)的視頻信號(hào)傳到網(wǎng)絡(luò)的過(guò)程?!巴屏鳌睂?duì)網(wǎng)絡(luò)要求比較高,如果網(wǎng)絡(luò)不穩(wěn)定,直播效果就會(huì)很差,觀眾觀看直播時(shí)就會(huì)發(fā)生卡頓等現(xiàn)象,觀看體驗(yàn)很是糟糕。
要想用于推流還必須把音視頻數(shù)據(jù)使用傳輸協(xié)議進(jìn)行封裝,變成流數(shù)據(jù)。常用的流傳輸協(xié)議有RTSP、RTMP、HLS等,使用RTMP傳輸?shù)难訒r(shí)通常在1–3秒,對(duì)于手機(jī)直播這種實(shí)時(shí)性要求非常高的場(chǎng)景,RTMP也成為手機(jī)直播中最常用的流傳輸協(xié)議。最后通過(guò)一定的Qos算法將音視頻流數(shù)據(jù)推送到網(wǎng)絡(luò)斷,通過(guò)CDN進(jìn)行分發(fā)。
在直播場(chǎng)景中,網(wǎng)絡(luò)不穩(wěn)定是非常常見(jiàn)的,這時(shí)就需要Qos來(lái)保證網(wǎng)絡(luò)不穩(wěn)情況下的用戶觀看直播的體驗(yàn),通常是通過(guò)主播端和播放端設(shè)置緩存,讓碼率均勻。另外,針對(duì)實(shí)時(shí)變化的網(wǎng)絡(luò)狀況,動(dòng)態(tài)碼率和幀率也是最常用的策略。
直播中使用廣泛的“推流協(xié)議”一般是RTMP(Real Time Messaging Protocol——實(shí)時(shí)消息傳輸協(xié)議)。該協(xié)議是一個(gè)基于TCP的協(xié)議族,是一種設(shè)計(jì)用來(lái)進(jìn)行實(shí)時(shí)數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議,主要用來(lái)在Flash/AIR平臺(tái)和支持RTMP協(xié)議的流媒體/交互服務(wù)器之間進(jìn)行音視頻和數(shù)據(jù)通信。支持該協(xié)議的軟件包括Adobe Media Server/Ultrant Media Server/red5等。
什么是拉流?
拉流是指服務(wù)器已有直播內(nèi)容,根據(jù)協(xié)議類型(如RTMP、RTP、RTSP、HTTP等),與服務(wù)器建立連接并接收數(shù)據(jù),進(jìn)行拉取的過(guò)程。拉流端的核心處理在播放器端的解碼和渲染,在互動(dòng)直播中還需集成聊天室、點(diǎn)贊和禮物系統(tǒng)等功能。
拉流端現(xiàn)在支持RTMP、HLS、HDL(HTTP-FLV)三種協(xié)議,其中,在網(wǎng)絡(luò)穩(wěn)定的情況下,對(duì)于HDL協(xié)議的延時(shí)控制可達(dá)1s,完全滿足互動(dòng)直播的業(yè)務(wù)需求。RTMP是Adobe的專利協(xié)議,開(kāi)源軟件和開(kāi)源庫(kù)都支持的比較好,延時(shí)一般在1-3秒。HLS是蘋(píng)果提出的基于HTTP的流媒體傳輸協(xié)議,優(yōu)先是跨平臺(tái)性比較好,HTML5可以直接打開(kāi)播放,移動(dòng)端兼容性良好,但是缺點(diǎn)是延遲比較高。
推流碼:
RTMP是Real Time Messaging Protocol(實(shí)時(shí)消息傳輸協(xié)議)的首字母縮寫(xiě)。
一種設(shè)計(jì)用來(lái)進(jìn)行實(shí)時(shí)數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議。
每一個(gè)推流碼地址唯一指向單個(gè)的直播活動(dòng)。它由rtmp://開(kāi)頭,包含了上傳服務(wù)器地址,上傳目錄名和上傳節(jié)點(diǎn),三部分組成。所有的rtmp地址都是這種結(jié)構(gòu)組成,基本同一個(gè)平臺(tái)不同直播的地址前兩部分是不變的。