自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

網(wǎng)絡(luò)視頻開發(fā)?你需要了解這些知識(shí)

網(wǎng)絡(luò) 通信技術(shù)
在國(guó)內(nèi),視頻開發(fā)所需要了解的基礎(chǔ)知識(shí),總結(jié)起來(lái),可以歸納為:一標(biāo)準(zhǔn)五協(xié)議二類庫(kù)。下面我們就分別看看他們都指什么。

本文轉(zhuǎn)載自微信公眾號(hào)「活在信息時(shí)代」,作者活在信息時(shí)代 。轉(zhuǎn)載本文請(qǐng)聯(lián)活在信息時(shí)代公眾號(hào)。

隨著網(wǎng)絡(luò)帶寬的日益擴(kuò)大,基于網(wǎng)絡(luò)的視頻流越來(lái)越成為很多應(yīng)用內(nèi)置的功能。因此,對(duì)于視頻相關(guān)開發(fā)的技術(shù)需求也越來(lái)越多。因此,對(duì)于很多程序員來(lái)說(shuō),掌握一些基礎(chǔ)的視頻流開發(fā)知識(shí),就成為了解決很多問(wèn)題的關(guān)鍵。但是視頻開發(fā)相關(guān)的知識(shí)很多,一些開發(fā)人員,尤其是中途轉(zhuǎn)行的技術(shù)人員,不知道如何開始,因此,本文就為大家介紹一些視頻開發(fā)的基礎(chǔ)知識(shí),從而讓大家少走些彎路。

在國(guó)內(nèi),視頻開發(fā)所需要了解的基礎(chǔ)知識(shí),總結(jié)起來(lái),可以歸納為:一標(biāo)準(zhǔn)五協(xié)議二類庫(kù)。下面我們就分別看看他們都指什么。

一、標(biāo)準(zhǔn)

一標(biāo)準(zhǔn)指得是是國(guó)家標(biāo)準(zhǔn)GB/T 28181—2016《公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)信息傳輸、交換、控制技術(shù)要求》,該標(biāo)準(zhǔn)規(guī)定了公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)的互聯(lián)結(jié)構(gòu), 傳輸、交換、控制的基本要求和安全性要求,以及控制、傳輸流程和協(xié)議接口等技術(shù)要求,是視頻監(jiān)控領(lǐng)域的國(guó)家標(biāo)準(zhǔn)。

GB28181協(xié)議信令層面使用的是SIP(Session Initiation Protocol)協(xié)議,流媒體傳輸層面使用的是實(shí)時(shí)傳輸協(xié)議(Real-time Transport Protocol,RTP)協(xié)議。

GB28181可以理解為在國(guó)際通用標(biāo)準(zhǔn)的基礎(chǔ)之上進(jìn)行了私有化定制以滿足視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)互聯(lián)傳輸?shù)臉?biāo)準(zhǔn)化需求。它的協(xié)議會(huì)話通道實(shí)際上使用的是SIP協(xié)議,并且在SIP協(xié)議的基礎(chǔ)之上做了些私有化處理。

GB28181標(biāo)準(zhǔn)中具體通信協(xié)議結(jié)構(gòu)圖如下圖所示:

圖片

二、協(xié)議

五協(xié)議指得是SIP、RTP、RTCP、RTSP和RTMP。

1、SIP

SIP(Session initialization Protocol,會(huì)話初始協(xié)議)是一個(gè)由IETF MMUSIC工作組開發(fā)的協(xié)議,作為標(biāo)準(zhǔn)被提議用于創(chuàng)建,修改和終止包括視頻,語(yǔ)音,即時(shí)通信,在線游戲和虛擬現(xiàn)實(shí)等多種多媒體元素在內(nèi)的交互式用戶會(huì)話。

SIP中一個(gè)比較重要的概念是用戶代理(User Agent),指的是一個(gè)SIP邏輯網(wǎng)絡(luò)端點(diǎn),用于創(chuàng)建、發(fā)送、接收SIP消息并管理一個(gè)SIP會(huì)話。

