專利名稱:一種網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)一種網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),特別是指一種低成本高可靠性的基于IP-SAN磁盤陣列柜的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)。
背景技術(shù):
目前 SAN (Storage Area Network,存儲區(qū)域網(wǎng)絡(luò))存儲分為 FC-SAN (Fiber Channel-SAN,基于光纖通道協(xié)議)和 IP-SAN/NASGnternet Protocol- SAN/NAS,基于以太網(wǎng)協(xié)議),F(xiàn)C-SAN采用光纖和HBA (Host Bus Adapter,主機(jī)總線適配器)卡來傳輸數(shù)據(jù),雖然性能很高,但因其價(jià)格高昂,所以應(yīng)用得不夠廣泛;而IP-SAN/NAS采用IP網(wǎng)絡(luò)來傳輸數(shù)據(jù),因其價(jià)格低廉并且性能較高而得到了廣泛的應(yīng)用,在網(wǎng)絡(luò)視頻監(jiān)控行業(yè)中的海量視頻流數(shù)據(jù)存儲一般都采用IP-SAN存儲。IP-SAN/NAS在應(yīng)用上分為NAS (Network Attached Morage,網(wǎng)絡(luò)存儲設(shè)備)和 iSCSI (Internet Small Computer System hterface,因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口)兩種方式,NAS技術(shù)采用共享網(wǎng)絡(luò)磁盤技術(shù),不同用戶可以共享不同類型的數(shù)據(jù),其在使用和存儲擴(kuò)展方面都很方便,但它的并發(fā)存儲性能較差,并且不能支持本地文件系統(tǒng)(即存儲的磁盤不能作為本地磁盤使用);iSCSI是通過IP網(wǎng)絡(luò)將SCSI數(shù)據(jù)轉(zhuǎn)換成網(wǎng)絡(luò)封包的一種傳輸協(xié)議,該協(xié)議被用于TCP/IP網(wǎng)絡(luò)上的服務(wù)器(initiator)和存儲設(shè)備(Target),使得SCSI命令能在他們之間進(jìn)行傳送,存儲設(shè)備以數(shù)據(jù)塊的方式寫入磁盤,擁有比NAS更高的并發(fā)存儲能力。采用iSCSI技術(shù)的存儲設(shè)備與主機(jī)之間有三種連接方式 initiator 軟件 + 以太網(wǎng)卡、initiator 軟件+TOE HBA (TCP/IP Offload Engine HBA, TCP/IP卸載引擎主機(jī)總線適配器)卡和iSCSI HBA卡,就性能而言,Initiator軟件最差、TOE HBA居中、iSCSI HBA卡最佳。目前initiator軟件幾乎都免費(fèi)使用。第一種使用主機(jī)自帶以太網(wǎng)卡,如果采用高性能的服務(wù)器,基本不會存在性能上的不足;后兩者雖然性能更佳,但都會額外增加硬件設(shè)備的成本。傳統(tǒng)的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)結(jié)構(gòu)如圖 1所示,客戶端服務(wù)器1利用HBA卡,客戶端服務(wù)器2利用自帶的以太網(wǎng)卡通過交換機(jī)連接用于存儲數(shù)據(jù)的磁盤陣列柜。目前,在以IP-SAN方式存儲的視頻監(jiān)控行業(yè)應(yīng)用中,一般都以iSCSI方式的應(yīng)用為主,并且大都采用Initiator軟件+服務(wù)器自帶的以太網(wǎng)卡來實(shí)現(xiàn),因?yàn)檫@種應(yīng)用方式既有較高的性能又能節(jié)省成本。采用iSCSI方式應(yīng)用的磁盤陣列柜基本上都是采用文件的方式來讀/寫數(shù)據(jù),即位于客戶服務(wù)器一側(cè)的應(yīng)用程序通過調(diào)用操作系統(tǒng)內(nèi)的文件操作接口將數(shù)據(jù)保存到文件中或從文件中讀取數(shù)據(jù),文件存放到已掛載到操作系統(tǒng)的某個(gè)掛載點(diǎn)下的磁盤陣列柜的邏輯卷內(nèi),安裝在操作系統(tǒng)內(nèi)的iSCSI-initiator軟件負(fù)責(zé)將數(shù)據(jù)塊寫入到磁盤陣列柜的磁盤邏輯卷中或從邏輯卷中獲取數(shù)據(jù)塊,這種處理流程使得服務(wù)器上的應(yīng)用程序與網(wǎng)絡(luò)存儲設(shè)備之間存在一個(gè)操作系統(tǒng)內(nèi)的文件系統(tǒng)層,這個(gè)層面將數(shù)據(jù)以文件的方式展現(xiàn)給應(yīng)用程序,并通過iSCSI-initiator軟件和網(wǎng)卡往磁盤陣列柜里讀/寫數(shù)據(jù)。使用文件系統(tǒng)層來封裝數(shù)據(jù)存在兩個(gè)問題
(1)要使用iSCSI方式訪問網(wǎng)絡(luò)存儲設(shè)備,存/取數(shù)據(jù)的應(yīng)用程序必須獨(dú)立運(yùn)行在iSCSI磁盤邏輯卷之外的操作系統(tǒng)上,這樣就需要將應(yīng)用程序放置在一臺獨(dú)立的應(yīng)用服務(wù)器上。應(yīng)用服務(wù)器和磁盤陣列柜分開,將使得網(wǎng)絡(luò)存儲系統(tǒng)的建設(shè)成本增大;
(2)目前,在大規(guī)模的視頻監(jiān)控行業(yè)中,應(yīng)用程序一般都是運(yùn)行在裝有Linux或Unix 操作系統(tǒng)的服務(wù)器上,如果應(yīng)用服務(wù)器在向磁盤陣列柜寫入數(shù)據(jù)的時(shí)候發(fā)生了網(wǎng)絡(luò)長時(shí)間中斷的情況,將會造成文件寫入錯(cuò)誤,iSCSI-initiator軟件在超時(shí)時(shí)間到后又不能恢復(fù)連接,此時(shí),文件系統(tǒng)就會出現(xiàn)錯(cuò)誤,操作系統(tǒng)會將本服務(wù)器上掛載的當(dāng)前寫入數(shù)據(jù)失敗的網(wǎng)絡(luò)磁盤的屬性更改成只讀屬性,應(yīng)用程序?qū)⒉荒茉傧蛟摼W(wǎng)絡(luò)磁盤里寫入數(shù)據(jù),即使后面網(wǎng)絡(luò)恢復(fù)了連接,也仍將無法繼續(xù)寫入數(shù)據(jù),從而造成數(shù)據(jù)一直無法保存,除非人為地手動修復(fù)好該磁盤的文件系統(tǒng),才能繼續(xù)往該磁盤寫入數(shù)據(jù)。如果這種故障的發(fā)生率較高,整個(gè)應(yīng)用系統(tǒng)的維護(hù)工作量將會很大。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種低成本高可靠性的基于IP-SAN磁盤陣列柜的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)。為達(dá)到上述目的,本發(fā)明提供一種網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),其包括有客戶端單元、服務(wù)端單元及物理磁盤單元,所述客戶端單元的客戶端程序與所述服務(wù)端單元的服務(wù)端程序通過標(biāo)準(zhǔn)的API接口進(jìn)行媒體數(shù)據(jù)流傳輸,并且所述客戶端單元和所述服務(wù)端單元都嵌入到磁盤陣列柜內(nèi)部運(yùn)行;所述客戶端單元負(fù)責(zé)接收數(shù)據(jù)并處理后發(fā)送給所述服務(wù)端單元,以及向所述服務(wù)端單元請求數(shù)據(jù)并解析后對外發(fā)送,所述服務(wù)端單元負(fù)責(zé)將所述客戶端單元傳來的數(shù)據(jù)按優(yōu)先的策略寫入磁盤陣列柜的所述物理磁盤單元內(nèi),以及從所述物理磁盤單元內(nèi)查詢到需要的數(shù)據(jù)后發(fā)送給所述客戶端單元。所述客戶端單元前連接有視頻前端設(shè)備及用戶操作界面,所述視頻前端設(shè)備由前端攝像頭和編碼器構(gòu)成,用以采集媒體數(shù)據(jù),并通過所述網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)將前端視頻數(shù)據(jù)通過錄像程序?qū)崟r(shí)保存到網(wǎng)絡(luò)存儲設(shè)備中,并對保存的媒體數(shù)據(jù)提取通過回放程序回放給所述用戶操作界面。所述錄像程序、回放程序和讀/寫磁盤陣列柜磁盤的所述服務(wù)端程序嵌入到所述磁盤陣列柜內(nèi)運(yùn)行。所述客戶端單元實(shí)現(xiàn)接收與發(fā)送兩個(gè)方向的功能,所述客戶端單元由數(shù)據(jù)存儲單元和數(shù)據(jù)提取單元組成,所述數(shù)據(jù)存儲單元為錄像單元,負(fù)責(zé)接收來自所述視頻前端設(shè)備的數(shù)據(jù),將數(shù)據(jù)進(jìn)行相應(yīng)格式的轉(zhuǎn)換后發(fā)送到所述服務(wù)端單元;所述數(shù)據(jù)提取單元為回放單元,負(fù)責(zé)從所述服務(wù)端單元請求所需的時(shí)間段的數(shù)據(jù),將數(shù)據(jù)按保存的格式解析后發(fā)送給所述用戶操作界面。所述數(shù)據(jù)存儲單元包括有依次相連的保存數(shù)據(jù)控制信令模塊、媒體數(shù)據(jù)接收模塊、媒體數(shù)據(jù)處理模塊、媒體數(shù)據(jù)發(fā)送模塊及媒體數(shù)據(jù)存儲接口,其中,
所述保存數(shù)據(jù)控制信令模塊接收來自所述用戶操作界面所發(fā)出的存儲控制信令,以及向其返回?cái)?shù)據(jù)保存的結(jié)果;
所述媒體數(shù)據(jù)接收模塊在數(shù)據(jù)處理任務(wù)建立成功后,接收對應(yīng)監(jiān)控點(diǎn)的視頻數(shù)據(jù); 所述媒體數(shù)據(jù)處理模塊無限循環(huán)地去獲取收到的每路視頻數(shù)據(jù)包,并對每個(gè)數(shù)據(jù)包按一定的格式進(jìn)行轉(zhuǎn)換;所述媒體數(shù)據(jù)發(fā)送模塊負(fù)責(zé)將處理完的數(shù)據(jù)包,通過調(diào)用所述媒體數(shù)據(jù)存儲接口將數(shù)據(jù)發(fā)送給所述磁盤陣列柜內(nèi)的服務(wù)端程序,讓所述服務(wù)端單元將數(shù)據(jù)寫入所述物理磁盤單兀。所述媒體數(shù)據(jù)存儲接口包括客戶端注冊/注銷接口、開始/停止錄像接口、開始發(fā)送數(shù)據(jù)接口、查詢錄像接口及錯(cuò)誤提示接口。所述數(shù)據(jù)提取單元包括有提取數(shù)據(jù)控制信令模塊、媒體數(shù)據(jù)提取接口、媒體數(shù)據(jù)接收模塊、媒體數(shù)據(jù)處理模塊及媒體數(shù)據(jù)發(fā)送模塊,其中,
所述提取數(shù)據(jù)控制信令模塊處理所述客戶端單元與所述用戶操作界面之間的RTSP (Real Time Streaming Protocol,實(shí)時(shí)流傳輸協(xié)議)交互信令;
所述媒體數(shù)據(jù)提取接口是所述客戶端程序向所述服務(wù)端程序獲取以前保存的媒體數(shù)據(jù)的API接口,該接口主要包括開始取數(shù)據(jù)流接口、停止取數(shù)據(jù)流接口及獲取攝像頭私有文件頭信息接口 ;
所述媒體數(shù)據(jù)接收模塊將接收到的每個(gè)數(shù)據(jù)包緩存到的數(shù)據(jù)鏈表里,以交給所述媒體數(shù)據(jù)處理模塊來處理鏈表里的數(shù)據(jù);
所述媒體數(shù)據(jù)處理模塊不斷地從所述數(shù)據(jù)鏈表里提取出收到的每路數(shù)據(jù)包,并根據(jù)數(shù)據(jù)包保存的格式對每個(gè)包進(jìn)行解析,獲取這個(gè)數(shù)據(jù)包和前一個(gè)數(shù)據(jù)包的時(shí)間間隔、數(shù)據(jù)包的類型、包的長度和數(shù)據(jù)包的內(nèi)容;
所述媒體數(shù)據(jù)發(fā)送模塊將解析完了的數(shù)據(jù)包,在需要發(fā)送的時(shí)間點(diǎn)發(fā)送給用戶請求回放的所述用戶操作界面。所述數(shù)據(jù)包為RTP/RTCP (Realtime Transport Protocol,實(shí)時(shí)傳輸協(xié)議 / Realtime Transport Control Protocol,實(shí)時(shí)傳輸控制協(xié)議)媒體數(shù)據(jù)包。借由本發(fā)明的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),能有效地減少數(shù)據(jù)傳輸過程中的單點(diǎn)故障,使得數(shù)據(jù)傳輸方式更簡捷、更容易控制和維護(hù),且能夠避免目前以iSCSI方式連接的磁盤陣列柜應(yīng)用系統(tǒng)在存儲數(shù)據(jù)的過程中因網(wǎng)絡(luò)中斷所造成的磁盤陣列柜的虛擬磁盤只讀的故障;本發(fā)明中的客戶端單元和服務(wù)端單元都嵌入到磁盤陣列柜內(nèi)運(yùn)行,由一臺磁盤陣列柜完成數(shù)據(jù)的傳輸、保存、獲取、查詢、刪除等所有功能,存儲系統(tǒng)功能一體化,有效降低了系統(tǒng)成本。
圖1為傳統(tǒng)的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流系統(tǒng)結(jié)構(gòu)圖; 圖2為本發(fā)明網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)圖3為本發(fā)明中的數(shù)據(jù)存儲單元的結(jié)構(gòu)原理圖; 圖4為將媒體數(shù)據(jù)保存到磁盤陣列柜的處理流程圖; 圖5為本發(fā)明中的數(shù)據(jù)提取單元的結(jié)構(gòu)原理圖; 圖6為提取數(shù)據(jù)的回放程序內(nèi)部處理流程圖。
具體實(shí)施例方式為便于對本發(fā)明的結(jié)構(gòu)及方法有進(jìn)一步的了解,現(xiàn)結(jié)合附圖并舉較佳實(shí)施例詳細(xì)說明如下。
如圖2所示,本發(fā)明所采用的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),包括有客戶端單元、 服務(wù)端單元及物理磁盤單元,客戶端單元的客戶端程序與服務(wù)端單元的服務(wù)端程序通過標(biāo)準(zhǔn)的API (Application Program hterface,應(yīng)用程序接口)進(jìn)行數(shù)據(jù)傳輸,并且客戶端單元和服務(wù)端單元都嵌入到磁盤陣列柜內(nèi)部運(yùn)行。客戶端單元負(fù)責(zé)接收數(shù)據(jù)并處理后發(fā)送給服務(wù)端單元,以及向服務(wù)端單元請求數(shù)據(jù)并解析后對外發(fā)送。服務(wù)端單元負(fù)責(zé)將客戶端單元傳來的數(shù)據(jù)按優(yōu)先的策略寫入磁盤陣列柜的物理磁盤單元內(nèi),以及從物理磁盤單元內(nèi)查詢到需要的數(shù)據(jù)后發(fā)送給客戶端單元。本發(fā)明網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)的客戶端單元前連接有視頻前端設(shè)備及用戶操作界面,視頻前端設(shè)備由前端攝像頭和編碼器構(gòu)成,用以采集媒體數(shù)據(jù),并通過網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)將前端視頻數(shù)據(jù)通過錄像程序?qū)崟r(shí)保存到網(wǎng)絡(luò)存儲設(shè)備中(即錄像),并對保存的媒體數(shù)據(jù)提取通過回放程序回放給用戶操作界面的用戶。本發(fā)明中的錄像程序、回放程序和讀/寫磁盤陣列柜磁盤的服務(wù)端程序嵌入到磁盤陣列柜內(nèi)運(yùn)行。本發(fā)明采用圖2所示的C/S結(jié)構(gòu),客戶端和服務(wù)端應(yīng)用程序完成對媒體數(shù)據(jù)的保存和回放功能。本發(fā)明的客戶端單元由數(shù)據(jù)存儲單元和數(shù)據(jù)提取單元組成。數(shù)據(jù)存儲單元 (即錄像單元)負(fù)責(zé)接收來自視頻前端設(shè)備的數(shù)據(jù),將數(shù)據(jù)進(jìn)行相應(yīng)格式的轉(zhuǎn)換后發(fā)送到服務(wù)端單元。數(shù)據(jù)提取單元(即回放單元)負(fù)責(zé)從服務(wù)端單元請求所需的時(shí)間段的數(shù)據(jù),將數(shù)據(jù)按保存的格式解析后發(fā)送給遠(yuǎn)程視頻播放軟件(即用戶操作界面),因此客戶端單元實(shí)現(xiàn)接收與發(fā)送兩個(gè)方向的功能。服務(wù)端單元通過提供給客戶端單元的API,也要實(shí)現(xiàn)接收和發(fā)送兩個(gè)方向的功能 一是接收來自客戶端單元的數(shù)據(jù),并將數(shù)據(jù)寫到磁盤陣列柜的物理磁盤單元中;二是根據(jù)客戶端單元對具體時(shí)間段的數(shù)據(jù)請求,從物理磁盤單元里提取出對應(yīng)的數(shù)據(jù),然后發(fā)送給客戶端單元。在服務(wù)端單元已提供了完備穩(wěn)定的API后,該存儲系統(tǒng)的實(shí)現(xiàn)就集中在數(shù)據(jù)的發(fā)送和獲取的客戶端單元上?,F(xiàn)分別對數(shù)據(jù)的保存和提取過程進(jìn)行詳細(xì)的說明。媒體數(shù)據(jù)的保存
本發(fā)明中視頻前端設(shè)備的編碼器設(shè)備所發(fā)出的媒體數(shù)據(jù)是采用MPEG4或H264標(biāo)準(zhǔn)進(jìn)行編碼后以RTP/RTCP形式進(jìn)行封裝了的數(shù)據(jù)包,客戶端保存數(shù)據(jù)(即平臺錄像)的程序需要將這些媒體數(shù)據(jù)保存到網(wǎng)絡(luò)上的磁盤陣列柜中,如圖3所示,本發(fā)明中的數(shù)據(jù)存儲單元包括有依次相連的保存數(shù)據(jù)控制信令模塊、媒體數(shù)據(jù)接收模塊、媒體數(shù)據(jù)處理模塊、媒體數(shù)據(jù)發(fā)送模塊及媒體數(shù)據(jù)存儲接口,其中
保存數(shù)據(jù)控制信令模塊接收來自用戶操作界面所發(fā)出的存儲控制信令,以及向其返回?cái)?shù)據(jù)保存的結(jié)果。所有的存儲控制信令消息都有統(tǒng)一協(xié)商定義的格式,以便于接收消息的模塊能夠?qū)ο⒄_地解析、處理??刂泼襟w數(shù)據(jù)流存儲的信令消息主要包括錄像準(zhǔn)備、 開始錄像、結(jié)束錄像、查詢錄像記錄、錄像故障通知等。媒體數(shù)據(jù)接收模塊在數(shù)據(jù)處理任務(wù)建立成功后,就開始接收對應(yīng)監(jiān)控點(diǎn)的視頻數(shù)據(jù)。在收到數(shù)據(jù)包后,會將數(shù)據(jù)包緩存到該路視頻存儲對象的數(shù)據(jù)鏈表里,然后通知數(shù)據(jù)處理部分來處理收到的該路數(shù)據(jù)包。媒體數(shù)據(jù)處理模塊會無限循環(huán)地去獲取收到的每路視頻數(shù)據(jù)包(RTP/RTCP數(shù)據(jù)包),并對每個(gè)數(shù)據(jù)包按一定的格式進(jìn)行轉(zhuǎn)換。為了能在視頻回放時(shí)實(shí)現(xiàn)精確地快進(jìn)、快退、快放、慢放、單幀播放等功能,需要對接收到的每個(gè)數(shù)據(jù)包進(jìn)行分析,判斷它是RTP包,還是 RTCP包,以及是否是組成I幀的RTP包,為此該媒體數(shù)據(jù)處理模塊對接收到的數(shù)據(jù)包進(jìn)行了新的封裝,在數(shù)據(jù)包頭或包尾添加了可以識別包類型、到達(dá)時(shí)間等信息的字段。媒體數(shù)據(jù)發(fā)送模塊負(fù)責(zé)將處理完的RTP/RTCP數(shù)據(jù)包,通過調(diào)用媒體數(shù)據(jù)存儲接口將數(shù)據(jù)發(fā)送給磁盤陣列柜內(nèi)的服務(wù)端程序,讓服務(wù)端單元將數(shù)據(jù)寫入物理磁盤單元,客戶端單元將數(shù)據(jù)發(fā)送成功后就可以釋放掉緩存的這個(gè)數(shù)據(jù)包了??蛻舳藛卧c運(yùn)行在磁盤陣列柜里面的服務(wù)端單元之間的數(shù)據(jù)傳輸是通過自定義的媒體數(shù)據(jù)存儲接口(API接口)來完成的,這些接口包括客戶端注冊/注銷接口、開始 /停止錄像接口、開始發(fā)送數(shù)據(jù)接口、查詢錄像接口及錯(cuò)誤提示接口等等。( 1)客戶端注冊/注銷接口
在開始各種任務(wù)之前,客戶端程序要先調(diào)用該接口注冊到服務(wù)端單元,然后才能與服務(wù)端單元之間進(jìn)行各種消息和數(shù)據(jù)的傳輸。在執(zhí)行完成各種任務(wù)后,并且不再需要與服務(wù)端單元進(jìn)行聯(lián)系后,要向服務(wù)端單元發(fā)送注銷消息,以讓服務(wù)端釋放連接和分配的資源。(2)開始/停止錄像接口
客戶端單元在開始錄像時(shí),必須先調(diào)用開始錄像接口,在該接口內(nèi)傳入這一個(gè)攝像頭的信息參數(shù)(包括該客戶端注冊時(shí)獲取到的ID、攝像頭ID、錄像類型、要存放錄像數(shù)據(jù)的磁盤邏輯卷編號、用來分辨該攝像頭數(shù)據(jù)的私有頭信息等等)。服務(wù)端單元通過這個(gè)接口就可以知道有一個(gè)攝像頭已請求準(zhǔn)備錄像了,它會將這些參數(shù)信息保存到緩存中,并準(zhǔn)備接收這個(gè)攝像頭發(fā)來的數(shù)據(jù)。客戶端單元在錄像結(jié)束時(shí)要調(diào)用停止錄像接口通知服務(wù)端單元,服務(wù)端單元收到停止這個(gè)攝像頭的錄像消息后會將最后緩存的該路數(shù)據(jù)寫入磁盤,釋放為該路分配的系統(tǒng)資源,并更改該攝像頭的錄像記錄。(3)開始發(fā)送數(shù)據(jù)接口
客戶端單元通過該接口將一個(gè)時(shí)間段內(nèi)的數(shù)據(jù)包都發(fā)給服務(wù)端單元,接口內(nèi)包含開始錄像時(shí)返回的錄像句柄、要發(fā)送的數(shù)據(jù)包內(nèi)容、數(shù)據(jù)包的長度、數(shù)據(jù)包的開始和結(jié)束時(shí)間, 服務(wù)端單元收到數(shù)據(jù)后通過參數(shù)內(nèi)帶來的錄像句柄就知道是哪個(gè)攝像頭發(fā)來的數(shù)據(jù),它會將數(shù)據(jù)組包緩存到一定的大小后一次寫入到預(yù)先分配的一片連續(xù)的存儲空間內(nèi),并更新該路攝像頭的錄像時(shí)長。(4)查詢錄像記錄接口
客戶端單元可以通過這個(gè)接口查詢某個(gè)攝像頭的某個(gè)時(shí)間段里的某種類型的錄像情況。服務(wù)端單元從自己的數(shù)據(jù)庫里把滿足查詢條件的所有錄像記錄通過回調(diào)接口一次全部返回給客戶端單元。(5)錯(cuò)誤提示接口
客戶端單元調(diào)用每個(gè)接口失敗時(shí),可以通過該接口獲取失敗的錯(cuò)誤碼,以判斷錯(cuò)誤的原因。將媒體數(shù)據(jù)保存到磁盤陣列柜的處理流程如圖4所示
(1)當(dāng)請求保存媒體數(shù)據(jù)的信令交互成功后,保存媒體數(shù)據(jù)(即錄像)的程序內(nèi)部就建立了保存該路攝像頭的數(shù)據(jù)的任務(wù),并已準(zhǔn)備好接收該路媒體數(shù)據(jù)包(RTP/RTCP數(shù)據(jù)包);
(2)接收數(shù)據(jù)的線程會不停地去檢測接收該路媒體數(shù)據(jù)的通信鏈路句柄上是否有數(shù)據(jù)到達(dá);
8(3)當(dāng)收到數(shù)據(jù)包后就將數(shù)據(jù)緩存到該任務(wù)的數(shù)據(jù)鏈表內(nèi);
(4)當(dāng)沒有收到數(shù)據(jù)包時(shí),接收線程會繼續(xù)循環(huán)等待接收新的數(shù)據(jù);
(5)在收到數(shù)據(jù)包并且已緩存到任務(wù)鏈表里后,向處理數(shù)據(jù)的線程發(fā)送一個(gè)已接收到了數(shù)據(jù)包的通知;
(6)處理數(shù)據(jù)的線程在收到數(shù)據(jù)到達(dá)的通知消息后,判斷出是哪路攝像頭的數(shù)據(jù),然后再到該路攝像頭的數(shù)據(jù)鏈表里提取出媒體數(shù)據(jù),最后調(diào)用API接口,將數(shù)據(jù)發(fā)送給磁盤陣列柜內(nèi)的服務(wù)端程序,發(fā)送成功后,服務(wù)端程序就將數(shù)據(jù)寫入物理磁盤單元了。本發(fā)明的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)將保存媒體數(shù)據(jù)的客戶端單元和寫入磁盤的服務(wù)端單元一體化集成在磁盤陣列柜上,并且采用流式存儲方式來存儲數(shù)據(jù),相比于傳統(tǒng)的保存數(shù)據(jù)的服務(wù)器和磁盤陣列柜獨(dú)立分開的系統(tǒng)具有以下明顯的優(yōu)勢
(1)采用客戶端/服務(wù)端的模式(即C/S模式)構(gòu)建存儲系統(tǒng),客戶端單元接收到的媒體數(shù)據(jù)直接發(fā)送給服務(wù)端單元,服務(wù)端單元通過訪問磁盤陣列柜的物理磁盤單元,將數(shù)據(jù)直接寫入物理磁盤單元內(nèi)。這種C/S模式不同于傳統(tǒng)的磁盤陣列柜應(yīng)用系統(tǒng)需要通過操作系統(tǒng)、iscsi-initiator應(yīng)用軟件或HBA卡這些中間部件才能完成數(shù)據(jù)的傳輸和寫入。該模式能有效地減少數(shù)據(jù)傳輸過程中的單點(diǎn)故障,使得數(shù)據(jù)傳輸方式更簡捷、更容易控制和維護(hù);
(2)在數(shù)據(jù)的存儲方式上,采用流式存儲方式客戶端單元和服務(wù)端單元之間僅只傳遞媒體數(shù)據(jù)流,服務(wù)端單元將收到的數(shù)據(jù)流按塊寫入磁盤陣列柜的物理磁盤單元,其中間不經(jīng)過操作系統(tǒng)對數(shù)據(jù)以文件形式封裝的中間環(huán)節(jié),可以徹底解決目前以iSCSI方式連接的 IP-SAN應(yīng)用系統(tǒng)在存儲數(shù)據(jù)的過程中因網(wǎng)絡(luò)斷連所造成的磁盤陣列柜的虛擬磁盤只讀的故障,給這種故障提供了一種很好的解決方式;
(3)系統(tǒng)結(jié)構(gòu)實(shí)現(xiàn)了功能一體化,客戶端單元和服務(wù)端單元都嵌入到磁盤陣列柜內(nèi),由一臺磁盤陣列柜完成數(shù)據(jù)的傳輸、保存、獲取、查詢、刪除等所有功能。這種方式可以避免各功能分散于不同的服務(wù)器上可能出現(xiàn)的網(wǎng)絡(luò)帶寬限制,并能有效地減少存儲系統(tǒng)的建設(shè)成本;
(4)服務(wù)端程序采用了磁盤寫入優(yōu)化技術(shù)以提高磁盤并發(fā)寫入的速率對磁盤陣列柜的物理磁盤單元直接按連續(xù)的塊寫入和提取的方式。在磁盤空間上采用預(yù)分配的方式,在數(shù)據(jù)到達(dá)之前預(yù)先分配一塊可寫的連續(xù)的磁盤區(qū)域,數(shù)據(jù)到達(dá)后將數(shù)據(jù)保存到該區(qū)域,這種磁盤寫入方式可以避免在保存每塊數(shù)據(jù)時(shí)還需要先遍歷搜索整個(gè)磁盤空間以查找空閑的位置所花費(fèi)的時(shí)間,并可以有效地減少磁盤碎片;
(5)服務(wù)端程序采用按磁盤空間大小自動循環(huán)覆蓋刪除數(shù)據(jù)的方式,省去人為地控制數(shù)據(jù)的刪除,更方便維護(hù)。服務(wù)端程序會在保存數(shù)據(jù)的磁盤空間達(dá)到一定的上限后,按照優(yōu)選的策略循環(huán)刪除該空間內(nèi)一些最早的數(shù)據(jù)塊,刪除時(shí)也是按連續(xù)的區(qū)域刪除,以便讓后續(xù)數(shù)據(jù)可以寫入這片連續(xù)的區(qū)域。媒體數(shù)據(jù)的提取
提取媒體數(shù)據(jù)的過程(即回放過程)同存儲相反,需要回放客戶端單元向磁盤陣列內(nèi)的服務(wù)端單元請求所需的數(shù)據(jù)流,服務(wù)端單元從磁盤陣列柜里獲取RTP/RTCP數(shù)據(jù)包后發(fā)給回放客戶端單元,客戶端單元再對數(shù)據(jù)包進(jìn)行解析,還原RTP/RTCP包的原始數(shù)據(jù)內(nèi)容后發(fā)送給用戶操作界面,如圖5所示,本發(fā)明的數(shù)據(jù)提取單元包括有提取數(shù)據(jù)控制信令模塊、媒體數(shù)據(jù)提取接口、媒體數(shù)據(jù)接收模塊、媒體數(shù)據(jù)處理模塊、媒體數(shù)據(jù)發(fā)送模塊,其中 一、提取數(shù)據(jù)控制信令模塊
請求回放媒體數(shù)據(jù)流的控制信令采用標(biāo)準(zhǔn)的RTSP信令,提取數(shù)據(jù)控制信令模塊處理客戶端單元與用戶操作界面之間的RTSP交互信令。這些RTSP信令消息包含的主要方法有0PTI0NS、DESCRIBE、SETUP、PLAY、ANNOUNCE、PAUSE、TEARDOffN 等等,用來實(shí)現(xiàn)回放正常播放、停止、暫停、快進(jìn)、快退、快放、慢放、倒放、跳巾貞播放等功能。(1)正常播放按照保存數(shù)據(jù)流時(shí),攝像頭發(fā)送過來的數(shù)據(jù)流的實(shí)際速率,順序播放錄像;
(2)停止結(jié)束播放;
(3)暫停停止播放,但不結(jié)束,后面可以從上次結(jié)束播放的位置點(diǎn)繼續(xù)播放;
(4)快進(jìn)可以按2、4、6、8倍速跳躍向前播放,由于播放的只是I幀視頻畫面,并且還會根據(jù)選擇的倍數(shù)丟掉一些I幀不播放,故畫面會不連續(xù);
(5)快退可以按2、4、6、8倍速跳躍倒退播放,由于播放的只是I幀視頻畫面,并且還會根據(jù)選擇的倍數(shù)丟掉一些I幀不播放,故畫面會不連續(xù);
(6)快放可以按2、4、6、8倍速連續(xù)快速播放,會根據(jù)選擇的速率播放所有的視頻畫面,畫面保持連續(xù);
(7)慢放可以按2、4、6、8倍速連續(xù)慢速播放,會根據(jù)選擇的速率播放所有的視頻畫面,畫面保持連續(xù);
(8)倒放同正常播放剛好相反,它是倒著放,從結(jié)束時(shí)間開始,向開始時(shí)間方向逆序播
放;
(9)跳幀播放播放時(shí)丟掉一些視頻幀,跳躍著向前播放。二、媒體數(shù)據(jù)提取接口
媒體數(shù)據(jù)提取接口是客戶端程序(回放程序)向服務(wù)端程序獲取以前保存的媒體數(shù)據(jù)的API接口,服務(wù)端會從磁盤陣列柜內(nèi)提取出請求的數(shù)據(jù)后通過對應(yīng)的接口發(fā)送給回放程序。這些接口主要包括開始取數(shù)據(jù)流接口、停止取數(shù)據(jù)流接口、獲取攝像頭私有文件頭信息的接口。(1)開始取數(shù)據(jù)流接口
當(dāng)用戶通過用戶操作界面要求查看某個(gè)攝像頭的某個(gè)時(shí)間段內(nèi)的視頻時(shí),用戶操作界面會向提取數(shù)據(jù)的客戶端程序(即回放程序)發(fā)送請求消息,消息體內(nèi)帶上攝像頭ID、錄像的起始時(shí)間和結(jié)束時(shí)間、錄像的類型等參數(shù)。客戶端單元通過媒體數(shù)據(jù)提取接口向服務(wù)端單元請求對應(yīng)的視頻流,服務(wù)端單元將客戶端單元請求的數(shù)據(jù)從物理磁盤單元內(nèi)取出,然后發(fā)送給客戶端單元;
(2)停止取數(shù)據(jù)流接口
客戶端程序(即回放程序)通過開始取數(shù)據(jù)流的接口所返回的句柄作為參數(shù),通知服務(wù)端單元停止取流,服務(wù)端單元收到消息后停止從物理磁盤單元內(nèi)提取數(shù)據(jù);
(3)獲取攝像頭私有文件頭信息接口
攝像頭的私有文件頭信息包含了媒體流的類型、編碼格式、傳輸參數(shù)等信息。在回放某個(gè)攝像頭的錄像時(shí)需要先獲取這些信息,客戶端單元就要通過該接口向服務(wù)端單元發(fā)送對應(yīng)的請求,服務(wù)端單元再從磁盤內(nèi)提取出來發(fā)給客戶端單元。
三、媒體數(shù)據(jù)接收模塊
回放程序向磁盤陣列柜內(nèi)的服務(wù)端單元請求獲取某個(gè)攝像頭的媒體數(shù)據(jù)成功后,媒體數(shù)據(jù)接收模塊將接收到的每個(gè)RTP/RTCP包緩存到的數(shù)據(jù)鏈表里,以交給媒體數(shù)據(jù)處理模塊來處理鏈表里的數(shù)據(jù)。四、媒體數(shù)據(jù)處理模塊
媒體數(shù)據(jù)處理模塊會不斷地從數(shù)據(jù)鏈表里提取出收到的每路數(shù)據(jù)包(RTP/RTCP數(shù)據(jù)包),并根據(jù)數(shù)據(jù)包保存的格式對每個(gè)包進(jìn)行解析,獲取這個(gè)數(shù)據(jù)包和前一個(gè)數(shù)據(jù)包的時(shí)間間隔、數(shù)據(jù)包的類型、包的長度,數(shù)據(jù)包的內(nèi)容等。最后根據(jù)這個(gè)包和前一個(gè)包的時(shí)間間隔, 將這個(gè)包在需要發(fā)送的時(shí)間點(diǎn)到達(dá)時(shí)發(fā)送給用戶操作界面。五、媒體數(shù)據(jù)發(fā)送模塊
該模塊負(fù)責(zé)將解析完了的RTP/RTCP媒體數(shù)據(jù)包,在需要發(fā)送的時(shí)間點(diǎn)發(fā)送給用戶請求回放的用戶操作界面。本系統(tǒng)采用提取媒體數(shù)據(jù)的客戶端程序(即錄像回放程序)來實(shí)現(xiàn)向磁盤陣列柜內(nèi)的服務(wù)端程序請求數(shù)據(jù)流和對外發(fā)送數(shù)據(jù)流的功能,回放程序內(nèi)部處理的流程如圖6所示
(1)當(dāng)請求某路視頻回放的RTSP信令建立成功后,就創(chuàng)建了回放該路視頻數(shù)據(jù)的線程,該線程將會向磁盤陣列柜內(nèi)的服務(wù)端程序請求所需時(shí)間段的數(shù)據(jù)、然后將接收到的媒體數(shù)據(jù)發(fā)送給用戶操作界面;
(2)處理回放的該路視頻數(shù)據(jù)的線程會不斷循環(huán)地向服務(wù)端程序請求回放時(shí)間段內(nèi)的媒體數(shù)據(jù),并將接收到的媒體數(shù)據(jù)緩存到該路任務(wù)的數(shù)據(jù)鏈表里,等待媒體數(shù)據(jù)發(fā)送模塊將數(shù)據(jù)取出后發(fā)送給用戶操作界面;
(3 )數(shù)據(jù)包取出后,根據(jù)包頭和包尾添加的字段的信息,獲取這個(gè)數(shù)據(jù)包和上一個(gè)發(fā)送了的數(shù)據(jù)包的時(shí)間間隔,這個(gè)間隔就是接收包時(shí)前后兩個(gè)數(shù)據(jù)包的時(shí)間間隔差;
(4)當(dāng)這個(gè)時(shí)間間隔到達(dá)后,就將該數(shù)據(jù)包發(fā)送給用戶操作界面,否則就阻塞在此,等待時(shí)間點(diǎn)到達(dá)后再發(fā)送該數(shù)據(jù)包;
(5)當(dāng)前數(shù)據(jù)包發(fā)送完后,再從任務(wù)的數(shù)據(jù)鏈表里獲取下一個(gè)數(shù)據(jù)包,再循環(huán)執(zhí)行第3
止
少ο本系統(tǒng)將發(fā)送數(shù)據(jù)的回放客戶端和從磁盤內(nèi)提取數(shù)據(jù)的服務(wù)端一體化集成在磁盤陣列柜上,采用優(yōu)選的數(shù)據(jù)提取方式,相比于傳統(tǒng)的數(shù)據(jù)回放服務(wù)器和磁盤陣列柜獨(dú)立分開的系統(tǒng)具有以下明顯的優(yōu)勢
(1)服務(wù)端程序采用優(yōu)選的數(shù)據(jù)提取方式,以提高磁盤的并發(fā)讀取的速率,提取數(shù)據(jù)的過程同寫入過程相反,服務(wù)端單元收到對某個(gè)攝像頭的某段時(shí)間內(nèi)的錄像回放請求后,循環(huán)從磁盤陣列柜的物理磁盤單元內(nèi)按連續(xù)的塊提取出數(shù)據(jù),原先寫入時(shí)是以多大的塊寫入的,現(xiàn)在就以多大的塊提取出來,這種提取方式可以完全還原寫入時(shí)的數(shù)據(jù)。服務(wù)端程序一次性提取出多個(gè)數(shù)據(jù)包,并將數(shù)據(jù)包組合到一定的大小后一次性發(fā)送給回放客戶端程序, 這樣可以減少磁盤讀取的次數(shù),提高磁盤并發(fā)讀取的速率,從而提高該存儲系統(tǒng)能支持的最大回放路數(shù);
(2)回放客戶端程序更簡化,它不需要像專用獨(dú)立的回放程序那樣,還需要自己去查找網(wǎng)絡(luò)虛擬磁盤內(nèi)對應(yīng)的文件內(nèi)的媒體數(shù)據(jù),減少了這個(gè)環(huán)節(jié),回放程序只需對收到的數(shù)據(jù)包先緩存下來,然后進(jìn)行解析后,再按用戶要求的回放速率對外發(fā)送數(shù)據(jù)包;
(3)回放客戶端和提取數(shù)據(jù)的服務(wù)端一體化集成在磁盤陣列柜內(nèi),可有效避免回放數(shù)據(jù)量大時(shí)造成的網(wǎng)絡(luò)擁塞。本發(fā)明網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)相比于傳統(tǒng)的網(wǎng)絡(luò)存儲系統(tǒng)具有如下優(yōu)勢
(1)跨平臺C/S模式(即客戶端/服務(wù)器模式)工作,基于標(biāo)準(zhǔn)Socket (網(wǎng)絡(luò)套接字)通信,結(jié)構(gòu)簡潔清晰。采用C/S模式構(gòu)建存儲系統(tǒng),不同于傳統(tǒng)的存儲應(yīng)用系統(tǒng)需要通過操作系統(tǒng)、 iscsi-initiator應(yīng)用軟件或HBA卡這些中間部件才能完成數(shù)據(jù)的傳輸和寫入。C/S模式能有效地減少數(shù)據(jù)傳輸過程中的單點(diǎn)故障,使得數(shù)據(jù)傳輸方式更簡捷、更容易控制和維護(hù)。(2)監(jiān)控視頻數(shù)據(jù)流式存儲,提高系統(tǒng)整體效率??蛻舳藛卧头?wù)端單元之間僅傳遞媒體數(shù)據(jù)流,服務(wù)端單元將收到的數(shù)據(jù)流按塊寫入磁盤陣列柜的物理磁盤單元,其中間不經(jīng)過操作系統(tǒng)對數(shù)據(jù)以文件形式封裝的中間環(huán)節(jié),可以徹底解決目前以iscsi方式連接的磁盤陣列柜應(yīng)用系統(tǒng)在存儲數(shù)據(jù)的過程中因網(wǎng)絡(luò)中斷所造成的磁盤陣列柜的虛擬磁盤只讀的故障,給這種故障提供了一種很好的解決方式,提高存儲系統(tǒng)的穩(wěn)定性。(3)存儲系統(tǒng)功能一體化,降低系統(tǒng)成本??蛻舳藛卧头?wù)端單元都嵌入到磁盤陣列柜內(nèi)運(yùn)行,由一臺磁盤陣列柜完成數(shù)據(jù)的傳輸、保存、獲取、查詢、刪除等所有功能。這種方式可以避免各功能分散于不同的服務(wù)器上可能出現(xiàn)的網(wǎng)絡(luò)帶寬限制,并能有效地減少存儲系統(tǒng)的建設(shè)成本。(4)提高存儲系統(tǒng)并發(fā)寫入速率。系統(tǒng)為每條視頻流分配一對Socket實(shí)現(xiàn)存儲,由于Socket的輕量級和高效性,系統(tǒng)可以維護(hù)多對Socket而占用系統(tǒng)資源很少,提高系統(tǒng)整體的并發(fā)能力。當(dāng)一個(gè)客戶端單元通過Socket請求連接時(shí),服務(wù)端單元分配存儲資源,在服務(wù)端單元初始化存儲資源時(shí)完成,服務(wù)端單元根據(jù)客戶端單元傳入的初始化存儲參數(shù),分配連續(xù)的存儲空間來保存數(shù)據(jù), 減少寫入數(shù)據(jù)的過程中查詢磁盤內(nèi)可寫的空閑位置所花費(fèi)的時(shí)間,也避免了數(shù)據(jù)分散于磁盤內(nèi)各個(gè)不同的位置區(qū)域,能有效地減少磁盤碎片的產(chǎn)生和磁針的跳躍頻率,從而提高磁盤的讀/寫速率和磁盤陣列柜的并發(fā)存儲能力。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),其特征在于,其包括有客戶端單元、服務(wù)端單元及物理磁盤單元,所述客戶端單元的客戶端程序與所述服務(wù)端單元的服務(wù)端程序通過標(biāo)準(zhǔn)的API接口進(jìn)行媒體數(shù)據(jù)流傳輸,并且所述客戶端單元和所述服務(wù)端單元都嵌入到磁盤陣列柜內(nèi)部運(yùn)行;所述客戶端單元負(fù)責(zé)接收數(shù)據(jù)并處理后發(fā)送給所述服務(wù)端單元,以及向所述服務(wù)端單元請求數(shù)據(jù)并解析后對外發(fā)送,所述服務(wù)端單元負(fù)責(zé)將所述客戶端單元傳來的數(shù)據(jù)按優(yōu)先的策略寫入磁盤陣列柜的所述物理磁盤單元內(nèi),以及從所述物理磁盤單元內(nèi)查詢到需要的數(shù)據(jù)后發(fā)送給所述客戶端單元。
2.如權(quán)利要求1所述的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),其特征在于,所述客戶端單元前連接有視頻前端設(shè)備及用戶操作界面,所述視頻前端設(shè)備由前端攝像頭和編碼器構(gòu)成, 用以采集媒體數(shù)據(jù),并通過所述網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng)將前端視頻數(shù)據(jù)通過錄像程序?qū)崟r(shí)保存到網(wǎng)絡(luò)存儲設(shè)備中,并對保存的媒體數(shù)據(jù)提取通過回放程序回放給所述用戶操作界面。
3.如權(quán)利要求2所述的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),其特征在于,所述錄像程序、回放程序和讀/寫磁盤陣列柜磁盤的所述服務(wù)端程序嵌入到所述磁盤陣列柜內(nèi)運(yùn)行。
4.如權(quán)利要求2所述的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),其特征在于,所述客戶端單元實(shí)現(xiàn)接收與發(fā)送兩個(gè)方向的功能,所述客戶端單元由數(shù)據(jù)存儲單元和數(shù)據(jù)提取單元組成, 所述數(shù)據(jù)存儲單元為錄像單元,負(fù)責(zé)接收來自所述視頻前端設(shè)備的數(shù)據(jù),將數(shù)據(jù)進(jìn)行相應(yīng)格式的轉(zhuǎn)換后發(fā)送到所述服務(wù)端單元;所述數(shù)據(jù)提取單元為回放單元,負(fù)責(zé)從所述服務(wù)端單元請求所需的時(shí)間段的數(shù)據(jù),將數(shù)據(jù)按保存的格式解析后發(fā)送給所述用戶操作界面。
5.如權(quán)利要求4所述的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),其特征在于,所述數(shù)據(jù)存儲單元包括有依次相連的保存數(shù)據(jù)控制信令模塊、媒體數(shù)據(jù)接收模塊、媒體數(shù)據(jù)處理模塊、媒體數(shù)據(jù)發(fā)送模塊及媒體數(shù)據(jù)存儲接口,其中,所述保存數(shù)據(jù)控制信令模塊接收來自所述用戶操作界面所發(fā)出的存儲控制信令,以及向其返回?cái)?shù)據(jù)保存的結(jié)果;所述媒體數(shù)據(jù)接收模塊在數(shù)據(jù)處理任務(wù)建立成功后,接收對應(yīng)監(jiān)控點(diǎn)的視頻數(shù)據(jù);所述媒體數(shù)據(jù)處理模塊無限循環(huán)地去獲取收到的每路視頻數(shù)據(jù)包,并對每個(gè)數(shù)據(jù)包按一定的格式進(jìn)行轉(zhuǎn)換;所述媒體數(shù)據(jù)發(fā)送模塊負(fù)責(zé)將處理完的數(shù)據(jù)包,通過調(diào)用所述媒體數(shù)據(jù)存儲接口將數(shù)據(jù)發(fā)送給所述磁盤陣列柜內(nèi)的服務(wù)端程序,讓所述服務(wù)端單元將數(shù)據(jù)寫入所述物理磁盤單兀。
6.如權(quán)利要求5所述的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),其特征在于,所述媒體數(shù)據(jù)存儲接口包括客戶端注冊/注銷接口、開始/停止錄像接口、開始發(fā)送數(shù)據(jù)接口、查詢錄像接口及錯(cuò)誤提示接口。
7.如權(quán)利要求4所述的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),其特征在于,所述數(shù)據(jù)提取單元包括有提取數(shù)據(jù)控制信令模塊、媒體數(shù)據(jù)提取接口、媒體數(shù)據(jù)接收模塊、媒體數(shù)據(jù)處理模塊及媒體數(shù)據(jù)發(fā)送模塊,其中,所述提取數(shù)據(jù)控制信令模塊處理所述客戶端單元與所述用戶操作界面之間的RTSP交互信令;所述媒體數(shù)據(jù)提取接口是所述客戶端程序向所述服務(wù)端程序獲取以前保存的媒體數(shù)據(jù)的API接口,該接口主要包括開始取數(shù)據(jù)流接口、停止取數(shù)據(jù)流接口及獲取攝像頭私有文件頭信息接口 ;所述媒體數(shù)據(jù)接收模塊將接收到的每個(gè)數(shù)據(jù)包緩存到的數(shù)據(jù)鏈表里,以交給所述媒體數(shù)據(jù)處理模塊來處理鏈表里的數(shù)據(jù);所述媒體數(shù)據(jù)處理模塊不斷地從所述數(shù)據(jù)鏈表里提取出收到的每路數(shù)據(jù)包,并根據(jù)數(shù)據(jù)包保存的格式對每個(gè)包進(jìn)行解析,獲取這個(gè)數(shù)據(jù)包和前一個(gè)數(shù)據(jù)包的時(shí)間間隔、數(shù)據(jù)包的類型、包的長度,數(shù)據(jù)包的內(nèi)容;所述媒體數(shù)據(jù)發(fā)送模塊將解析完了的數(shù)據(jù)包,在需要發(fā)送的時(shí)間點(diǎn)發(fā)送給用戶請求回放的所述用戶操作界面。
8.如權(quán)利要求5或7所述的網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),其特征在于,所述數(shù)據(jù)包為 RTP/RTCP媒體數(shù)據(jù)包。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)視頻監(jiān)控?cái)?shù)據(jù)流存儲系統(tǒng),其包括有客戶端單元、服務(wù)端單元及物理磁盤單元,所述客戶端單元的客戶端程序與所述服務(wù)端單元的服務(wù)端程序通過標(biāo)準(zhǔn)的API接口進(jìn)行媒體數(shù)據(jù)流傳輸,并且客戶端單元和服務(wù)端單元都嵌入到磁盤陣列柜內(nèi)部運(yùn)行;所述客戶端單元負(fù)責(zé)接收數(shù)據(jù)并處理后發(fā)送給所述服務(wù)端單元,以及向所述服務(wù)端單元請求數(shù)據(jù)并解析后對外發(fā)送,所述服務(wù)端單元負(fù)責(zé)將所述客戶端單元傳來的數(shù)據(jù)按優(yōu)先的策略寫入磁盤陣列柜的所述物理磁盤單元內(nèi),以及從所述物理磁盤單元內(nèi)查詢到需要的數(shù)據(jù)后發(fā)送給所述客戶端單元。借由本發(fā)明的存儲系統(tǒng),能有效地減少數(shù)據(jù)傳輸過程中的單點(diǎn)故障,使得數(shù)據(jù)傳輸方式更簡捷、更容易控制和維護(hù)。
文檔編號H04N7/18GK102413304SQ20111028779
公開日2012年4月11日 申請日期2011年9月26日 優(yōu)先權(quán)日2011年9月26日
發(fā)明者周文舉, 武樹斌 申請人:武漢烽火網(wǎng)絡(luò)有限責(zé)任公司