一种视频图像中叠加水印的方法及装置与流程

文档序号:12279723阅读:527来源:国知局
一种视频图像中叠加水印的方法及装置与流程

本发明属于视频监控领域,尤其涉及一种视频图像中叠加水印的方法及装置。



背景技术:

随着视频监控技术的发展,视频监控在各行各业得到了广泛的应用,在一些特殊的视频监控领域中,人们对视频图像的安全性越来越重视,通常的做法是在视频图像中叠加操作者名字的水印,这样在视频图像外流时可通过视频图像中操作者名字的水印信息追究责任人,用于防止敏感视频图像的外流。

现有技术在视频图像中叠加水印的方法是在解码端通过软件解码的方式对视频图像进行解码后叠加水印,即解码端在接收到编码端发送的视频码流后,首先对接收到的视频码流进行数据包拆包、拼帧、解码,然后对解码得到的视频图像叠加水印,再将叠加水印后的视频图像送到显示设备进行显示。

现有技术虽然能在视频图像中叠加水印,但现有技术在视频图像中叠加水印必须通过软件解码实现,因此在视频图像通过硬解上墙时,无法在视频图像中叠加水印。另外如果在解码端通过其它软件直接截取视频码流后进行解码,则通过解码得到的视频图像为编码端生成的原始视频图像,并没有叠加水印,因此现有技术无法完全保证视频图像的安全。



技术实现要素:

本发明的目的是提供一种视频图像中叠加水印的方法及装置,以解决现有技术在视频图像通过硬解上墙时,无法在视频图像中叠加水印以及在解码端直接截取编码端发送的视频码流后进行解码,得到的视频图像没有叠加水印的问题。

为了实现上述目的,本发明技术方案如下:

一种视频监控图像中叠加水印的方法,应用于视频监控系统,所述视频监控系统包括媒体转发服务器和解码端,所述视频监控图像中叠加水印的方法,包括:

在媒体转发服务器接收到解码端所请求的视频码流后,从所述视频码流中查找包括叠加水印标识的NAL单元;

对包括叠加水印标识的NAL单元进行解码,对解码得到的视频图像进行水印叠加,然后将完成水印叠加后的视频图像重新编码成新的NAL单元后转发给解码端。

进一步地,所述媒体转发服务器建立有水印信息映射关系表,所述对解码得到的视频图像进行水印叠加,包括:

根据视频码流的源IP地址/端口号以及目的IP地址/端口,查询水印信息映射关系表,获取解码端对应的水印信息;

采用解码端对应的水印信息对解码得到的视频图像进行水印叠加。

进一步地,所述视频监控系统包括视频管理服务器,所述媒体转发服务器建立水印信息映射关系表,包括:

从视频管理服务器发送的INVITE消息中获取解码端接收视频码流的IP地址和端口号,以及解码端用户的水印信息;

从视频服务器发送的ACK消息中获取编码端发送视频码流的IP地址和端口号;

根据获取到的编码端发送视频码流的IP地址和端口号、解码端接收视频码流的IP地址和端口号,以及解码端用户的水印信息,生成包含编码端和解码端的IP地址和端口号以及解码端用户的水印信息的映射关系表。

优选地,所述叠加水印标识的NAL单元封装了需要叠加水印位置的视频图像,所述叠加水印标识设置在NAL单元的头部,所述查找包括叠加水印标识的NAL单元,包括:

检测NAL单元头部中的NRI字段,如果NRI字段的值为叠加水印标识,则判断该NAL单元为头部中包括叠加水印标识的NAL单元。

优选地,所述叠加水印标识的NAL单元封装了需要叠加水印位置的视频图像,所述叠加水印标识设置在NAL单元的头部,所述查找包括叠加水印标识的NAL单元,包括:

检测NAL单元头部中的TYPE字段,如果TYPE字段的值为叠加水印标识,则判断该NAL单元为头部中包括叠加水印标识的NAL单元。