SIP用戶代理又可分為用戶代理客戶端UAC(User Agent Client)和用戶代理服務(wù)端UAS(User Agent Server)。UAC創(chuàng)建并發(fā)送SIP請(qǐng)求,UAS接收處理SIP請(qǐng)求,發(fā)送SIP響應(yīng)。SIP協(xié)議會(huì)與許多其它的協(xié)議協(xié)同工作,如SIP報(bào)文內(nèi)容發(fā)送會(huì)話描述協(xié)議(Session Description Protocol,SDP),SDP協(xié)議描述了會(huì)話所使用流媒體細(xì)節(jié),如:使用哪個(gè)IP端口,采用哪種編解碼器等等。

SIP的一個(gè)典型用途是:SIP會(huì)話傳輸一些簡(jiǎn)單的經(jīng)過(guò)報(bào)文的實(shí)時(shí)傳輸協(xié)議流,RTP本身才是語(yǔ)音或視頻的載體。

在前文所述的GB28181協(xié)議中,聯(lián)網(wǎng)系統(tǒng)在進(jìn)行視音頻傳輸及控制時(shí)應(yīng)建立兩個(gè)傳輸通道: 會(huì)話通道和媒體流通道。會(huì)話通道用于在設(shè)備之間建立會(huì)話并傳輸系統(tǒng)控制命令; 媒體流通道用于傳輸視音頻數(shù)據(jù),經(jīng)過(guò)壓縮編碼的視音頻流采用流媒體協(xié)議RTP/RTCP傳輸。

2、RTP

RTP(Real-time Transport Protocol)實(shí)時(shí)傳輸協(xié)議是用于Internet上針對(duì)多媒體數(shù)據(jù)流的一種傳輸層協(xié)議。

RTP協(xié)議和RTP控制協(xié)議RTCP一起使用,而且它是建立在UDP協(xié)議上的。

和UDP一樣,RTP并不提供任何傳輸可靠性的保證和流量的擁塞控制機(jī)制,無(wú)法保證實(shí)時(shí)業(yè)務(wù)的服務(wù)質(zhì)量。在實(shí)際應(yīng)用中,RTP協(xié)議和UDP兩者共同完成傳輸層協(xié)議傳輸。UDP只是負(fù)責(zé)傳輸數(shù)據(jù)包,RTP提供時(shí)間標(biāo)志戳及其他技術(shù)來(lái)保證流媒體在實(shí)時(shí)傳輸時(shí)的時(shí)間正確性。RTP具有延時(shí)低和支持多播兩個(gè)特點(diǎn)。

多播功能在網(wǎng)絡(luò)視頻會(huì)議方面有著很廣泛的應(yīng)用,它主要應(yīng)用于這樣一種環(huán)境

假設(shè)紅色的圓為存放有視頻數(shù)據(jù)的流媒體服務(wù)器,其他的圓為連接到該服務(wù)器的各個(gè)客戶端,當(dāng)所有的綠色的客戶端要求同時(shí)觀看紅色服務(wù)器上的某一個(gè)視頻時(shí),如果服務(wù)器為每一路客戶端單獨(dú)建立連接進(jìn)行數(shù)據(jù)的傳輸,這樣明顯不太合理浪費(fèi)帶寬,因此,多播技術(shù)可以很好地解決這種問(wèn)題,即同一份數(shù)據(jù),由服務(wù)器發(fā)送到公共的多播地址,各個(gè)客戶端均監(jiān)聽同一個(gè)多播地址來(lái)獲取數(shù)據(jù),這樣,既節(jié)省了帶寬,同時(shí)也保證了各個(gè)客戶端所觀看的視頻的同步。RTP協(xié)議在最初就是為了實(shí)現(xiàn)類似的視頻會(huì)議的應(yīng)用而誕生的。

3、RTCP

