发明内容
本发明所要解决的技术问题是提供一种视频监控方法、视频监控服务器及编码器设备,以降低视频监控服务器和编码器通道的负载压力。
为解决上述技术问题,本发明提供技术方案如下:
一种视频监控方法,包括:
视频监控客户端发送请求报文到视频监控服务器,所述请求报文中包括编码器通道信息和对应的操作信息,所述操作信息为开启监控或者关闭监控;
所述视频监控服务器根据所述请求报文生成控制报文,所述控制报文中包括编码器通道信息和对应的操作信息,并将所述控制报文发送到第一组播组;
编码器通道加入到所述第一组播组,在接收到所述控制报文后,若所述控制报文中包括本编码器通道,则在对应的操作信息为开启监控时,发送视频数据到所述视频监控客户端,在对应的操作信息为关闭监控时,停止向所述视频监控客户端发送视频数据。
上述的视频监控方法,其中,所述视频监控服务器根据预定时间内接收到的所述请求报文生成所述控制报文。
上述的视频监控方法,其中,还包括:视频监控客户端以针对组播源的过滤模式加入或退出第二组播组;
编码器通道发送视频数据到所述视频监控客户端为:编码器通道将视频数据发送到所述第二组播组。
上述的视频监控方法,其中,还包括:视频监控服务器根据所述请求报文建立并维护一张视频数据转发表,所述视频数据转发表中包括编码器通道与视频监控客户端的对应关系;
所述建立并维护一张视频数据转发表包括:根据所述请求报文中的开启监控操作信息,在所述视频数据转发表中增加相应的表项,并根据所述请求报文中的关闭监控操作信息,在所述视频数据转发表中删除相应的表项;
在删除表项后,判断所述视频数据转发表中是否还包括该删除的表项中的编码器通道,若是,则所生成的控制报文中不包括该编码器通道和对应的关闭监控的操作信息。
上述的视频监控方法,其中,还包括:编码器通道接收到所述控制报文后,若所述控制报文中不包括本编码器通道,且其中包括的编码器通道与本编码器通道相关联,则在相关联的编码器通道对应的操作信息为开启监控时,发送视频数据到所述视频监控客户端,并在预设的第二时间内没有收到包括本编码器通道且对应的操作信息为开启监控的控制报文时,停止向所述视频监控客户端发送视频数据。
一种视频监控服务器,包括:
请求报文接收模块,用于接收视频监控客户端发送的请求报文,所述请求报文中包括编码器通道信息和对应的操作信息,所述操作信息为开启监控或者关闭监控;
控制报文生成模块,用于根据所述请求报文生成控制报文,所述控制报文中包括编码器通道信息和对应的操作信息;
控制报文发送模块,用于将所述控制报文发送到第一组播组,所述第一组播组为本视频监控服务器管理的所有编码器通道所加入的组播组。
上述的视频监控服务器,其中,所述控制报文生成模块,进一步用于根据预定时间内接收到的所述请求报文生成所述控制报文。
上述的视频监控服务器,还包括,转发表设置模块,用于根据所述请求报文建立并维护一张视频数据转发表,所述视频数据转发表中包括编码器通道与视频监控客户端的对应关系;
所述建立并维护一张视频数据转发表包括:根据所述请求报文中的开启监控操作信息,在所述视频数据转发表中增加相应的表项,并根据所述请求报文中的关闭监控操作信息,在所述视频数据转发表中删除相应的表项;
所述控制报文生成模块,进一步用于在删除表项后,判断所述视频数据转发表中是否还包括该删除的表项中的编码器通道,若是,则所生成的控制报文中不包括该编码器通道和对应的关闭监控的操作信息。
一种编码器设备,该编码器设备中包括至少一个编码器通道,所述编码器通道包括:
组播加入模块,用于将本编码器通道加入到第一组播组;
控制报文接收模块,用于接收视频监控服务器发送到第一组播组的控制报文;
视频数据发送模块,用于在所述控制报文中包括本编码器通道时,若对应的操作信息为开启监控,则发送视频数据到视频监控客户端,若对应的操作信息为关闭监控,则停止向所述视频监控客户端发送视频数据。
上述的编码器设备,其中,所述视频数据发送模块,进一步用于通过将视频数据发送到第二组播组来实现视频数据的发送,其中,所述第二组播组为视频监控服务器管理的所有视频监控客户端以针对组播源的过滤模式加入或退出的组播组。
上述的编码器设备,其中,所述编码器通道中还包括,关联设置模块,用于设置与本编码器通道相关联的编码器通道;
所述视频数据发送模块进一步用于,在接收到所述控制报文后,若所述控制报文中不包括本编码器通道,且其中包括的编码器通道与本编码器通道相关联,则在相关联的编码器通道对应的操作信息为开启监控时,发送视频数据到所述视频监控客户端,并在预设的第二时间内没有收到包括本编码器通道且对应的操作信息为开启监控的控制报文时,停止向所述视频监控客户端发送视频数据。
本发明通过将视频监控服务器管理的所有编码器器通道均加入到第一组播组,视频监控服务器以组播方式发送控制报文到编码器通道,能够有效降低视频监控服务器和编码器通道的负载压力。
进一步,所有编码器通道均发送视频数据到第二组播组,视频监控客户端采用针对组播源的过滤模式加入第二组播组,接收需要的组播源对应的视频数据,提高了视频监控客户端对多路视频数据观看时的操作方便性,并节省了编码器通道占用的组播地址数目。
另外,使用组播方式传递控制信令,编码器通道还可以根据与其相关联的编码器通道的状态来预先设置自身数据流的发送,达到对视频监控服务器点播请求的及时相应,从而减少视频监控服务器对编码器通道的点播延时。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
参照图2,本发明实施例的视频监控方法,主要包括如下步骤:
步骤201:视频监控客户端发送请求报文到视频监控服务器,所述请求报文中包括编码器通道信息和对应的操作信息,所述操作信息为开启监控或者关闭监控;
其中,所述请求报文即可以是针对单个编码器通道的开启监控或者关闭监控请求,也可以是针对多个编码器通道的开启监控或者关闭监控请求。
优选地,本发明对具有同一监控属性(例如地理属性、监控关联性等)的多个监控编码器通道进行群组化管理,由用户将具有同一监控属性的多个编码器通道加入到一个群组中。群组成员可以事先定义,也可以实时选择多个编码器通道组成临时群组。视频监控客户端向视频监控服务器发起的请求报文中携带群组内所有的编码器通道及对应的操作信息,可以实现一次呼叫多个成员的目的。对于请求报文中包括的某个编码器通道,根据操作信息的不同,视频监控客户端请求其开启监控,或者,请求其关闭监控。通过所述群组化管理,能够有效提高用户在一次观看多路视频数据流时操作的方便性。
步骤202:视频监控服务器根据所述请求报文生成控制报文,所述控制报文中包括编码器通道信息和对应的操作信息,并将所述控制报文发送到第一组播组;
视频监控服务器每接收到一个请求报文,就可以根据该请求报文的内容生成一个控制报文,并将所述控制报文发送到第一组播组。所述第一组播组是视频监控服务器管理的所有编码器通道所加入的组播组。
在本发明中,视频监控服务器对编码器通道的控制报文是以组播方式发送,即将所述控制报文发送到第一组播组;视频监控服务器管理的全部编码器通道均加入该第一组播组;编码器通道接收到组播控制报文后,根据报文内容来识别是否作用于自身;收到的报文内容中包含自身的编码器通道,以单播方式回应响应报文给视频监控服务器。
视频监控服务器对编码器通道的控制报文通过组播方式发送,可以大大减少视频监控服务器与编码器通道之间的信令交互,减轻视频监控服务器的负载压力。
图3为本发明实施例中控制消息的传输流程图。参照图3,视频监控客户端发送请求报文到视频监控服务器,请求报文中包括编码器通道a、b、c,对应的操作信息为开启监控;视频监控服务器根据所述请求报文生成控制报文后,以组播方式发送该控制报文;编码器通道a、b、c加入到视频监控服务器的组播地址对应的组播组;编码器通道a、b、c接收到控制报文后,启动视频数据流的发送,并以单播方式回应响应报文到视频监控服务器;视频监控服务器回应响应报文到视频监控客户端,视频监控客户端接收编码器通道a、b、c的视频数据流。
为避免同一时间大量视频监控客户端发送请求报文时,视频监控服务器频繁向第一组播组发送控制报文,造成编码器通道的压力,所述视频监控服务器还可以根据预定时间内接收到的所述请求报文来生成所述控制报文。例如,视频监控服务器在发送控制报文后的1s内,不发送控制报文,而是收集所有视频监控客户端在这1s内的请求报文,根据这1s内接收到的请求报文生成控制报文,即,该控制报文中携带这1s内的全部请求信息,然后再将生成的控制报文发送到第一组播组。
步骤203:编码器通道加入到所述第一组播组,在接收到所述控制报文后,若所述控制报文中包括本编码器通道,则在对应的操作信息为开启监控时,发送视频数据到所述视频监控客户端,在对应的操作信息为关闭监控时,停止向所述视频监控客户端发送视频数据。
其中,编码器通道可以以单播方式或者组播方式向所述视频监控客户端发送视频数据。在单播方式下,步骤202中所生成的控制报文还应当包括对应的视频监控客户端信息,这样,在本步骤中,编码器通道就知道将视频数据发送到哪个视频监控客户端。在组播方式下,步骤202中所生成的控制报文不需要包括对应的视频监控客户端信息。
本发明实施例提供两种组播实现方式,一种是不区分组播源的组播方式,在这种方式下,不同的编码器通道发送视频数据到不同的组播组,占用的组播地址比较多。
另外一种为区分组播源的组播方式。将所有编码器通道的视频数据传输目的地址均设置为第二组播组,视频监控服务器管理的所有视频监控客户端均以第三版互联网组管理协议(IGMP V3)中的针对组播源的过滤模式(Include/Exclude)来加入或退出第二组播组。这样,每个视频监控客户端在加入第二组播组的同时,就能够明确要求只接收来自某特定组播源发出的组播数据,可以有效的防止接收第二组播组中其他不需要观看的编码器通道的视频数据。例如,视频监控客户端要求接收来自指定组播源如S1、S2、......的组播数据,则其报告报文(加入报文)中可以标记为Include Sources(S1,S2,......)。
图4为区分组播源的组播方式下视频数据的传输流程图。参照图4,视频监控客户端A加入到组播组G,并在其加入报文中标记Include Sources(Sa,Sb),表明只接收组播源为Sa、Sb的组播组G的视频数据;视频监控客户端B加入到组播组G,并在其加入报文中标记Include Sources(Sc),表明只接收组播源为Sc的组播组G的视频数据;编码器通道a、b、c均以组播方式发送视频数据流,相应的组播表项分别为(Sa,G)、(Sb,G)、(Sc,G);于是,视频监控客户端A接收编码器通道a、b的视频数据,视频监控客户端B接收编码器通道c的视频数据。
另外,由于视频监控服务器通过组播方式传递控制报文到编码器通道,使得编码器通道可以根据其他相关联的编码器通道的状态来预先设置自身视频数据流的发送,达到对视频监控服务器点播请求的及时响应,减少视频监控服务器对编码器通道的点播延时。
具体地,编码器通道接收到控制报文后,若所述控制报文中不包括本编码器通道,且其中包括的编码器通道与本编码器通道相关联,则在相关联的编码器通道对应的操作信息为开启监控时,发送视频数据到所述视频监控客户端,并在预设的第二时间内没有收到包括本编码器通道且对应的操作信息为开启监控的控制报文时,停止向所述视频监控客户端发送视频数据。其中,可以预先在编码器通道上进行设置,把与本编码器通道相关联的编码器通道均存储在本地。例如,同一监控范围内的多个编码器通道存在视频画面的相关联性,则把这些编码器通道设置为相互关联。
需要说明的是,在编码器通道以组播方式向视频监控客户端发送视频数据的情况下,视频监控服务器还需要根据视频监控客户端的请求报文建立并维护一张视频数据转发表,所述视频数据转发表中包括编码器通道(发送者)与视频监控客户端(接收者)的对应关系。
所述建立并维护一张视频数据转发表包括:根据所述请求报文中的开启监控操作信息,在所述视频数据转发表中增加相应的表项,并根据所述请求报文中的关闭监控操作信息,在所述视频数据转发表中删除相应的表项。
在删除表项后,判断所述视频数据转发表中是否还包括该删除的表项中的编码器通道,若是,则步骤202中所生成的控制报文中不包括该编码器通道和对应的关闭监控的操作信息。
例如,在视频监控服务器上建立一张如表1所示的视频数据转发表,记录视频监控服务器所管理的所有编码器通道将视频数据发送给哪些接收者,将已成功建立视频数据传输的发送方(编码器通道)和接收方(视频监控客户端)的IP地址添加到转发表中。
发送者 |
接收者 |
编码器通道a |
客户端A |
编码器通道b |
客户端A |
编码器通道c |
客户端B |
------ |
------ |
表1
当视频监控服务器收到视频监控客户端发送的对一个或多个编码器通道的关闭监控请求后,首先在转发表中删除该视频监控客户端对应的转发表项;然后再查询更新后的转发表,若该关闭监控请求对应的编码器通道仍在转发表中存在表项,说明还有其他的接收者在接收该编码器通道的视频数据,视频监控服务器对该编码器通道不予停止,只停止转发表中已不存在表项的客户请求停止的编码器通道,即,在视频监控服务器发送的关闭监控的控制报文中不包括在转发表中仍然存在表项的编码器通道。
考虑到视频监控服务器接收编码器通道发送的单播响应也存在一定的性能压力,本发明也可以实现视频监控服务器只发送组播控制消息,不要求编码器通道回应。虽然视频监控服务器失去了对编码器通道的状态控制,但不影响视频监控客户端对视频数据流的观看,即使视频监控服务器下发控制报文时,编码器通道不在线,对于客户端只是无法接收到视频数据流,无任何其他影响。在这种实现方式下,视频监控服务器上建立的视频数据转发表,是根据视频监控客户端的请求报文内容来建立表项,有对某编码器通道的请求,就在转发表中建立编码器通道和视频监控客户端的对应关系表项,不用管数据流传输通道是否建立;同样,删除表项也只需要根据视频监控客户端的停止监控请求来删除相应表项。
对应于上述视频监控方法,以下给出实现上述方法的具体设备。
参照图5,本发明实施例的视频监控服务器10主要包括:请求报文接收模块11、控制报文生成模块12、控制报文发送模块13和转发表设置模块14(可选)。
请求报文接收模块11,用于接收视频监控客户端发送的请求报文,所述请求报文中包括编码器通道信息和对应的操作信息,所述操作信息为开启监控或者关闭监控。其中,所述请求报文即可以是针对单个编码器通道的开启监控或者关闭监控请求,也可以是针对多个编码器通道的开启监控或者关闭监控请求。
控制报文生成模块12,用于根据所述请求报文生成控制报文,所述控制报文中包括编码器通道信息和对应的操作信息。
请求报文接收模块11每接收到一个请求报文,控制报文生成模块12就可以根据该请求报文的内容生成一个控制报文。
优选地,控制报文生成模块12根据预定时间内接收到的所述请求报文生成所述控制报文。这样可以避免同一时间大量视频监控客户端发送请求报文时,视频监控服务器10频繁向第一组播组发送控制报文,造成编码器通道的压力。
控制报文发送模块13,用于将所述控制报文发送到第一组播组,所述第一组播组为本视频监控服务器10管理的所有编码器通道所加入的组播组。视频监控服务器10对编码器通道的控制报文通过组播方式发送,可以大大减少视频监控服务器10与编码器通道之间的信令交互,减轻视频监控服务器10的负载压力。
在编码器通道以组播方式向视频监控客户端发送视频数据的情况下,视频监控服务器10还需要根据视频监控客户端的请求报文建立并维护一张视频数据转发表,所述视频数据转发表中包括编码器通道(发送者)与视频监控客户端(接收者)的对应关系。即,视频监控服务器10中还包括转发表设置模块14,用于根据所述请求报文建立并维护一张视频数据转发表。
其中,所述建立并维护一张视频数据转发表包括:根据所述请求报文中的开启监控操作信息,在所述视频数据转发表中增加相应的表项,并根据所述请求报文中的关闭监控操作信息,在所述视频数据转发表中删除相应的表项。
此种情况下,控制报文生成模块12进一步用于,在删除表项后,判断所述视频数据转发表中是否还包括该删除的表项中的编码器通道,若是,则所生成的控制报文中不包括该编码器通道和对应的关闭监控的操作信息。
参照图6,本发明实施例的编码器设备20中包括至少一个编码器通道21,所述编码器通道21主要包括:第一组播组加入模块22、控制报文接收模块23、视频数据发送模块24和关联设置模块25(可选)。
组播加入模块22,用于将本编码器通道11加入到第一组播组。本发明中,将视频监控服务器10管理的所有编码器通道均加入到第一组播组。
控制报文接收模块23,用于接收视频监控服务器10发送到第一组播组的控制报文。
视频数据发送模块24,用于在所述控制报文中包括本编码器通道11时,若对应的操作信息为开启监控,则发送视频数据到视频监控客户端,若对应的操作信息为关闭监控,则停止向所述视频监控客户端发送视频数据。
其中,视频数据发送模块24可以以单播方式或者组播方式向视频监控客户端发送视频数据。在单播方式下,视频监控服务10所生成的控制报文中还应当包括对应的视频监控客户端信息,这样,视频数据发送模块24就知道将视频数据发送到哪个视频监控客户端。在组播方式下,视频监控服务器10所生成的控制报文不需要包括对应的视频监控客户端信息。
在组播方式下,优选地,视频数据发送模块24通过将视频数据发送到第二组播组来实现视频数据的发送,其中,所述第二组播组为视频监控服务器10管理的所有视频监控客户端以针对组播源的过滤模式加入或退出的组播组。
另外,由于视频监控服务器10通过组播方式传递控制报文到编码器通道,使得编码器通道可以根据其他相关联的编码器通道的状态来预先设置自身视频数据流的发送,达到对视频监控服务器10点播请求的及时响应,减少视频监控服务器10对编码器通道的点播延时。因此,所述编码器通道21中还可包括关联设置模块25,用于设置与本编码器通道相关联的编码器通道,把与本编码器通道相关联的编码器通道均存储在本地。例如,同一监控范围内的多个编码器通道存在视频画面的相关联性,则把这些编码器通道设置为相互关联。
此种情况下,视频数据发送模块24进一步用于,在接收到所述控制报文后,若所述控制报文中不包括本编码器通道,且其中包括的编码器通道与本编码器通道相关联,则在相关联的编码器通道对应的操作信息为开启监控时,发送视频数据到所述视频监控客户端,并在预设的第二时间内没有收到包括本编码器通道且对应的操作信息为开启监控的控制报文时,停止向所述视频监控客户端发送视频数据。
以下参照图7描述本发明的一个应用实例。
在该实例中,视频监控服务器管理编码器通道a、b、c、d、e、f。首先,视频监控客户端A请求同时观看编码器通道a、编码器通道b、编码器通道d;然后,视频监控客户端B请求同时观看编码器通道d、编码器通道f;最后,视频监控客户端B请求停止对编码器通道d、编码器通道f的观看。
具体实现过程如下:
视频监控服务器管理编码器通道a、b、c、d、e、f,为各通道分别配置IP地址为a、b、c、d、e、f,编码器通道注册成功后加入到组播组a,视频监控服务器对编码器通道的控制消息以组播方式发送到组播组a,编码器通道均能接收到组播组a内的控制报文,根据报文内容来识别是否作用于自身。
配置编码器通道a、b、c、d、e、f的视频数据流发送地址为组播组b。
在视频监控服务器上建立视频数据转发表,记录所管理的编码器通道(发送者)将视频数据发送给哪些视频监控客户端(接收者)。
视频监控客户端A请求同时观看编码器通道a、编码器通道b、编码器通道d的过程如下:
S11、视频监控客户端A发送对编码器通道a、编码器通道b、编码器通道d的观看请求到视频监控服务器,视频监控服务器发送一条控制消息(消息内作用对象包括编码器通道a、编码器通道b、编码器通道d,对应的操作信息为开启监控)到组播组a,请求编码器通道a、编码器通道b、编码器通道d以组播方式发送视频数据流;
S12、已加入到组播组a的所有编码器通道均将收到该控制消息,读取消息内容;编码器通道a、编码器通道b、编码器通道d将会按照控制消息内容发送视频数据流到组播组b,并以单播方式回应成功响应给视频监控服务器,其他编码器通道不做任何操作;
S13、待接收到编码器通道的全部响应后,视频监控服务器发送成功响应消息给视频监控客户端A,并在视频数据转发表增加相应表项,更新后的视频数据转发表如表2所示:
发送者 |
接收者 |
编码器通道a |
客户端A |
编码器通道b |
客户端A |
编码器通道d |
客户端A |
表2
S14、视频监控客户端A以IGMP V3方式加入组播组b,即在报告报文(加入报文)中标记为Include Sources(a,b,d),表示只接收来自指定组播源编码器通道a、编码器通道b、编码器通道d的组播数据,而不接收组播组b中其他数据源发送的数据;
S15、至此,视频监控客户端A成功观看到编码器通道a、编码器通道b、编码器通道d的视频数据。
视频监控客户端B请求同时观看编码器通道d、编码器通道f的过程如下:
S21、视频监控客户端B发送对编码器通道d、编码器通道f的观看请求到视频监控服务器,视频监控服务器发送一条控制消息(消息内作用对象包括编码器通道d、编码器通道f,对应的操作信息为开启监控)到组播组a,请求编码器通道d、编码器通道f以组播方式发送视频数据流;
S22、已加入到该组播组a的所有编码器通道均将收到该控制消息,读取消息内容;对于编码器通道d,由于之前已开启了视频数据流向组播组b的发送,故此时对该请求消息不做任何操作,只回应成功响应;编码器通道f将会按照控制消息内容发送视频数据流到组播组b,并回应成功响应,其他编码器不做任何操作;
S23、待接收到编码器通道的全部响应后,视频监控服务器发送成功响应消息给视频监控客户端A,并在视频数据转发表增加相应表项,更新后的视频数据转发表如表3所示:
发送者 |
接收者 |
编码器通道a |
客户端A |
编码器通道b |
客户端A |
编码器通道d |
客户端A |
编码器通道d |
客户端B |
编码器通道f |
客户端B |
表3
S24、视频监控客户端B以IGMP V3方式加入组播组b,即在报告报文中标记为Include Sources(d,f),表示只接收来自指定组播源编码器通道d、编码器通道f的组播数据,而不接收组播组b中其他数据源发送的数据;
S25、至此,视频监控客户端成功观看到编码器通道d、编码器通道f的视频数据。
当视频监控客户端B发送停止观看编码器通道d、编码器通道f的请求给视频监控服务器后,视频监控服务器先删除客户端B对应的表项,更新后的视频数据转发表如表4所示:
发送者 |
接收者 |
编码器通道a |
客户端A |
编码器通道b |
客户端A |
编码器通道d |
客户端A |
表4
视频监控服务器查询上述转发表,发现编码器通道d在该转发表中仍存在表项,对应接收者是客户端A,说明客户端A仍在接收编码器通道d的视频数据;而编码器通道f在转发表中已不存在表项,没有其他客户端正在接收编码器f的视频数据;因此,视频监控服务器发送的停止监控的控制报文中将只包含编码器通道f;由于控制信令采用的是组播方式发送,故下属所有编码器通道都会收到该控制报文,但因该控制报文的内容中只包括对编码器通道f的关闭监控请求,故只有编码器通道f在收到该控制消息后会执行停止发送数据流的操作,其他编码器通道将不做任何操作。因此,不影响视频监控客户端A对编码器通道d的视频数据的观看。
在实际网络环境中,可能出现部分编码器通道连接的网络能支持组播,而部分编码器通道连接的网络只支持单播。这种情况下,对于支持组播的编码器通道,仍可由视频监控服务器通过发送组播控制信令来进行信令的传递;而对于只支持单播的编码器通道,视频监控服务器向该类编码器通道发送单播控制信令,但信令内容中也同样包含对其他编码器通道的控制内容,使单播接收的编码器通道同样能知道其他编码器通道的状态。
在本发明中,可以只要求视频监控客户端接入的网络设备支持IGMP V3协议,不需要中间网络设备全部都支持该协议。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。