本发明还提出了一种视频监控图像中叠加水印的装置,应用于视频监控系统,所述视频监控系统包括媒体转发服务器和解码端,所述视频监控图像中叠加水印的装置,包括:

查找模块,用于在媒体转发服务器接收到解码端所请求的视频码流后,从所述视频码流中查找包括叠加水印标识的NAL单元;

水印叠加模块,用于对包括叠加水印标识的NAL单元进行解码,对解码得到的视频图像进行水印叠加,然后将完成水印叠加后的视频图像重新编码成新的NAL单元后转发给解码端。

进一步地,所述媒体转发服务器建立有水印信息映射关系表,所述水印叠加模块对解码得到的视频图像进行水印叠加,执行如下操作:

根据视频码流的源IP地址/端口号以及目的IP地址/端口,查询水印信息映射关系表,获取解码端对应的水印信息;

采用解码端对应的水印信息对解码得到的视频图像进行水印叠加。

进一步地,所述视频监控系统包括视频管理服务器,所述媒体转发服务器建立水印信息映射关系表,包括:

从视频管理服务器发送的INVITE消息中获取解码端接收视频码流的IP地址和端口号,以及解码端用户的水印信息;

从视频服务器发送的ACK消息中获取编码端发送视频码流的IP地址和端口号;

根据获取到的编码端发送视频码流的IP地址和端口号、解码端接收视频码流的IP地址和端口号,以及解码端用户的水印信息,生成包含编码端和解码端的IP地址和端口号以及解码端用户的水印信息的映射关系表。

优选地,所述叠加水印标识的NAL单元封装了需要叠加水印位置的视频图像,所述叠加水印标识设置在NAL单元的头部,所述查找模块查找包括叠加水印标识的NAL单元,执行如下操作:

检测NAL单元头部中的NRI字段,如果NRI字段的值为叠加水印标识,则判断该NAL单元为头部中包括叠加水印标识的NAL单元。

优选地,所述叠加水印标识的NAL单元封装了需要叠加水印位置的视频图像,所述叠加水印标识设置在NAL单元的头部,所述查找模块查找包括叠加水印标识的NAL单元,执行如下操作:

检测NAL单元头部中的TYPE字段,如果TYPE字段的值为叠加水印标识,则判断该NAL单元为头部中包括叠加水印标识的NAL单元。

本发明提出了一种视频图像中叠加水印的方法及装置,通过IPC在进行视频图像编码时,将需要叠加水印位置的视频图像单独封装成一个NAL单元,媒体转发服务器对该NAL单元进行解码后叠加上解码端用户的水印信息,然后再将叠加水印后的视频图像重新编码后发送给解码端,从而使解码端在接收到视频码流后直接进行解码,得到的视频图像中叠加了包含视频客户端用户名的水印信息。解决了现有技术中视频图像通过硬解上墙时,无法在视频图像中叠加水印以及在解码端直接截取视频码流后进行解码,得到的视频图像没有叠加水印的问题。在编码端编码时,对于需要叠加水印位置的视频图像进行单独封装,并设置叠加水印标识,并在媒体转发服务器转发视频码流的时候进行水印叠加,在视频图像外流时,能有效进行追查堵漏,并且由于设置了叠加水印标识,能够防止非法截取视频码流的正确解码。

附图说明

图1为本实施例视频监控系统的结构示意图;

图2为本发明视频图像中叠加水印的方法的流程图;

图3为本实施例NAL单元头部格式的示意图;

图4为本实施例视频连接建立过程中的协议流程图。

具体实施方式

下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。