RTCP(Real-time ControlProtocol,實(shí)時(shí)傳輸控制協(xié)議)與RTP共同定義在1996年提出的RFC 1889中,它是和 RTP一起工作的控制協(xié)議。RTCP單獨(dú)運(yùn)行在低層協(xié)議上,由低層協(xié)議提供數(shù)據(jù)與控制包的復(fù)用。在RTP會(huì)話期間,每個(gè)會(huì)話參與者周期性地向所有其他參與者發(fā)送RTCP控制信息包。

圖片

4、RTSP

RTSP(RealTime Streaming Potocol,實(shí)時(shí)流協(xié)議),是傳輸層之上的應(yīng)用層協(xié)議(RTP是傳輸層),它可選擇UDP、組播UDP、TCP、RTP為傳輸機(jī)制。RTSP定義了雙向多應(yīng)用程序如何有效地通過(guò)IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)。

RTSP充當(dāng)多媒體服務(wù)器的網(wǎng)絡(luò)遠(yuǎn)程控制,使實(shí)時(shí)數(shù)據(jù)如音頻與視頻的快進(jìn)快退、中止、播放成為可能。

和RTP相比,應(yīng)用場(chǎng)景上RTSP是一種雙向?qū)崟r(shí)數(shù)據(jù)傳輸協(xié)議,它允許客戶端向服務(wù)器端發(fā)送請(qǐng)求,如回放、快進(jìn)、倒退等操作。協(xié)議上,RTSP是應(yīng)用層協(xié)議,可基于RTP來(lái)傳送數(shù)據(jù),還可以選擇TCP、UDP、組播UDP等通道來(lái)發(fā)送數(shù)據(jù),具有很好的擴(kuò)展性。這里就比較清晰了,運(yùn)營(yíng)商的IPTV直播業(yè)務(wù),沒(méi)有任何回放、倒退等操作,所以可以直接采用UDP+RTP+組播實(shí)現(xiàn)。

5、RTMP

RTMP(Real Time Messaging Protocol,實(shí)時(shí)消息傳送協(xié)議)是Adobe Systems公司為Flash播放器和服務(wù)器之間音頻、視頻和數(shù)據(jù)傳輸開發(fā)的開放協(xié)議。

RTMP協(xié)議從屬于應(yīng)用層,被設(shè)計(jì)用來(lái)在適合的傳輸協(xié)議(如TCP)上復(fù)用和打包多媒體傳輸流(如音頻、視頻和互動(dòng)內(nèi)容)。RTMP提供了一套全雙工的可靠的多路復(fù)用消息服務(wù),類似于TCP協(xié)議[RFC0793],用來(lái)在一對(duì)結(jié)點(diǎn)之間并行傳輸帶時(shí)間戳的音頻流,視頻流,數(shù)據(jù)流。通常情況下,不同類型的消息會(huì)被分配不同的優(yōu)先級(jí),當(dāng)網(wǎng)絡(luò)傳輸能力受限時(shí),優(yōu)先級(jí)用來(lái)控制消息在網(wǎng)絡(luò)底層的排隊(duì)順序。

除了以上五種協(xié)議之外,直播協(xié)議HLS、SRT以及蘋果公司的HLS協(xié)議也是經(jīng)常會(huì)用到的技術(shù)。

三、類庫(kù)

二類庫(kù)是指Google開源的WebRTC、以騰訊的視頻SDK為代表的在線視頻SDK。

1、WebRTC

2010年5月,Google以6820萬(wàn)美元收購(gòu)VoIP軟件開發(fā)商Global IP Solutions的GIPS引擎,并改為名為“WebRTC”。

WebRTC可通過(guò)簡(jiǎn)單的 API 為瀏覽器和移動(dòng)應(yīng)用程序提供實(shí)時(shí)通信(RTC)功能。WebRTC 組件已經(jīng)過(guò)優(yōu)化,可以最好地滿足此目的。

