本發明涉及監控設備領域,尤其涉及一種多方視頻監看方法及裝置。
背景技術:
監控是為了更好的保護我們的人身和財產安全,在出現糾紛或有分歧事件時,作為一個還原現場的手段,成為了人們生活中不可或缺的一道安全屏障。監控在銀行、超市、商場、店面、工廠、學校、小區、網吧等公共區域隨處可見,各地公安機關依靠視頻監控的輔助破案率也是急速的飆升,隨著平安城市的建設,監控系統愈將融入我們的生活發揮著他的作用。
現有技術中,不同的客戶端只能監看與之有關聯關系的服務器控制的攝像頭采集的視頻數據,這樣增大了服務器的存儲壓力,降低了工作效率。
技術實現要素:
本發明的主要目的在于提供一種多方視頻監看方法及裝置,旨在降低服務器存儲視頻數據的存儲壓力,從而提高工作效率。
為實現上述目的,本發明提供的一種多方視頻監看方法包括如下步驟:
接收不同客戶端發送的視頻監看請求;
查詢后臺是否存在相應的視頻數據,當查詢到后臺不存在相應的視頻數據時,則發送詢問信息至相連的服務器;
接收相連的服務器發送過來的反饋信息與相應的視頻數據;
將接收到的視頻數據發送至相應的客戶端。優選地,所述接收不同客戶端發送的視頻監看請求之前還包括:
接收不同客戶端發送的注冊請求;
根據不同客戶端的注冊請求,給不同客戶端分配與各個客戶端相對應的注冊地址,與所述客戶端進行通信連接。
優選地,所述視頻監看請求中的視頻為相同的視頻數據。
優選地,所述發送詢問信息至相連的服務器的步驟之前包括:
判斷不同服務器之間是否存在通訊連接;
若不存在通訊連接,則將各個服務器之間的UDP端口打開,各個服務器之間采用UDP通訊方式進行P2P通訊連接;
各個完成通訊連接后的服務器之間進行視頻數據交換。
優選地,所述多方視頻監看方法還包括:
將從攝像機采集到的所述視頻數據存儲至后臺;其中,所述后臺為分布式文件系統的存儲集群。
此外,為實現上述目的,本發明還提供一種多方視頻監看裝置,所述多方視頻監看裝置:
第一接收模塊,用于接收不同客戶端發送的視頻監看請求;
查詢模塊,用于查詢后臺是否存在相應的視頻數據,當查詢到后臺不存在相應的視頻數據時,則發送詢問信息至相連的服務器;
第二接收模塊,用于接收相連的服務器發送過來的反饋信息與相應的視頻數據;
發送模塊,用于將接收到的視頻數據發送至相應的客戶端。
優選地,所述多方視頻監看裝置還包括:
第三接收模塊,用于接收不同客戶端發送的注冊請求;
注冊模塊,用于根據不同客戶端的注冊請求,給不同客戶端分配與各個客戶端相對應的注冊地址,與所述客戶端進行通信連接。
優選地,所述視頻監看請求中的視頻為相同的視頻數據。
優選地,所述查詢模塊還包括:
判斷單元,用于查詢不同服務器之間是否存在通訊連接;
通訊連接單元,用于若不存在通訊連接,則將各個服務器之間的UDP端口打開,各個服務器之間采用UDP通訊方式進行P2P通訊連接;
交換單元,用于各個完成通訊連接后的服務器之間進行視頻數據交換。
優選地,所述多方視頻監看裝置還包括:
采集模塊,用于將從攝像機采集到的所述視頻數據存儲至后臺;其中,所述后臺為分布式文件系統的存儲集群。
本發明通過接收不同客戶端發送的視頻監看請求;查詢后臺是否存在相應的視頻數據,當查詢到后臺不存在相應的視頻數據時,則發送詢問信息至相連的服務器;接收相連的服務器發送過來的反饋信息與相應的視頻數據;將接收到的視頻數據發送至相應的客戶端。采用本發明的視頻監看方法實現不同客戶端在同一服務器上實現視頻監看,同時還可以從該服務器獲取相連服務器存儲的視頻資源,節省資源的同時提高了效率。
附圖說明
圖1為本發明多方視頻監看方法第一實施例的流程示意圖;
圖2為本發明多方視頻監看方法第二實施例的流程示意圖;
圖3為本發明多方視頻監看方法第三實施例中各個服務器之間進行通訊連接的細化流程示意圖;
圖4為本發明多方視頻監看裝置第一實施例的功能模塊示意圖;
圖5為本發明多方視頻監看裝置第二實施例的功能模塊示意圖;
圖6為本發明多方視頻監看裝置第三實施例中查詢模塊的細化功能模塊示意圖;
圖7為多方視頻監看方法的架構圖。
本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
本發明提供一種多方視頻監看方法,參照圖1和圖7,在第一實施例中,該多方視頻監看方法包括:
步驟S10,接收不同客戶端發送的視頻監看請求;
在監控系統中包括眾多的網絡攝像機和服務器,本發明實施例提供的多方視頻監看方法用于實現多個客戶端監看同一攝像頭相同的視頻數據。
在接收客戶端發送的視頻監看請求之前,服務器搜尋與之匹配的攝像頭。當服務器在網絡中發起探測服務,只要是網絡攝像機能收到所述探測服務,則都會針對所述探測服務發回反饋信息,其中反饋信息包括了自身的IP地址等信息,此時,所述服務器即找到了相應的網絡攝像機。若需要進行跨網絡段搜索網絡攝像機,則需要路由的支撐。采用這種探測的方式尋找與服務器相對應的攝像頭更加具有針對性。
這種探測服務稱為ws-discovery,它定義了兩種基本的實現服務發現機制的操作模式,及Ad-Hoc和Managed,在Managed模式下,一個維護所有可用目標服務的中心發現代理被建立起來,服務器只需要與該發現代理進行交互就可以進行可用服務的探測和解析得到相應的目標服務信息,而目標服務也只需要和直接發現代理交換就能實現對自身的注冊。在Managed模式下,發現代理是真正的核心,而且所有消息交換的方式都是以單播的方式進行的,這樣一來能夠解除廣播對網絡的限制、擴大可用服務的范圍;二來也可以避免廣播引起對網絡的擁堵。
具體地,本實施例中,服務器接收不同客戶端發送的視頻監看請求。所述服務器可以用來接收不同客戶端發送的視頻監看請求,根據相應的請求響應相應的操作。其中,所述客戶端可以為手機、電腦或者可查看視頻的設備,具體不做限制。而本實施例中的攝像頭可以是各個社區內的攝像頭或者是公共區域內的攝像頭。通過客戶端發送的請求查看各個攝像頭監控下來的視頻數據,上述的視頻數據可以是正在錄制的視頻數據,也可以是已經錄制的存儲的視頻數據,從而實現對視頻的監控和回看。
需要說明的是,所述不同客戶端發送的視頻監看請求具體地為向多個服務器發送視頻監看請求;其中,所述視頻監看請求中的視頻為相同的視頻數據。即,不同的客戶端向不同的服務器發送相同的視頻數據的監看請求。對此本實施例所要解決的問題就是如何實現不同服務器之間的視頻數據資源交換,從而實現對于相同的視頻數據只需在一個服務器中存儲,從而節省服務器的存儲壓力。
步驟S20,查詢后臺是否存在相應的視頻數據,當查詢到后臺不存在相應的視頻數據時,則發送詢問信息至相連的服務器;
本實施例中,服務器所對應的攝像機采集視頻數據,服務器將從攝像機采集到的所述視頻數據存儲至后臺;其中,所述后臺為分布式文件系統的存儲集群。
本實施例中,所述客戶端發送視頻監看請求,其中,所發送的視頻監看請求包括視頻數據的代碼,可以確切的知道需要查看的視頻的時間、對應的攝像機等,以便服務器可根據相應的代碼查找到相應的視頻數據。具體地,服務器根據接收到的視頻數據請求,向后臺發送查詢命令,服務器后臺根據相應的指令,查詢服務器的數據存儲區域是否存在相應的視頻數據。當服務器后臺不存在相應的視頻數據,則發送詢問信息至與本服務器相連的其他服務器,所述的詢問信息包括該視頻數據的IP、時間以及對應的監控區域和對應的攝像頭等等。發送詢問信息意味著詢問與本服務器相連的其他服務器是否存儲了該視頻數據的視頻資源,如果其他服務器有存儲相應的視頻資源,則可選擇向其他服務器獲取該視頻資源。
步驟S30,接收相連的服務器發送過來的反饋信息與相應的視頻數據;
如果其他相連的服務器存在相應的視頻數據,則將發送該視頻數據至本服務器。從而實現不同服務器之間視頻數據資源的共享,進而使得對于同一視頻數據無需在不同的服務器之間分別一一進行存儲,僅需在一個服務器上存儲即可,很大程度上節省了服務器的存儲資源。
步驟S40,將接收到的視頻數據發送至相應的客戶端。
本實施例中,服務器將接收的其他服務器發送過來的視頻數據發送給相應的客戶端。
本實施例通過接收不同客戶端發送的視頻監看請求;查詢后臺是否存在相應的視頻數據,當查詢到后臺不存在相應的視頻數據時,則發送詢問信息至相連的服務器;接收相連的服務器發送過來的反饋信息與相應的視頻數據;將接收到的視頻數據發送至相應的客戶端。采用本發明的視頻監看方法實現不同客戶端在同一服務器上實現視頻監看,同時還可以從該服務器獲取相連服務器存儲的視頻資源,節省資源的同時提高了效率。
進一步地,請參閱圖2,基于本發明多方視頻監看方法第一實施例,在本發明多方視頻監看方法第二實施例中,上述步驟S10之前還包括:
步驟S11,接收不同客戶端發送的注冊請求;
具體地,本實施例中,不同客戶端發送注冊請求至相應的服務器,服務器根據客戶端的請求,與客戶端之間進行通信連接。
步驟S12,根據不同客戶端的注冊請求,給不同客戶端分配與各個客戶端相對應的注冊地址,與所述客戶端進行通信連接。
本實施例中,不同的客戶端分別在相應的服務器上完成注冊,以便下次登錄服務器時,服務器看根據其注冊信息獲得其登錄記錄,而無需重復進行身份認證或是其他認證。
進一步地,所述不同客戶端發送的視頻監看請求具體地可為向多個服務器發送視頻監看請求。當多個客戶端監看某一個攝像頭視頻時,由于服務器比較多,不可能每個客戶端都登錄到同一臺服務器上,比如客戶端1登錄到了服務器A,客戶端B登錄到了服務器B。以此緩解一個服務器的工作壓力,從而提高工作效率。
進一步地,請參閱圖3,基于本發明多方視頻監看方法第二實施例,在本發明多方視頻監看方法第三實施例中,上述步驟S10之前還包括:
步驟S101,查詢不同服務器之間是否存在通訊連接;
步驟S102,若不存在通訊連接,則將各個服務器之間的UDP端口打開,各個服務器之間采用UDP通訊方式進行P2P通訊連接;
步驟S103,各個完成通訊連接后的服務器之間進行視頻數據交換。
本實施例以Cone NAT為例,當服務器A和服務器B的NAT均是Cone NAT,則服務器A和服務器B之間進行P2P通信連接之前要進行打洞才能進行連接。具體地,上述的兩個服務器A和服務器B之間進行打洞的方式為本領域熟知的方法,在此不一一贅述。此即常見的P2P(Peer to Peer)通道的建立。
P2P建立成功后,服務器之間就具備了相互傳輸數據的能力,當多個監看客戶端(手機,PC等設備)要查看某一個攝像頭的某一時刻的數據的時候,發出RTSP請求到服務器A,服務器A是與該攝像頭進行信號連接的服務器,當服務器A收到RTSP請求后從分布式存儲系統提取數據,查找客戶端要求的起始位置數據,根據日期、時間等信息鎖定起始位置后,傳輸視頻數據給服務器B。服務器B由于未與攝像頭連接而不能直接查看攝像頭實時的視頻數據,而采用這種與服務器A建立P2P通道的連接方式可通過服務器A獲得攝像頭的視頻數據。
進而服務器B將收到的視頻數據通過RTP協議發送給客戶端,RTP是一種實時傳輸協議,主要是用于傳輸音視頻數據,當RTSP建立成功后,RTP數據就可以開始傳輸了。
進一步地,本實施例中,客戶端A發送視頻監看請求至服務器A,所述視頻監看請求是針對于已經錄制好的視頻,查看視頻回看;客戶端B發送同一視頻監看請求至服務器B時,此時為了節省存儲后端的壓力,服務器A從存儲系統獲取了視頻流后,直接發送給了客戶端A,客戶端A能夠看到該視頻。客戶端B由于連接的是服務器B,服務器B首先去嘗試與服務器A詢問,如果服務器A有服務器B需要的視頻數據,則直接將視頻數據發送給服務器B,服務器B就不需要再從存儲系統取數據了,這樣就減少了后端存儲系統的壓力。因此在不同客戶端發送同一視頻監看請求至服務器時,不同的服務器之間先查詢各個服務器之間是否存在通訊連接,以確認兩者之間是否能進行數據傳,如果各個服務器之間不存在通訊連接,則需要采用UDP通訊方式在不同服務器建立P2P通道進行連接。
本實施例通過在不同服務器之間建立P2P通道,從而實現不同服務器之間的數據傳輸功能,從而可對于不同客戶端的視頻查看的請求在服務器之間尋找相應的視頻資源,以此緩解了各個服務器儲存后端的儲存壓力,從而提高了工作效率。
本發明還提供一種多方視頻監看裝置,參照圖4,在第一實施例中,該多方視頻監看裝置包括:
第一接收模塊10,用于接收不同客戶端發送的視頻監看請求;
在監控系統中包括眾多的網絡攝像機和服務器,本發明實施例提供的實現多方視頻監看的裝置用于實現多個客戶端監看同一攝像頭相同的視頻數據。
在接收客戶端發送的視頻監看請求之前,服務器搜尋與之匹配的攝像頭。當服務器在網絡中發起探測服務,只要是網絡攝像機能收到所述探測服務,則都會針對所述探測服務發回反饋信息,其中反饋信息包括了自身的IP地址等信息,此時,所述服務器即找到了相應的網絡攝像機。若需要進行跨網絡段搜索網絡攝像機,則需要路由的支撐。采用這種探測的方式尋找與服務器相對應的攝像頭更加具有針對性。
這種探測服務稱為ws-discovery,它定義了兩種基本的實現服務發現機制的操作模式,及Ad-Hoc和Managed,在Managed模式下,一個維護所有可用目標服務的中心發現代理被建立起來,服務器只需要與該發現代理進行交互就可以進行可用服務的探測和解析得到相應的目標服務信息,而目標服務也只需要和直接發現代理交換就能實現對自身的注冊。在Managed模式下,發現代理是真正的核心,而且所有消息交換的方式都是以單播的方式進行的,這樣一來能夠解除廣播對網絡的限制、擴大可用服務的范圍;二來也可以避免廣播引起對網絡的擁堵。
具體地,本實施例中,服務器中的接收模塊接收不同客戶端發送的視頻監看請求。所述服務器可以用來接收不同客戶端發送的視頻監看請求,根據相應的請求響應相應的操作。其中,所述客戶端可以為手機、電腦或者可查看視頻的設備,具體不做限制。而本實施例中的攝像頭可以是各個社區內的攝像頭或者是公共區域內的攝像頭。通過客戶端發送的請求查看各個攝像頭監控下來的視頻數據,上述的視頻數據可以是正在錄制的視頻數據,也可以是已經錄制的存儲的視頻數據,從而實現對視頻的監控和回看。
需要說明的是,所述不同客戶端發送的視頻監看請求具體地為可向多個服務器發送視頻監看請求;其中,所述視頻監看請求中的視頻為相同的視頻數據。即,不同的客戶端向不同的服務器發送相同的視頻數據的監看請求。對此本實施例所要解決的問題就是如何實現不同服務器之間的交換,從而實現對于相同的視頻數據只需在一個服務器中存儲,從而節省服務器的存儲壓力。
查詢模塊20,用于查詢后臺是否存在相應的視頻數據,當查詢到后臺不存在相應的視頻數據時,則發送詢問信息至相連的服務器;
本實施例中,服務器所對應的攝像機采集視頻數據,服務器的采集模塊將從攝像機采集到的所述視頻數據存儲至后臺;其中,所述后臺為分布式文件系統的存儲集群。
本實施例中,所述客戶端發送視頻監看請求,其中,所發送的視頻監看請求包括視頻數據的代碼,可以確切的知道需要查看的視頻的時間、對應的攝像機等,以便服務器可根據相應的代碼查找到相應的視頻數據。具體地,服務器的查詢模塊根據接收到的視頻數據請求,向后臺發送查詢命令,服務器后臺根據相應的指令,查詢服務器的數據存儲區域是否存在相應的視頻數據。當服務器后臺不存在相應的視頻數據,則發送詢問信息至與本服務器相連的其他服務器,所述的詢問信息包括該視頻數據的IP、時間以及對應的監控區域和對應的攝像頭等等。發送詢問信息意味著詢問與本服務器相連的其他服務器是否存儲了該視頻數據的視頻資源,如果其他服務器有存儲相應的視頻資源,則可選擇向其他服務器獲取該視頻資源。
第二接收模塊30,接收相連的服務器發送過來的反饋信息與相應的視頻數據;
如果其他相連的服務器存在相應的視頻數據,則將發送該視頻數據至本服務器。從而實現不同服務器之間視頻數據資源的共享,進而使得對于同一視頻數據無需在不同的服務器之間分別一一進行存儲,僅需在一個服務器上存儲即可,很大程度上節省了服務器的存儲資源。
發送模塊40,用于將接收到的視頻數據發送至相應的客戶端。
本實施例中,服務器將接收的其他服務器發送過來的視頻數據發送給相應的客戶端。
本實施例通過接收不同客戶端發送的視頻監看請求;查詢后臺是否存在相應的視頻數據,當查詢到后臺不存在相應的視頻數據時,則發送詢問信息至相連的服務器;接收相連的服務器發送過來的反饋信息與相應的視頻數據;將接收到的視頻數據發送至相應的客戶端。采用本發明的視頻監看方法實現不同客戶端在同一服務器上實現視頻監看,同時還可以從該服務器獲取相連服務器存儲的視頻資源,節省資源的同時提高了效率。
進一步地,請參閱圖5,基于本發明多方視頻監看裝置第一實施例,在本發明多方視頻監看裝置第二實施例中,所述多方視頻監看裝置還包括:
第三接收模塊11,用于接收不同客戶端發送的注冊請求;
具體地,本實施例中,不同客戶端發送注冊請求至相應的服務器,服務器根據客戶端的請求,與客戶端之間進行通信連接。
注冊模塊12,用于根據不同客戶端的注冊請求,給不同客戶端分配與各個客戶端相對應的注冊地址。
本實施例中,不同的客戶端分別在相應的服務器上完成注冊,以便下次登錄服務器時,服務器看根據其注冊信息獲得其登錄記錄,而無需重復進行身份認證或是其他認證。
進一步地,所述不同客戶端發送的視頻監看請求具體地可為向多個服務器發送視頻監看請求。當多個客戶端監看某一個攝像頭視頻時,由于服務器比較多,不可能每個客戶端都登錄到同一臺服務器上,比如客戶端1登錄到了服務器A,客戶端B登錄到了服務器B。以此緩解一個服務器的工作壓力,從而提高工作效率。
進一步地,請參閱圖6,基于本發明多方視頻監看裝置第二實施例,在本發明多方視頻監看裝置第三實施例中,所述查詢模塊還包括:
查詢單元101,用于查詢不同服務器之間是否存在通訊連接;
通訊連接單元102,用于當不存在通訊連接時,則將各個服務器之間的UDP端口打開,各個服務器之間采用UDP通訊方式進行P2P通訊連接;
交換單元103,用于各個完成通訊連接后的服務器之間進行視頻數據交換。
本實施例以Cone NAT為例,當服務器A和服務器B的NAT均是Cone NAT,則服務器A和服務器B之間進行P2P通信連接之前要進行打洞才能進行連接。具體地,上述的兩個服務器A和服務器B之間進行打洞的方式為本領域熟知的方法,在此不一一贅述。此即常見的P2P(Peer to Peer)通道的建立。
P2P建立成功后,服務器之間就具備了相互傳輸數據的能力,當多個監看客戶端(手機,PC等設備)要查看某一個攝像頭的某一時刻的數據的時候,發出RTSP請求到服務器A,服務器A是與該攝像頭進行信號連接的服務器,當服務器A收到RTSP請求后從分布式存儲系統提取數據,查找客戶端要求的起始位置數據,根據日期、時間等信息鎖定起始位置后,傳輸視頻數據給服務器B。服務器B由于未與攝像頭連接而不能直接查看攝像頭實時的視頻數據,而采用這種與服務器A建立P2P通道的連接方式可通過服務器A獲得攝像頭的視頻數據。
進而服務器B將收到的視頻數據通過RTP協議發送給客戶端,RTP是一種實時傳輸協議,主要是用于傳輸音視頻數據,當RTSP建立成功后,RTP數據就可以開始傳輸了。
進一步地,本實施例中,客戶端A發送視頻監看請求至服務器A,所述視頻監看請求是針對于已經錄制好的視頻,查看視頻回看;客戶端B發送同一視頻監看請求至服務器B時,此時為了節省存儲后端的壓力,服務器A從存儲系統獲取了視頻流后,直接發送給了客戶端A,客戶端A能夠看到該視頻。客戶端B由于連接的是服務器B,服務器B首先去嘗試與服務器A詢問,如果服務器A有服務器B需要的視頻數據,則直接將視頻數據發送給服務器B,服務器B就不需要再從存儲系統取數據了,這樣就減少了后端存儲系統的壓力。因此在不同客戶端發送同一視頻監看請求至服務器時,不同的服務器之間先查詢各個服務器之間是否存在通訊連接,以確認兩者之間是否能進行數據傳,如果各個服務器之間不存在通訊連接,則需要采用UDP通訊方式在不同服務器建立P2P通道進行連接。
本實施例通過在不同服務器之間建立P2P通道,從而實現不同服務器之間的數據傳輸功能,從而可對于不同客戶端的視頻查看的請求在服務器之間尋找相應的視頻資源,以此緩解了各個服務器儲存后端的儲存壓力,從而提高了工作效率。
以上僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。