本实施例视频监控系统的结构示意图,如图1所示,包括编码端、视频管理服务器VM、媒体转发服务器MS、解码端。本实施例编码端设备可以是网络摄像机IPC、或模拟摄像机和编码器;解码端设备包括解码器DC和视频客户端PC。视频监控客户端需要获取某个摄像机IPC的视频图像时,首先发送请求给视频管理服务器,视频管理服务器和相应的摄像机IPC、媒体转发服务器、解码器进行建立视频连接的协议协商,协议协商完成后,摄像机IPC将视频图像进行编码后的视频码流发送给媒体转发服务器,媒体转发服务器将视频码流转发给该视频客户端对应的解码器,解码器对接收到的视频码流进行解码后得到所需的视频图像,在视频客户端上显示。

本技术方案媒体转发服务器在转发视频码流时,先进行解码,对视图图像中需要叠加水印的区域进行水印叠加,然后再重新编码后发送。本技术方案采用对视频图像中需要叠加水印的区域对应的视频码流进行标记后发送,从而媒体转发服务器能够识别对应的视频码流,对其进行解码后进行水印叠加。对视频图像中需要叠加水印的区域对应的视频码流进行标记,标记的方法可以在NAL头部中进行标记,也可以在NAL中载荷数据的起始位置进行标记。

以下以在NAL头部中进行标记为例来进行详细说明。

本实施例一种视频图像中叠加水印的方法,如图2所示,包括:

步骤S1、接收解码端所请求的视频码流,读取视频码流NAL单元头部。

本实施例视频图像中叠加水印的方法不受具体视频编码方式的限制,可以适用于H.263、H.264、H.265、MPEG2、MPEG4等多种视频编码方式,为了便于描述,本实施例以H.264编码为例进行说明。

在H.264中,句法元素共被组织成序列(帧组)、图像(帧)、片(slice)、宏块(Block)、子宏块五个层次。并且H.264的功能分为两层,分别为视频编码层(VCL)和网络提取层(NAL),其中,VCL负责有效表示视频数据的内容,而NAL则负责将视频数据格式化并提供头信息,以保证视频数据适合各种信道和存储介质上的传输,即VCL数据为被压缩编码后的视频数据序列,VCL数据要封装到NAL单元中之后,才可以用来传输或存储,VCL数据以片为单位封装在NAL中。

每个NAL单元由一个字节的NAL头(NALHeader)和若干个字节的载荷数据(RBSP)组成,其中NAL头的格式如图3所示,F(forbidden_zero_bit)为禁止位,当网络识别此单元存在比特错误时,可将其设为1,以便接收方丢掉该单元。NRI(nal_ref_idc)为重要等级标识,用来指示该NAL单元的重要性等级,值越大,表示当前NAL单元越重要。TYPE为类型标识,用于指出该NAL单元中载荷数据的类型。

本实施例编码端将设定的叠加水印位置的视频图像单独封装在一个NAL单元中,即将叠加水印位置的视频图像所在的多个宏块组成的片单独封装在一个NAL单元中,并在该NAL单元头部设置叠加水印标识,以便在后续步骤中识别该NAL单元,进行水印叠加。

具体地,可以利用NAL单元头部中的NRI字段或TYPE字段来设置叠加水印标识。例如将NAL单元头部中的NRI字段设置11,表示该NAL为单独封装叠加水印位置的视频图像的NAL;或将TYPE字段设置为11000,表示该NAL为单独封装叠加水印位置的视频图像的NAL。

本实施例编码端IPC在录制视频图像时,可以默认直接对叠加水印位置的视频图像进行单独封装,也可以根据建立视频连接过程中所携带的消息来决定是否对叠加水印位置的视频图像进行单独封装。

在实际的应用中,视频客户端请求IPC的视频码流有两种情况,一种情况是实况,另一种情况是回放。无论哪种情况,都需要建立视频连接的过程,而在建立视频连接后,媒体转发服务器都会获取解码端所请求的编码端的视频码流,随后即可读取视频码流NAL单元头部。

容易理解的是,如果叠加水印标识设置在载荷数据的起始位置,则本步骤需要读取的是视频码流NAL单元中载荷数据的起始位置,并在步骤S2中查找NAL单元中载荷数据的起始位置包括叠加水印标识的NAL单元,也能达到同样的技术效果,以下不再赘述。