借助 WebRTC,用戶可以在基于開放標(biāo)準(zhǔn)的應(yīng)用程序中添加實(shí)時(shí)通信功能。它支持在同級(jí)之間發(fā)送視頻,語(yǔ)音和通用數(shù)據(jù),從而使開發(fā)人員能夠構(gòu)建功能強(qiáng)大的語(yǔ)音和視頻通信解決方案。該技術(shù)可在所有現(xiàn)代瀏覽器以及所有主要平臺(tái)的本機(jī)客戶端上使用。WebRTC 背后的技術(shù)被實(shí)現(xiàn)為一個(gè)開放的 Web 標(biāo)準(zhǔn),并在所有主要瀏覽器中均以常規(guī) JavaScript API 的形式提供。國(guó)內(nèi)提供音視頻PaaS和SaaS服務(wù)的廠商都是基于WebRTC開發(fā)的,包括QQ、微信,以及從騰訊和YY出來(lái)創(chuàng)業(yè)的各種團(tuán)隊(duì)。

2、騰訊直播SDK

直播 SDK 是騰訊云視立方產(chǎn)品家族的子產(chǎn)品之一。騰訊直播 SDK 支持直播推流、拉流、主播觀眾互動(dòng)連麥、主播跨房 PK 等能力。

除了騰訊直播SDK以外,YY的聲網(wǎng)、釘釘?shù)膙idyo等,也提供類似的在線直播平臺(tái)SDK。可以不用自己做太多的開發(fā)。

四、視頻形式及常見解決方案

從交互方式來(lái)看,流媒體分為點(diǎn)播(VOD)和直播(LIVE)兩種。

直播(LIVE):HLS,RTMP,http+MP4,http+flv,RTP+RTSP

點(diǎn)播(VOD):http+MP4,http+flv,HLS,DASH

從業(yè)務(wù)場(chǎng)景來(lái)看,常見的應(yīng)用方案可以歸納為以下幾種。

直播:RTMP,HLS,http+flv

音視頻通話:webrtc(RTP),SIP+RTP

視頻點(diǎn)播:http+MP4,http+flv,hls

IPTV:RTSP(信令)+RTP(媒體)

會(huì)議電視:RTP(媒體)+SIP(信令),H323(信令)+RTP(媒體)

視頻監(jiān)控:國(guó)標(biāo)SIP(信令)+RTP(媒體),RTSP(媒體)+RTP(媒體)

VOIP:SIP(信令)+RTP(媒體)

當(dāng)然,以上只是一個(gè)簡(jiǎn)單的介紹,具何如何應(yīng)用,還要看自己的業(yè)務(wù)需求。

責(zé)任編輯:武曉燕 來(lái)源: 活在信息時(shí)代
相關(guān)推薦

2025-02-08 10:29:03

2019-09-18 17:35:52

2023-03-02 11:52:00

自定義自動(dòng)配置

2015-08-12 15:12:56

黑客攻擊云安全云服務(wù)

2021-07-06 14:56:20

深度學(xué)習(xí)編程人工智能

2021-02-03 13:22:53

區(qū)塊鏈數(shù)據(jù)隱私

2018-06-15 08:43:33

Java堆外內(nèi)存

2011-04-01 11:16:06

hessian

2012-06-26 10:13:55

2012-06-27 09:11:47

2020-12-09 18:16:48

容器云開發(fā)CaaS

2018-06-21 06:56:03

CASB云安全加密

2023-12-15 08:07:37

響應(yīng)式布局官網(wǎng)

2017-10-12 18:42:08

前端HTML5基礎(chǔ)知識(shí)

2021-05-06 08:00:00

人工智能神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)

2018-08-23 10:17:09

2021-11-16 19:12:16

網(wǎng)絡(luò)安全概念信息安全

2015-07-15 13:34:37

JS開發(fā)習(xí)慣

2016-11-01 16:41:08

直通網(wǎng)線連接端口傳輸數(shù)據(jù)

2021-04-27 22:27:19

手機(jī)安卓蘋果
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)