本發(fā)明涉及視頻傳輸技術(shù)領(lǐng)域,尤其涉及一種采用域服務(wù)支持網(wǎng)狀結(jié)構(gòu)的視頻流傳輸方法。
背景技術(shù):
隨著國民經(jīng)濟的高速增長、科學(xué)技術(shù)的快速進步和國力的不斷增強,智能化視頻監(jiān)控技術(shù)也進入一個全新的領(lǐng)域。社會各個領(lǐng)域?qū)Π踩婪兜男枨笈c日俱增,而且要求越來越高,在我們的生產(chǎn)生活中得到廣泛應(yīng)用,銀行、安檢、交通路口、商場、學(xué)校、小區(qū)等。
如今,“北京奧運”“上海世博”等重大項目的完成,安防行業(yè)呈現(xiàn)一個蓬勃發(fā)展的良好勢頭。隨著安防行業(yè)的興起,各個廠商產(chǎn)品類型和建設(shè)方案越來越多,視頻監(jiān)控設(shè)備也日益增多,在GB/T28181標(biāo)準(zhǔn)基礎(chǔ)之上,實現(xiàn)視頻監(jiān)控系統(tǒng)的互聯(lián)互通,實現(xiàn)視頻圖像互聯(lián)調(diào)度和資源共享。由于各地視頻專網(wǎng)建設(shè)的時期不同,造成網(wǎng)絡(luò)帶寬負(fù)載能力不同,有千兆的,有百兆的,甚至還有小于百兆的,這樣在并發(fā)多路視頻進行轉(zhuǎn)發(fā)時,特別是在小于百兆的網(wǎng)絡(luò)環(huán)境中,使用目前的直接轉(zhuǎn)發(fā)傳輸模式,子網(wǎng)網(wǎng)絡(luò)帶寬可以滿足,但是主干網(wǎng)絡(luò)流量倍數(shù)加大,導(dǎo)致主干網(wǎng)絡(luò)阻塞,視頻數(shù)據(jù)丟失,出現(xiàn)馬賽克現(xiàn)象,更嚴(yán)重的情況導(dǎo)致網(wǎng)絡(luò)癱瘓。
本文提出了一種采用域服務(wù)支持網(wǎng)狀結(jié)構(gòu)的視頻傳輸方法,解決了現(xiàn)有的視頻路數(shù)并發(fā)大帶來的網(wǎng)絡(luò)阻塞現(xiàn)象,合理有效降低主干網(wǎng)絡(luò)傳輸占用帶寬,使數(shù)據(jù)傳輸合理分流,保證視頻流暢性傳輸。
技術(shù)實現(xiàn)要素:
本發(fā)明解決的問題是現(xiàn)有的視頻傳輸方法,由于視頻路數(shù)并發(fā)大帶來的網(wǎng)絡(luò)阻塞現(xiàn)象。
為解決上述問題,本發(fā)明實施例提供一種視頻流傳輸方法,包括如下步驟:
接收本域客戶端的請求消息;
解析所述請求消息,以獲取所述本域客戶端請求視頻播放的攝像頭所對應(yīng)的攝像頭標(biāo)識;
基于攝像頭標(biāo)識判斷所述攝像頭是否屬于本域;
若所述攝像頭屬于本域,通過本域流媒體服務(wù)將獲取到的視頻碼流轉(zhuǎn)發(fā)至所述本域客戶端;
若所述攝像頭不屬于本域,接收由目標(biāo)域流媒體服務(wù)獲取到的視頻碼流,再通過本域流媒體服務(wù)將該視頻碼流轉(zhuǎn)發(fā)至所述本域客戶端。
可選的,在執(zhí)行解析所述請求消息的步驟之后,以及執(zhí)行所述基于攝像頭標(biāo)識判斷所述攝像頭是否屬于本域的步驟之前還包括如下步驟:
將解析所述請求消息后獲取到的本域客戶端的客戶端標(biāo)識與所述請求消息做關(guān)聯(lián),并將關(guān)聯(lián)后的信息存儲于緩沖隊列中;
掃描所述緩沖隊列,通過解析所述關(guān)聯(lián)后的信息以獲取本域客戶端的客戶端標(biāo)識和所述本域客戶端請求視頻播放的攝像頭所對應(yīng)的攝像頭標(biāo)識。
可選的,將解析所述請求消息后獲取到的本域客戶端的客戶端標(biāo)識與所述請求消息做關(guān)聯(lián)包括:以所述本域客戶端的客戶端標(biāo)識為索引,建立該客戶端標(biāo)識與所述請求信息中的攝像頭標(biāo)識、客戶端IP、端口、命令號、命令號序號、用戶名以及群組名之間的關(guān)聯(lián)關(guān)系。
可選的,所述通過本域流媒體服務(wù)將獲取到的視頻碼流轉(zhuǎn)發(fā)至所述本域客戶端包括如下步驟:
獲取本域流媒體服務(wù)信息并建立第一轉(zhuǎn)發(fā)通道;
將所述本域客戶端的信息加入所述第一轉(zhuǎn)發(fā)通道;
向下級平臺發(fā)送請求播放信令以獲取視頻碼流;
將獲取到的視頻碼流轉(zhuǎn)發(fā)至所述本域客戶端。
可選的,所述接收由目標(biāo)域流媒體服務(wù)獲取到的視頻碼流,再通過本域流媒體服務(wù)將該視頻碼流轉(zhuǎn)發(fā)至所述本域客戶端包括如下步驟:
向中心域服務(wù)發(fā)出請求以獲取所述攝像頭所屬的目標(biāo)域;
登陸目標(biāo)域以獲取目標(biāo)域流媒體服務(wù)信息并建立第二轉(zhuǎn)發(fā)通道;
將所述本域流媒體加入所述第二轉(zhuǎn)發(fā)通道;
向目標(biāo)域的下級平臺發(fā)送請求播放信令以獲取視頻碼流;
接收由所述目標(biāo)域流媒體服務(wù)轉(zhuǎn)發(fā)的視頻碼流,并將其轉(zhuǎn)發(fā)至所述本域客戶端。
可選的,在執(zhí)行所述接收本域客戶端的請求消息的步驟之前還包括如下步驟:
讀取配置文件信息;
初始化數(shù)據(jù)庫連接和網(wǎng)絡(luò)連接;
啟動網(wǎng)絡(luò)監(jiān)聽以獲取本域客戶端發(fā)送的請求消息。
與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案具有以下有益效果:
本發(fā)明實施例中,域服務(wù)在接收到本域客戶端的請求消息后,通過判斷本域客戶端請求視頻播放的攝像頭是否屬于本域來確定轉(zhuǎn)發(fā)視頻碼流至該本域客戶端的方式。
在所請求視頻播放的攝像頭屬于本域的情況下,直接通過本域流媒體服務(wù)獲取視頻碼流發(fā)送至本域客戶端,這樣僅占用本域網(wǎng)絡(luò)帶寬,不占用主干網(wǎng)絡(luò)帶寬。
在所請求視頻播放的攝像頭不屬于本域的情況下,再通過中心域服務(wù)獲取所述攝像頭所屬的目標(biāo)域,由目標(biāo)域流媒體服務(wù)獲取視頻碼流后轉(zhuǎn)發(fā)至本域流媒體服務(wù)后,再由本域流媒體服務(wù)發(fā)送至本域客戶端。
通過這種域服務(wù)支持網(wǎng)狀結(jié)構(gòu)的視頻傳輸方法,可以合理有效地降低主干網(wǎng)絡(luò)帶寬使用,解決了現(xiàn)有的網(wǎng)絡(luò)阻塞現(xiàn)象以及引起視頻數(shù)據(jù)丟失的問題,合理有效降低主干網(wǎng)絡(luò)傳輸占用帶寬,使數(shù)據(jù)傳輸合理分流,保證視頻流暢性傳輸。
附圖說明
圖1所示的是本發(fā)明的一種視頻流傳輸方法的具體實施方式的流程示意圖;
圖2所示的是緩沖隊列中存儲的數(shù)據(jù)結(jié)構(gòu)的示意圖;
圖3所示的是本發(fā)明實施例的一種播放本域視頻的具體流程示意圖;
圖4所示的是本發(fā)明實施例的一種播放目標(biāo)域視頻的具體流程示意圖。
具體實施方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施方式做詳細(xì)的說明。
如圖1所示的是本發(fā)明的一種視頻流傳輸方法的具體實施方式的流程示意圖。參考圖1,所述視頻傳輸方法包括如下步驟:
步驟S1:接收本域客戶端的請求消息;
步驟S2:解析所述請求消息,以獲取所述本域客戶端請求視頻播放的攝像頭所對應(yīng)的攝像頭標(biāo)識;
步驟S3:基于攝像頭標(biāo)識判斷所述攝像頭是否屬于本域;
步驟S4:若所述攝像頭屬于本域,通過本域流媒體服務(wù)將獲取到的視頻碼流轉(zhuǎn)發(fā)至所述本域客戶端;
步驟S5:若所述攝像頭不屬于本域,接收由目標(biāo)域流媒體服務(wù)獲取到的視頻碼流,再通過本域流媒體服務(wù)將該視頻碼流轉(zhuǎn)發(fā)至所述本域客戶端。
在現(xiàn)有的視頻傳輸網(wǎng)絡(luò)系統(tǒng)中,多個子域采用網(wǎng)狀結(jié)構(gòu)級聯(lián)。在每個子網(wǎng)網(wǎng)絡(luò)中設(shè)置域服務(wù),在主干網(wǎng)絡(luò)中設(shè)置中心域服務(wù)。每個域服務(wù)用于處理本域客戶端的請求消息,域服務(wù)可以與中心域服務(wù)進行通信,從而使各個域服務(wù)之間能夠進行信息傳輸。本發(fā)明實施例所述的視頻傳輸方法應(yīng)用于域服務(wù)中。
在實際應(yīng)用中,域服務(wù)在接收本域客戶端的請求消息之前,需要進行初始化設(shè)置。具體來說,包括如下步驟(圖1中未示出):
步驟1.1:讀取配置文件信息;
步驟1.2:初始化數(shù)據(jù)庫連接和網(wǎng)絡(luò)連接;在實際應(yīng)用中,還包括加載基礎(chǔ)數(shù)據(jù)。包括服務(wù)列表,設(shè)備信息,產(chǎn)品型號,分區(qū)信息等基礎(chǔ)數(shù)據(jù)。
步驟1.3:啟動網(wǎng)絡(luò)監(jiān)聽以獲取本域客戶端發(fā)送的請求消息。例如,初始隊列池,獲取服務(wù)端口,啟動監(jiān)聽端口等。在實際應(yīng)用中,還包括將基礎(chǔ)數(shù)據(jù)裝載到內(nèi)存、按照數(shù)據(jù)類型調(diào)用初始化接口等。
上述初始化設(shè)置可以根據(jù)不同的視頻網(wǎng)絡(luò)系統(tǒng)中域服務(wù)的不同配置來確定,并不限于上述實施步驟,在此不再贅述。
域服務(wù)在接收到本域客戶端的請求消息(如步驟S1所述)后,對所述請求消息進行解析。
具體來說,域服務(wù)可以按照約定格式對該請求消息進行解析。其中,所述請求消息包括該本域客戶端的客戶端標(biāo)識、所述本域客戶端請求視頻播放的攝像頭所對應(yīng)的攝像頭標(biāo)識、客戶端IP、端口、命令號、命令號序號、用戶名以及群組名等。
進一步地,將解析所述請求消息后獲取到的本域客戶端的客戶端標(biāo)識與所述請求消息做關(guān)聯(lián),并將關(guān)聯(lián)后的信息存儲于緩沖隊列中。
具體地,將解析所述請求消息后獲取到的本域客戶端的客戶端標(biāo)識與所述請求消息做關(guān)聯(lián)包括:以所述本域客戶端的客戶端標(biāo)識為索引,建立該客戶端標(biāo)識與所述請求信息中的攝像頭標(biāo)識、客戶端IP、端口、命令號、命令號序號、用戶名以及群組名之間的關(guān)聯(lián)關(guān)系。如圖2所示的是緩沖隊列中存儲的數(shù)據(jù)結(jié)構(gòu)的示意圖。
然后,在啟動消息處理任務(wù)線程后,掃描所述緩沖隊列,通過解析所述關(guān)聯(lián)后的信息以獲取本域客戶端的客戶端標(biāo)識和所述本域客戶端請求視頻播放的攝像頭所對應(yīng)的攝像頭標(biāo)識。
如步驟S3所述,基于攝像頭標(biāo)識判斷所述攝像頭是否屬于本域。
與現(xiàn)有技術(shù)不同,在本發(fā)明實施例中,通過判斷本域客戶端請求視頻播放的攝像頭是否屬于本域來確定轉(zhuǎn)發(fā)視頻碼流至該本域客戶端的方式。
具體來說,如步驟S4所述,若所述攝像頭屬于本域,通過本域流媒體服務(wù)將獲取到的視頻碼流轉(zhuǎn)發(fā)至所述本域客戶端。
結(jié)合參考如圖3所示的本發(fā)明實施例的一種播放本域視頻的具體流程示意圖。所述步驟S4包括如下步驟:
步驟S41:獲取本域流媒體服務(wù)信息并建立第一轉(zhuǎn)發(fā)通道;
步驟S42:將所述本域客戶端的信息加入所述第一轉(zhuǎn)發(fā)通道;
步驟S43:向下級平臺發(fā)送請求播放信令以獲取視頻碼流;
步驟S44:將獲取到的視頻碼流轉(zhuǎn)發(fā)至所述本域客戶端。
如步驟S5所述,若所述攝像頭不屬于本域,接收由目標(biāo)域流媒體服務(wù)獲取到的視頻碼流,再通過本域流媒體服務(wù)將該視頻碼流轉(zhuǎn)發(fā)至所述本域客戶端。
結(jié)合參考圖4所示的本發(fā)明實施例的一種播放目標(biāo)域視頻的具體流程示意圖。所述步驟S5包括如下步驟:
步驟S51:向中心域服務(wù)發(fā)出請求以獲取所述攝像頭所屬的目標(biāo)域;
步驟S52:登陸目標(biāo)域以獲取目標(biāo)域流媒體服務(wù)信息并建立第二轉(zhuǎn)發(fā)通道;
步驟S53:將所述本域流媒體加入所述第二轉(zhuǎn)發(fā)通道;此時,本域流媒體服務(wù)作為客戶端,該客戶端接收目標(biāo)流媒體服務(wù)發(fā)送的視頻碼流。
步驟S54:向目標(biāo)域的下級平臺發(fā)送請求播放信令以獲取視頻碼流;
步驟S55:接收由所述目標(biāo)域流媒體服務(wù)轉(zhuǎn)發(fā)的視頻碼流,并將其轉(zhuǎn)發(fā)至所述本域客戶端。
綜上所述,采用本技術(shù)方案的視頻傳輸方法,通過這種域服務(wù)支持網(wǎng)狀結(jié)構(gòu)的視頻傳輸方法,可以合理有效地降低主干網(wǎng)絡(luò)帶寬使用,解決了現(xiàn)有的網(wǎng)絡(luò)阻塞現(xiàn)象以及引起視頻數(shù)據(jù)丟失的問題,合理有效降低主干網(wǎng)絡(luò)傳輸占用帶寬,使數(shù)據(jù)傳輸合理分流,保證視頻流暢性傳輸。