步骤S2、查找头部中包括叠加水印标识的NAL单元。

由于叠加水印位置的视频图像单独封装在一个NAL单元中,且该NAL单元的头部包括叠加水印标识,因此可以通过读取视频码流NAL单元头部,来判断NAL单元头部中是否包含叠加水印标识。

即检查NAL单元头部的NRI字段,或TYPE字段,如果发现叠加水印标识,则判断该NAL单元是单独封装叠加水印位置的视频图像的NAL单元,需要对其进行解码,执行叠加水印的操作。

而对于头部中不包括叠加水印标识的NAL单元,则按照正常的流程直接转发。

步骤S3、对头部中包括叠加水印标识的NAL单元进行解码,对解码得到的视频图像进行水印叠加,然后将完成水印叠加后的视频图像重新编码成新的NAL单元后转发给解码端。

本实施例媒体转发服务器MS转发的每一帧视频图像,都对头部中包括叠加水印标识的NAL单元进行解码,对解码得到的视频图像进行水印叠加,然后将完成水印叠加后的视频图像重新编码成新的NAL单元,并转发给解码端。

解码端在接收到视频码流后直接进行解码,得到的视频图像中叠加了包含视频客户端用户名的水印信息。

以下以实况应用为例,对本发明的方法进行进一步详细的阐述,如图4所示,具体的协议流程为:

视频客户端PC需要获取IPC的视频图像时,发送携带IPC编号的视频请求消息给视频管理服务器VM。

视频管理服务器VM根据预先配置好的视频客户端PC与解码器DC的对应关系表,查找出与该视频客户端PC对应的解码器DC,然后发送Invite消息给该解码器DC,请求建立视频连接。

解码器DC回应200OK消息给视频管理服务器VM,该200OK消息的SDP字段中携带有解码器DC接收视频码流的IP地址及端口号。

视频管理服务器VM向媒体转发服务器MS发送INVITE请求消息,并在SDP字段中携带水印信息及解码器DC接收视频码流的IP地址及端口号。其中,本实施例水印信息为视频客户端PC登录视频管理服务器VM时的用户名,也可以是统一的任意设定的水印信息,例如使用单位的LOGO。SDP字段中的具体信息如下:

v=0

o=H3C 0 0 IN IP4 192.168.254.46

i=admin------水印信息,即操作者的名字

c=IN IP4 192.168.254.46------DC接收视频码流的IP地址

m=video 16244 udp 105------DC接收视频码流的端口号

a=fmtp:105 H264-TS/90000 resolution=D1 DecoderTag=h3c-v3

a=recvonly

m=audio 16244 udp 0

a=fmtp:0 G711U-TS/8000

a=recvonly

媒体转发服务器MS向视频管理服务器VM回应200OK消息,并在SDP字段中携带媒体转发服务器MS接收和发送视频码流的地址及端口号。

视频管理服务器VM向IPC发送INVITE请求消息,在SDP字段中携带水印标志位。IPC检测到该水印标志位后,会启用水印,将水印位置的视频图像单独封装在一个NAL单元中。其中,SDP字段的具体信息为:

v=0

o=H3C 0 0 IN IP4 192.168.254.46

f=1------1表示启用水印,水印位置的图像需单独编码

c=IN IP4 192.168.254.46

m=video 16244 udp 105

a=fmtp:105 H264-TS/90000 resolution=D1 DecoderTag=h3c-v3

a=recvonly

m=audio 16244 udp 0

a=fmtp:0 G711U-TS/8000

a=recvonly

IPC发送200OK响应消息给视频管理服务器VM,在SDP字段中携带IPC发送视频码流的IP地址及端口号。

视频管理服务器VM分别向解码器DC、媒体转发服务器MS、IPC回应ACK消息,并在回应给媒体转发服务器MS的ACK消息的SDP字段中携带IPC发送视频码流的IP地址及端口号。

