本發(fā)明涉及弱網(wǎng)傳輸領(lǐng)域,特別涉及一種基于gb28181協(xié)議的弱網(wǎng)傳輸優(yōu)化系統(tǒng)與方法。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)的發(fā)展,以及國家在安防等方面的投入加大,基于gb28181協(xié)議的通訊產(chǎn)品得到了廣泛的應(yīng)用。安防攝像頭,布控球等隨處可見,公檢法、衛(wèi)生、鐵路等工作人員基本都佩戴了gb28181執(zhí)法記錄儀。
2、現(xiàn)有技術(shù)中,當前基于gb28181的通訊產(chǎn)品主要用途基本在于實時音視頻傳輸,數(shù)據(jù)傳輸量較大,對網(wǎng)絡(luò)質(zhì)量要求高。目前在視頻傳輸方式上主要采用rtp實時傳輸方式,傳統(tǒng)的rtp/rtcp方式,能提供很好的流量和擁塞控制,但是對于弱網(wǎng)情況下的丟包處理得不夠,很容易出現(xiàn)花屏,馬賽克等現(xiàn)象,影響觀看體驗。雖然可以采取tcp/rtp/avp的方式可以很好地解決丟包造成的花屏、馬賽克等問題,但會增加延時,可能出現(xiàn)視頻卡頓現(xiàn)象。
3、因此,當前急需一種基于gb28181的針對弱網(wǎng)優(yōu)化的傳輸方案,平衡好丟包和延時的問題,為當前的安防工作添磚加瓦。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于提供一種基于gb28181協(xié)議的弱網(wǎng)傳輸優(yōu)化系統(tǒng)與方法,以解決(1)在弱網(wǎng)情況下的丟包處理得不夠,容易出現(xiàn)花屏的問題;(2)采取tcp/rtp/avp的方式解決丟包問題的同時會增加延時,出現(xiàn)視頻卡頓的問題。
2、為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
3、一種基于視頻監(jiān)控聯(lián)網(wǎng)協(xié)議的弱網(wǎng)傳輸優(yōu)化方法,其特征在于:通過各個實體設(shè)備通過g1向接入服務(wù)器注冊和采用視頻監(jiān)控聯(lián)網(wǎng)協(xié)議通訊,接入服務(wù)器擴展國標拉流消息中的sdp并添加fec數(shù)據(jù)類型,瀏覽器端通過http1與接入服務(wù)器交互,發(fā)送拉流指令,接入服務(wù)器通過http2通知媒體服務(wù)器操作,實體設(shè)備根據(jù)指令采集、編碼和發(fā)送視頻數(shù)據(jù),數(shù)據(jù)通過s1、s2傳輸至媒體服務(wù)器,經(jīng)處理后通過s3轉(zhuǎn)發(fā)給瀏覽器播放;所述的g1是國標信令流,s1、s2、s3均是rtp媒體流,s1、s2采用udp傳輸,s3采用tcp傳輸。
4、一種基于視頻監(jiān)控聯(lián)網(wǎng)協(xié)議的弱網(wǎng)傳輸優(yōu)化方法具體包括以下步驟;
5、s1:各個實體設(shè)備通過g1注冊到接入服務(wù)器,各個實體設(shè)備與接入服務(wù)器采用視頻監(jiān)控聯(lián)網(wǎng)協(xié)議進行相應(yīng)的消息通訊;
6、s2:接入服務(wù)器通過g1收到實體設(shè)備注冊消息,從數(shù)據(jù)庫查找實體設(shè)備信息并驗證注冊參數(shù),并通過g1將結(jié)果返回到實體設(shè)備;
7、s3:瀏覽器端通過http1與接入服務(wù)器連接通訊,連接成功后瀏覽器端會先通過http1查詢當前已經(jīng)注冊的設(shè)備并顯示,后續(xù)注冊的設(shè)備,接入服務(wù)器會通過http1上報給瀏覽器端,供瀏覽器端顯示;
8、s4、:瀏覽器端通過http1將拉流指令發(fā)送到接入服務(wù)器;
9、s5:接入服務(wù)器通過http2通知媒體服務(wù)器打開收發(fā)數(shù)據(jù)端口,并將媒體服務(wù)器收流地址以及媒體參數(shù)發(fā)送給實體設(shè)備;
10、s6:實體設(shè)備收到拉流消息,將媒體參數(shù)回復(fù)給接入服務(wù)器;
11、s7:接入服務(wù)器接收到實體設(shè)備回復(fù)之后,通過http1將媒體服務(wù)器發(fā)流地址發(fā)送給瀏覽器端,然后給實體設(shè)備發(fā)送“ack”消息,示意實體設(shè)備開始推流;
12、s8:瀏覽器端接收到接入服務(wù)器回復(fù)的媒體服務(wù)器發(fā)流地址后,主動連接到媒體服務(wù)器發(fā)流地址,開始收流、播放;
13、s9:實體設(shè)備收到服務(wù)器發(fā)送的“ack”消息后,實體設(shè)備按預(yù)設(shè)的碼率、幀率開始采集攝像頭視頻,并編碼放入視頻幀隊列;
14、s10:實體設(shè)備將視頻幀隊列中的視頻幀打包成rtp數(shù)據(jù)包,并生成fec數(shù)據(jù)包,分別放入發(fā)送隊列和fec數(shù)據(jù)隊列;
15、s11:實體設(shè)備將發(fā)送隊列中原始視頻rtp包通過s1發(fā)送到媒體服務(wù)器,并將已發(fā)送的rtp包加入已發(fā)送隊列,保存一段時間,定期清理超時數(shù)據(jù);
16、s12:實體設(shè)備將fec數(shù)據(jù)隊列中的fec數(shù)據(jù)通過s2發(fā)送到媒體服務(wù)器;
17、s13:媒體服務(wù)器將從s1、s2接收到的原始視頻rtp和fec數(shù)據(jù)分別放入rtp數(shù)據(jù)隊列和fec數(shù)據(jù)隊列;
18、s14:媒體服務(wù)器現(xiàn)將rtp數(shù)據(jù)隊列隊首的等待超時數(shù)據(jù)和已拼接幀完整的數(shù)據(jù)通過s3轉(zhuǎn)發(fā)給瀏覽器;
19、s15:瀏覽器將從s3接收到的媒體數(shù)據(jù)送入播放器解碼播放。
20、所述的一種基于視頻監(jiān)控聯(lián)網(wǎng)協(xié)議的弱網(wǎng)傳輸優(yōu)化方法,在s15步驟后依次進行以下步驟:
21、s16:媒體服務(wù)器找到當前rtp數(shù)據(jù)隊列中缺少的包序,通過fec數(shù)據(jù)隊列嘗試修復(fù),將修復(fù)完的數(shù)據(jù)按包序插入到rtp數(shù)據(jù)隊列;如果缺失序列太多或者fec數(shù)據(jù)本身有缺失導(dǎo)致修復(fù)失敗,則通過s1給實體設(shè)備發(fā)送nack信號,通知實體設(shè)備重發(fā)一份缺失的原始數(shù)據(jù);
22、s17:實體設(shè)備收到媒體服務(wù)器發(fā)送的nack信號后,從已發(fā)送隊列中找到需要重發(fā)的數(shù)據(jù)通過s1重發(fā)給媒體服務(wù)器。
23、所述的一種基于視頻監(jiān)控聯(lián)網(wǎng)協(xié)議的弱網(wǎng)傳輸優(yōu)化方法,還包括以下步驟:
24、s1:觀看結(jié)束后瀏覽器發(fā)送結(jié)束指令到接入服務(wù)器;
25、s2:接入服務(wù)器收到結(jié)束指令后轉(zhuǎn)發(fā)給實體設(shè)備,并通過http2通知媒體服務(wù)器關(guān)閉接收和轉(zhuǎn)發(fā)端口;
26、s3:實體設(shè)備收到結(jié)束指令,退出推流狀態(tài),停止推流。
27、所述的實體設(shè)備是指執(zhí)法記錄儀設(shè)備。
28、所述的g1是國標信令流,s1、s2、s3均是rtp媒體流,s1、s2采用udp傳輸,s3采用tcp傳輸。
29、所述的db1、db2是數(shù)據(jù)庫數(shù)據(jù)流,http1、http2均是http協(xié)議數(shù)據(jù)流。
30、所述的一種基于視頻監(jiān)控聯(lián)網(wǎng)協(xié)議的弱網(wǎng)傳輸優(yōu)化方法,接入服務(wù)器擴展了國標拉流消息“invite”中的sdp(session?description?protocol,會話描述協(xié)議),rtpmap(rtp參數(shù)映射表)在原有的視頻參數(shù)ps/90000、h264/90000、mpeg4/90000、h265/90000中新加flexfec/90000類型,表示時鐘頻率為90000的fec(forward?error?correction,前向糾錯)數(shù)據(jù)。
31、所述的一種基于視頻監(jiān)控聯(lián)網(wǎng)協(xié)議的弱網(wǎng)傳輸優(yōu)化方法,所述的媒體服務(wù)器接受、修復(fù)、錄制和轉(zhuǎn)發(fā)媒體數(shù)據(jù);所述的瀏覽器端提供人機交互界面,提供設(shè)備信息增刪改查的平臺管理窗口;數(shù)據(jù)庫存儲終端設(shè)備信息。
32、所述的一種基于視頻監(jiān)控聯(lián)網(wǎng)協(xié)議的弱網(wǎng)傳輸優(yōu)化方法,所述的設(shè)備擴展了gb28181協(xié)議sdp,并在rtp流里新加nack和fec。
33、一種基于視頻監(jiān)控聯(lián)網(wǎng)協(xié)議的弱網(wǎng)傳輸優(yōu)化系統(tǒng),運行所述的基于視頻監(jiān)控聯(lián)網(wǎng)協(xié)議的弱網(wǎng)傳輸優(yōu)化方法進行弱網(wǎng)傳輸優(yōu)化。
34、為了解決設(shè)備到媒體服務(wù)器媒體傳輸時產(chǎn)生的丟包問題,由于實際網(wǎng)絡(luò)丟包不可控,故測試時需要采用軟件模擬的方式來模擬丟包,早期微軟有提供一個網(wǎng)絡(luò)模擬工具(network?emulator?toolkit),先找一臺能夠連接上服務(wù)器且?guī)捵銐虻碾娔X,然后在此電腦上配置好模擬工具參數(shù),設(shè)置隨機丟包率為15%。最后讓此電腦提供一個熱點供設(shè)備連接,即可將設(shè)備與媒體服務(wù)器間的丟包率穩(wěn)定在15±1%;
35、經(jīng)過對比測試,在15%丟包率的情況下:
36、(1)傳統(tǒng)的rtp/rtcp模式,由于丟包,無法解碼出畫面;
37、(2)tcp/rtp/rtcp模式下,能播放出畫面,初始延時高達7秒,且隨時間推移不斷加大,卡頓嚴重;
38、(3)采用本發(fā)明設(shè)計方案,畫面流暢,延時只有2秒。