一.摘要
本文分析了日益增長(zhǎng)的民用級(jí)別家庭和個(gè)人網(wǎng)絡(luò)視頻監(jiān)控市場(chǎng)的需求特點(diǎn),并給出了一種經(jīng)濟(jì)可行易于大規(guī)模部署的P2P解決方案。
由于篇幅有限,本文只給出了方案的思路,未對(duì)更深入的技術(shù)細(xì)節(jié)做詳細(xì)的論述,有興趣的朋友可以繼續(xù)深入研究。
二.關(guān)鍵詞
IPCAM, P2P,NAT, STUN, TURN, ICE, PJSIP, OPENSIPS, UDT, TCP, UDP
三.需求提出
網(wǎng)絡(luò)視頻監(jiān)控市場(chǎng)持續(xù)火爆升溫,除了公共安全市場(chǎng)持續(xù)高速增長(zhǎng)之外,民用市場(chǎng)中家庭和個(gè)人視頻監(jiān)控的需求近年也在逐漸增多。這主要得益于以下幾點(diǎn):
1. 網(wǎng)絡(luò)視頻監(jiān)控產(chǎn)品的價(jià)格已經(jīng)降低到個(gè)人很容易接受的程度。
2. 家庭寬帶網(wǎng)絡(luò)的逐步普及。
3. 3G網(wǎng)絡(luò)的逐步普及。
家庭和個(gè)人監(jiān)控的需求和傳統(tǒng)的公共安全監(jiān)控需求有明顯的不同,其特點(diǎn)主要體現(xiàn)在以下幾個(gè)方面:
1. 規(guī)模很小。通常是1臺(tái)或者幾臺(tái)。
2. 無需專用的監(jiān)控客戶端,無需長(zhǎng)時(shí)間監(jiān)控。
3. 監(jiān)控客戶端和網(wǎng)絡(luò)攝像機(jī)多位于不同的網(wǎng)絡(luò)。比如網(wǎng)絡(luò)攝像機(jī)在家中,用戶通過公司的網(wǎng)絡(luò)或者手機(jī)查看視頻。
4. 不會(huì)多人同時(shí)查看一路視頻,最多一兩人同時(shí)看,且概率較小。
5. 無需連續(xù)長(zhǎng)時(shí)間錄像,多采用移動(dòng)偵測(cè)或者其他告警觸發(fā)錄像,拍照,同時(shí)通過郵件,短信提醒。
四.技術(shù)難點(diǎn)
通過以上分析可以看出,家庭以及個(gè)人視頻監(jiān)控的需求和傳統(tǒng)公共安防市場(chǎng)的需求有很大的不同,決定了其必須采用不同的技術(shù)路線和方案:
1. 網(wǎng)絡(luò)攝像機(jī)和監(jiān)控客戶端(PC/手機(jī))位于不同的網(wǎng)絡(luò),中間有防火墻隔離,無法像傳統(tǒng)安防產(chǎn)品一樣采用網(wǎng)絡(luò)直連通過IP地址直接訪問的方式。
2. 網(wǎng)絡(luò)攝像機(jī)數(shù)量龐大(至少以萬為單位),但分屬多個(gè)用戶。如果采用中央服務(wù)器轉(zhuǎn)發(fā)的方案,需要互聯(lián)網(wǎng)上部署相當(dāng)數(shù)量的轉(zhuǎn)發(fā)服務(wù)器,成本相當(dāng)高。
3. 必須實(shí)現(xiàn)即插即用,不能讓用戶進(jìn)行復(fù)雜的安裝配置。否則售后服務(wù)的代價(jià)太高。
要實(shí)現(xiàn)位于不同網(wǎng)絡(luò)里的大量網(wǎng)絡(luò)攝像機(jī)和客戶端點(diǎn)對(duì)點(diǎn)的訪問,比較可行而且比較經(jīng)濟(jì)的方法是實(shí)現(xiàn)防火墻的穿透(NAT),讓客戶端和網(wǎng)絡(luò)攝像機(jī)之間建立一個(gè)直接的數(shù)據(jù)傳輸通道,傳輸視頻流和信令。
要實(shí)現(xiàn)NAT穿越,需要有一套機(jī)制,能夠輕松的讓客戶端和網(wǎng)絡(luò)攝像機(jī)之間能建立起聯(lián)系,簡(jiǎn)單的說,就是讓客戶端能找到自己要訪問的攝像機(jī),然后去實(shí)現(xiàn)NAT穿越,進(jìn)而可以訪問視頻和進(jìn)行其他操作。
只有解決了上述兩個(gè)技術(shù)難點(diǎn),大規(guī)模部署P2P網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),才有可能實(shí)現(xiàn)。
五.解決方案
筆者經(jīng)過深入的研究和分析,給出以下解決方案。
1. NAT的穿越
NAT的穿越并非安防監(jiān)控領(lǐng)域的技術(shù),是目前VOIP以及即時(shí)通信等產(chǎn)品的基礎(chǔ)性技術(shù),目前來講已經(jīng)比較成熟,且有完整的技術(shù)標(biāo)準(zhǔn)RFC,同時(shí)也有眾多的實(shí)現(xiàn)方案,包括許多已經(jīng)得到廣泛應(yīng)用的開源項(xiàng)目。
簡(jiǎn)單來講,實(shí)現(xiàn)NAT的穿越是可能的,成功的概率也比較高。UDP的協(xié)議進(jìn)行數(shù)據(jù)傳輸穿透NAT的成功率比較高,接近100%,TCP則存在一些情況無法實(shí)現(xiàn)穿越,主要受限路由器的端口映射機(jī)制。
要實(shí)現(xiàn)NAT穿越,需要有穿越控制服務(wù)器部署在互聯(lián)網(wǎng)(有固定的域名或者IP),由該服務(wù)器來協(xié)助網(wǎng)絡(luò)攝像機(jī)和客戶端來實(shí)現(xiàn)NAT穿越。有些服務(wù)器還能在TCP不能穿越的情況下,實(shí)現(xiàn)RELAY(數(shù)據(jù)中繼轉(zhuǎn)發(fā))的功能,以確保二者之間能實(shí)現(xiàn)數(shù)據(jù)通信。
由于NAT穿越控制服務(wù)器不同于安防監(jiān)控系統(tǒng)中的媒體轉(zhuǎn)發(fā)服務(wù)器,主要進(jìn)行信令交互,不轉(zhuǎn)發(fā)媒體數(shù)據(jù),在協(xié)助打通數(shù)據(jù)通道之后,對(duì)應(yīng)的網(wǎng)絡(luò)攝像機(jī)和客戶端就不會(huì)再占用服務(wù)器帶寬和處理能力了,因此一臺(tái)穿越控制服務(wù)器可以接入數(shù)量龐大的網(wǎng)絡(luò)攝像機(jī)和客戶端。
2. 網(wǎng)絡(luò)攝像機(jī)和客戶端之間的訪問機(jī)制
通常網(wǎng)絡(luò)攝像機(jī)都有唯一ID,并通過該ID注冊(cè)到穿越控制服務(wù)器??蛻舳艘L問對(duì)應(yīng)的網(wǎng)絡(luò)攝像機(jī)時(shí),也需要先注冊(cè)到穿越控制服務(wù)器,并提交對(duì)應(yīng) 網(wǎng)絡(luò)攝像機(jī)的ID,由穿越控制服務(wù)器查找對(duì)應(yīng)的網(wǎng)絡(luò)攝像機(jī),并協(xié)助網(wǎng)絡(luò)攝像機(jī)和客戶端之間進(jìn)行NAT穿越,最后打通一個(gè)點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸通道。之后,二者 即可進(jìn)行正常的媒體和信令交互了。
為實(shí)現(xiàn)更加有效的管理,服務(wù)器可對(duì)設(shè)備接入進(jìn)行認(rèn)證。此外,如果設(shè)備ID過長(zhǎng),也可以為設(shè)備建立別名,客戶端訪問時(shí)用設(shè)備別名作為參數(shù),服務(wù)器來查找對(duì)應(yīng)設(shè)備。
3. 數(shù)據(jù)傳輸機(jī)制
網(wǎng)絡(luò)攝像機(jī)和客戶端之間的數(shù)據(jù)傳遞包括有媒體流,信令流等。信令流數(shù)據(jù)量較小,媒體流數(shù)據(jù)量加大,而且需要有較好的實(shí)時(shí)性。
如果媒體流和信令流分開傳輸,需要打通多個(gè)通道,增加了復(fù)雜性和出錯(cuò)可能,同時(shí)增加了服務(wù)器的負(fù)擔(dān)。
前面也講過,UDP協(xié)議能有比較好的NAT穿透性,也比較適合媒體流的傳輸,但可靠性較差,不宜傳輸信令。為減輕服務(wù)器負(fù)擔(dān)(避免TCP無法穿 透需要轉(zhuǎn)發(fā)),提高穿透成功率,筆者建議只打通一個(gè)UDP通道,利用該UDP通道封裝媒體和信令流,在應(yīng)用層加以區(qū)分,哪些是媒體流,那些是信令流。
由于UDP傳輸信令可靠性極差,即使是傳輸媒體數(shù)據(jù),在互聯(lián)網(wǎng)環(huán)境下肯定會(huì)出現(xiàn)丟包的情況,仍然會(huì)出現(xiàn)圖像花屏或者解碼出錯(cuò)的情況,因此必須要解決此問題。
好在此問題并非我們第一個(gè)提出,利用UDP協(xié)議進(jìn)行可靠的數(shù)據(jù)傳輸?shù)男枨笤缇痛嬖?,并有了比較好的解決方案,那就是通過UDP協(xié)議在應(yīng)用層實(shí)現(xiàn)數(shù)據(jù)的緩沖,序列化,重傳,可靠性控制和擁塞控制。
如果上述三個(gè)問題都已解決,則網(wǎng)絡(luò)視頻監(jiān)控的P2P方案已經(jīng)基本實(shí)現(xiàn),剩下的就是產(chǎn)品化的問題。以下筆者針對(duì)PC訪問和手機(jī)訪問分別給出簡(jiǎn)要的實(shí)現(xiàn)說明:
1. PC訪問網(wǎng)絡(luò)攝像機(jī)。
PC訪問網(wǎng)絡(luò)攝像機(jī),可以先訪問一個(gè)網(wǎng)頁(yè),傳入網(wǎng)絡(luò)攝像機(jī)的序列號(hào)。
網(wǎng)頁(yè)加載一個(gè)控件,該控件通過NAT穿越控制服務(wù)器和該序列號(hào)對(duì)應(yīng)的網(wǎng)絡(luò)攝像機(jī)實(shí)現(xiàn)NAT穿透后,通過可靠的UDP傳輸信令和媒體數(shù)據(jù)。控件提供視頻瀏覽,對(duì)講,云臺(tái)控制,參數(shù)查詢?cè)O(shè)置等功能。
2. 手機(jī)訪問網(wǎng)絡(luò)攝像機(jī)。
手機(jī)由于平臺(tái)的不同,需要單獨(dú)開發(fā)對(duì)應(yīng)的客戶端或者插件以實(shí)現(xiàn)和PC訪問類似功能。但原理是一樣的,都需要通過NAT穿越控制服務(wù)器和該序列號(hào) 對(duì)應(yīng)的網(wǎng)絡(luò)攝像機(jī)實(shí)現(xiàn)NAT穿透后,通過可靠的UDP傳輸信令和媒體數(shù)據(jù)。由于開源的NAT穿越庫(kù)是可以移植的,在LINUX,WINCE,IOS, Android,Sbrian等都可以實(shí)現(xiàn)同樣的NAT穿越功能。
六.實(shí)現(xiàn)建議
最后筆者給出幾個(gè)技術(shù)方案的建議,有興趣的朋友可以自己再去做深入研究,歡迎探討。
1. NAT穿越庫(kù)的選擇,筆者推薦PJSIP,網(wǎng)路攝像機(jī)以及客戶端都可以采用。
2. NAT穿越控制服務(wù)器的選擇,筆者推薦OPENSIPS。
3. 可靠UDP傳輸方案的選擇,推薦UDT。
-
視頻監(jiān)控
+關(guān)注
關(guān)注
17文章
1711瀏覽量
65101 -
P2P
+關(guān)注
關(guān)注
0文章
152瀏覽量
26783
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論