媒体转发服务器MS根据视频管理服务器VM发送的INVITE消息的SDP字段中携带的水印信息及解码器DC接收视频码流的IP地址及端口号、视频管理服务器VM发送的ACK消息的SDP字段中携带的IPC发送视频码流的IP地址及端口号,生成IPC发送视频码流的IP地址和端口号、解码器DC接收视频码流的IP地址和端口号以及水印信息之间的水印信息映射关系表,该映射关系表如下表所示:

表1

其中源地址为IPC的IP地址,源端口号为IPC发送视频码流的端口号,目的地址为DC的IP地址,目的端口号为DC接收视频码流的端口号,水印信息为视频客户端登录视频管理服务器时的用户名也可以是其他标志。在使用统一的水印信息时,还可以不必设置水印信息映射关系表,对叠加水印标识的NAL单元进行解码,对解码得到的视频图像进行统一水印叠加。采用用户名作为水印信息,有利于追查泄露的视频图像从哪个用户泄露出去(因为视频图像上有该用户的水印)。

需要说明的是,媒体转发服务器可以根据视频管理服务器的INVITE请求消息SDP字段中携带的水印信息,来获知具体需要叠加的水印信息,建立表1的映射表;还可以直接向视频管理服务器查询建立视频连接的用户名来建立表1的映射表。同时,该水印信息映射关系表也不一定由媒体转发服务器来建立,也可以单独另设装置来建立该映射表,只需向媒体转发服务器和视频管理服务器获取相应的信息即可。通过上述协议流程,本实施例IPC和媒体转发服务器MS及解码器之间的视频连接建立完成,媒体转发服务器MS生成了IPC发送视频码流的IP地址和端口号、解码器DC接收视频码流的IP地址和端口号以及水印信息之间的映射关系表。

本实施例IPC在视频连接建立完成后,根据检测到的水印标志位,启用水印,将设定的叠加水印位置的视频图像所在的多个宏块组成的片单独封装在一个NAL单元中,并在该NAL单元头部中设置叠加水印标识。然后将该NAL单元发送给媒体转发服务器MS。本实施例叠加水印位置由视频管理服务器VM对IPC进行配置时设定,在设置完成后可以根据需要由视频管理服务器VM进行更改。

需要说明的是,如果编码方式不是H.264,而是其它编码方式时,本实施例可以通过类似的方法,将视频码流头部中特定字段的值设置为叠加水印标识,不同之处在于对视频码流头部中不同的具体字段进行设置。例如,当编码方式为H.265时,H.265的NAL单元头部由两个字节构成,其中第一个字节的第二位到第7位为TYPE字段,本实施例可以将TYPE字段设置为叠加水印标识,例如将TYPE字段设置为叠加水印标识110000。通过上述方法,本实施例可以实现对采用不同编码方式的视频码流叠加水印。

本实施例媒体转发服务器MS在接收到IPC发送的视频码流后,检测NAL单元头部中的NRI或TYPE字段,如果NRI字段或TYPE字段的值为叠加水印标识,则从视频码流的IP包头中解析出源IP地址/端口号以及目的IP地址/端口号,并用解析出的IP地址/端口号以及目的IP地址/端口号与生成的IPC发送视频码流的IP地址和端口号、解码器DC接收视频码流的IP地址和端口号以及水印信息之间的映射关系表进行匹配,用匹配到的水印信息对该NAL单元中解码得到的视频图像进行水印叠加,然后将完成水印叠加后的视频图像重新编码成新的NAL单元后发送给相应的解码器DC。

通过上述方法,本实施例媒体转发服务器MS对IPC发送的视频码流进行解码后叠加上视频客户端用户名的水印信息,再进行重新编码后转发给解码器DC,解码器DC在接收到视频码流后直接进行解码,得到的视频图像中叠加了包含视频客户端用户名的水印信息。解决了现有技术中视频图像通过硬解上墙时,无法在视频图像中叠加水印以及在解码端直接截取视频码流后进行解码,得到的视频图像为编码端生成的原始视频图像,没有叠加水印的问题,能有效防止视频图像的外流。

需要说明的是,当多个视频客户端点播同一个IPC的视频图像时,媒体转发服务器MS只需要对需要叠加水印的NAL单元进行一次解码,然后根据每个不同的视频客户端用户叠加不同的水印后,再分别进行重新编码后转发给不同的解码器DC,从而实现对每个不同的视频客户端用户叠加不同的水印,每个视频客户端用户获取到的视频图像中只叠加本用户水印的目的。

以上实施例以实况为例进行了说明,当实用为回放时,由于编码端默认采用本发明的方式在NAL头部中设置了叠加水印标识,则媒体转发服务器将读取视频码流NAL单元头部,查找头部中包括叠加水印标识的NAL单元,对头部中包括叠加水印标识的NAL单元进行解码,对解码得到的视频图像进行水印叠加,然后将完成水印叠加后的视频图像重新编码成新的NAL单元后转发给解码端。具体实现过程这里不再赘述。

与上述方法对应地,本实施例一种视频监控图像中叠加水印的装置,应用于视频监控系统,所述视频监控系统包括媒体转发服务器和解码端,该视频监控图像中叠加水印的装置,包括:

查找模块,用于在媒体转发服务器接收到解码端所请求的视频码流后,从所述视频码流中查找包括叠加水印标识的NAL单元;

水印叠加模块,用于对包括叠加水印标识的NAL单元进行解码,对解码得到的视频图像进行水印叠加,然后将完成水印叠加后的视频图像重新编码成新的NAL单元后转发给解码端。

本实施例视频监控图像中叠加水印的装置可以是单独的硬件设备,或是媒体转发服务器中的一部分,这里不再赘述。

本实施例媒体转发服务器建立有水印信息映射关系表,水印叠加模块对解码得到的视频图像进行水印叠加,执行如下操作:

根据视频码流的源IP地址/端口号以及目的IP地址/端口,查询水印信息映射关系表,获取解码端对应的水印信息;

采用解码端对应的水印信息对解码得到的视频图像进行水印叠加。

与上述方法对应地,本实施例媒体转发服务器建立水印信息映射关系表,包括:

从视频管理服务器发送的INVITE消息中获取解码端接收视频码流的IP地址和端口号,以及解码端用户的水印信息;

从视频服务器发送的ACK消息中获取编码端发送视频码流的IP地址和端口号;

根据获取到的编码端发送视频码流的IP地址和端口号、解码端接收视频码流的IP地址和端口号,以及解码端用户的水印信息,生成包含编码端和解码端的IP地址和端口号以及解码端用户的水印信息的映射关系表。

需要说明的是,本实施例水印信息映射关系表在媒体转发服务器中建立,也可以单独另设装置来建立该映射表,例如在本装置的查找模块中建立,查找模块只需向媒体转发服务器和视频管理服务器获取相应的信息即可建立该映射表。

本实施例中,叠加水印标识的NAL单元封装了需要叠加水印位置的视频图像,叠加水印标识可以设置在NAL单元的头部,也可以设置在载荷数据的起始位置,优选设置在NAL单元的头部。

当设置在NAL单元的头部时,查找模块分别对应如下两种工作方式:

方式一,所述查找模块查找包括叠加水印标识的NAL单元,执行如下操作:

检测NAL单元头部中的NRI字段,如果NRI字段的值为叠加水印标识,则判断该NAL单元为头部中包括叠加水印标识的NAL单元。

方式二,所述查找模块查找包括叠加水印标识的NAL单元,执行如下操作:

检测NAL单元头部中的TYPE字段,如果TYPE字段的值为叠加水印标识,则判断该NAL单元为头部中包括叠加水印标识的NAL单元。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1