一种视频回放方法及相关装置转让专利

申请号 : CN201710848463.7

文献号 : CN107734278B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 施旭康

申请人 : 浙江大华技术股份有限公司

摘要 :

本发明实施例公开了一种视频回放方法及相关装置,包括监控存储设备根据客户端的视频回放请求,获取待回放视频的视频数据,将第一个GOP数据确定为视频回放数据并在确定第n个GOP数据的动态监测结果为第一指示时,将第n个GOP数据对应的OSD数据确定为视频回放数据,否则将第n个GOP数据确定为视频回放数据,将视频回放数据发送给客户端。可见,监控存储设备可根据GOP数据的动态检测结果,确定对应的视频回放数据,在第n个GOP数据与前一个GOP数据相比图像画面未发生变化时,发送数据量较小的OSD数据,因而可有效减小视频回放过程中传输的数据量,减轻客户端的解码压力,避免客户端的系统资源被大量占用的问题。

权利要求 :

1.一种视频回放方法,其特征在于,所述方法包括:

监控存储设备接收并存储监控前端设备发送的视频数据流,所述视频数据流中包括所述监控前端设备根据所采集的视频图像得到的多个GOP数据、各GOP数据对应的OSD数据和各GOP数据对应的动态检测结果;

所述监控存储设备根据客户端发送的视频回放请求,获取待回放视频的视频数据,所述视频数据中按时间先后依次包括第一个画面组GOP数据、第二个GOP数据……第M个GOP数据;其中,M为大于1的整数;

所述监控存储设备将所述第一个GOP数据确定为视频回放数据并获取第n个GOP数据的动态检测结果,若确定所述第n个GOP数据的动态监测结果为第一指示,则将所述第n个GOP数据对应的屏幕显示OSD数据确定为视频回放数据;若确定所述第n个GOP数据的动态监测结果为第二指示,则将所述第n个GOP数据确定为视频回放数据;n大于1小于等于M;所述第一指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面未发生变化,所述第二指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面发生了变化;

所述监控存储设备将所述视频回放数据发送给所述客户端。

2.一种视频回放方法,其特征在于,所述方法包括:

客户端向监控存储设备发送视频回放请求,并接收所述监控存储设备根据所述视频回放请求发送的视频回放数据;所述视频回放数据包括多个数据包,所述多个数据包中的任一数据包为GOP数据或OSD数据;

所述客户端若确定当前接收到的数据包为GOP数据,则对所述GOP数据进行解码显示;

所述客户端若确定当前接收到的数据包为OSD数据,则对所述OSD数据以及所述OSD数据之前接收到的最近的GOP数据进行解码显示;

其中,所述对所述OSD数据以及所述OSD数据之前接收到的最近的GOP数据进行解码显示,包括:所述客户端获取所述最近的GOP数据解码后的数据,将所述OSD数据与所述最近的GOP数据的解码后的数据进行叠加,根据叠加后的数据进行显示。

3.一种视频发送方法,其特征在于,所述方法包括:

监控前端设备采集视频图像,得到原始数据流;

所述监控前端设备对所述原始数据流中的每帧图像画面进行编码,得到GOP数据流;所述GOP数据流中的任一GOP数据包括多帧图像画面;

所述监控前端设备根据所述任一GOP数据对应的各帧图像画面的动态检测结果,得到所述任一GOP数据的动态检测结果,所述任一GOP数据的动态检测结果用于标识所述GOP数据中包括的图像画面相比前一个GOP数据包括的图像画面是否发生了变化;

其中,所述监控前端设备根据所述任一GOP数据对应的各帧视频图像的动态检测结果,得到所述GOP数据的动态检测结果,包括:所述监控前端设备若确定所述GOP数据对应的各帧图像画面中存在至少一帧图像画面相比前一帧图像画面发生了变化,则确定所述GOP数据包括的图像画面相比于前一个GOP数据中包括的图像画面发生了变化;否则,则确定所述GOP数据中包括的图像画面相比于前一个GOP数据包括的图像画面未发生变化;

所述监控前端设备将所述任一GOP数据、所述任一GOP数据对应的OSD数据和所述任一GOP数据的动态检测结果发送给监控存储设备。

4.一种监控存储设备,其特征在于,所述监控存储设备包括:

收发模块,用于接收监控前端设备发送的视频数据流;

存储模块,用于存储接收到的所述监控前端设备发送的视频数据流,所述视频数据流中包括所述监控前端设备根据所采集的视频图像得到的多个GOP数据、各GOP数据对应的OSD数据和各GOP数据对应的动态检测结果;

获取模块,用于根据客户端发送的视频回放请求,获取待回放视频的视频数据,所述视频数据中按时间先后依次包括第一个画面组GOP数据、第二个GOP数据……第M个GOP数据;

其中,M为大于1的整数;

确定模块,用于将所述第一个GOP数据确定为视频回放数据并获取第n个GOP数据的动态检测结果,若确定所述第n个GOP数据的动态监测结果为第一指示,则将所述第n个GOP数据对应的屏幕显示OSD数据确定为视频回放数据;若确定所述第n个GOP数据的动态监测结果为第二指示,则将所述第n个GOP数据确定为视频回放数据;n大于1小于等于M;所述第一指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面未发生变化,所述第二指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面发生了变化;

所述收发模块,还用于将所述视频回放数据发送给所述客户端。

5.一种客户端,其特征在于,所述客户端包括:

收发模块,用于向监控存储设备发送视频回放请求,并接收所述监控存储设备根据所述视频回放请求发送的视频回放数据;所述视频回放数据包括多个数据包,所述多个数据包中的任一数据包为GOP数据或OSD数据;

显示模块,用于若确定当前接收到的数据为GOP数据,则对所述GOP数据进行解码显示;

以及若确定当前接收到的数据为OSD数据,则对所述OSD数据以及所述OSD数据之前接收到的最近的GOP数据进行解码显示;

其中,所述显示模块具体用于:获取所述最近的GOP数据解码后的数据,将所述OSD数据与所述最近的GOP数据的解码后的数据进行叠加,根据叠加后的数据进行显示。

6.一种监控前端设备,其特征在于,所述监控前端设备包括:

采集模块,用于采集视频图像,得到原始数据流;

编码模块,用于对所述原始数据流中的每帧图像画面进行编码,得到GOP数据流;所述GOP数据流中的任一GOP数据包括多帧图像画面;

检测模块,用于根据所述任一GOP数据对应的各帧图像画面的动态检测结果,得到所述任一GOP数据的动态检测结果,所述任一GOP数据的动态检测结果用于标识所述GOP数据中包括的图像画面相比前一个GOP数据包括的图像画面是否发生了变化;

其中,所述检测模块具体用于:若确定所述GOP数据对应的各帧图像画面中存在至少一帧图像画面相比前一帧图像画面发生了变化,则确定所述GOP数据包括的图像画面相比于前一个GOP数据中包括的图像画面发生了变化;否则,则确定所述GOP数据中包括的图像画面相比于前一个GOP数据包括的图像画面未发生变化;

发送模块,用于将所述任一GOP数据、所述任一GOP数据对应的OSD数据和所述任一GOP数据的动态检测结果发送给监控存储设备。

7.一种监控存储设备,其特征在于,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求1所述的方法。

8.一种客户端,其特征在于,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求2所述的方法。

9.一种监控前端设备,其特征在于,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求3所述的方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如权利要求1至3中任一项所述的方法。

说明书 :

一种视频回放方法及相关装置

技术领域

[0001] 本发明涉及视频监控技术领域,尤其涉及一种视频回放方法及相关装置。

背景技术

[0002] 在视频监控领域,监控视频的采集、存储和播放通常是由不同的设备完成的。监控前端设备负责采集监控视频,并将编码后得到的视频数据发送给监控存储设备,由监控存储设备对视频数据进行存储并响应客户端的回放请求。当客户端请求回放某一时间段内的监控视频时,监控存储设备会将该监控视频的视频数据发送给客户端,由客户端对视频数据进行解码和播放。然而,在现有技术中,当客户端请求回放某一时间段内的监控视频时,监控存储设备会将该监控视频的所有视频数据都发送给客户端。在监控视频的时长较长的情况下,监控视频的视频数据的数据量也十分巨大,这使得发送大量的视频数据一方面很消耗网络流量,尤其是在客户端与监控存储设备通过无线网络连接的场景下,另一方面,由于客户端对视频数据进行解码后才能播放,对大量视频数据进行解码也会很占用客户端的系统资源。
[0003] 因此,目前亟需要一种视频回放的方法,用以解决现有技术中长时间回放消耗网络流量,大量占用系统资源的技术问题。

发明内容

[0004] 本发明提供一种视频回放方法及相关装置,用以解决现有技术中长时间回放消耗网络流量,大量占用系统资源的技术问题。
[0005] 本发明实施例提供的一种视频回放方法,所述方法包括:
[0006] 监控存储设备根据客户端发送的视频回放请求,获取待回放视频的视频数据;所述视频数据中按时间先后依次包括第一个画面组GOP数据、第二个GOP数据……第M个GOP数据;其中,M为大于1的整数;
[0007] 所述监控存储设备将所述第一个GOP数据确定为视频回放数据并获取第n个GOP数据的动态检测结果,若确定所述第n个GOP数据的动态监测结果为第一指示,则将所述第n个GOP数据对应的屏幕显示OSD数据确定为视频回放数据;若确定所述第n个GOP数据的动态监测结果为第二指示,则将所述第n个GOP数据确定为视频回放数据;n大于1小于等于M;所述第一指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面未发生变化,所述第二指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面发生了变化;
[0008] 所述监控存储设备将所述视频回放数据发送给所述客户端。
[0009] 可选地,所述监控存储设备获取待回放视频的视频数据之前,还包括:
[0010] 所述监控存储设备接收监控前端设备发送的视频数据流,并存储在所述监控存储设备中;所述视频数据流中包括所述监控前端设备根据所采集的视频图像得到的多个GOP数据、各GOP数据对应的OSD数据和各GOP数据对应的动态检测结果。
[0011] 基于同样的发明构思,本发明实施例提供的另一种视频回放的方法,所述方法包括:
[0012] 客户端向监控存储设备发送视频回放请求,并接收所述监控存储设备根据所述视频回放请求发送的视频回放数据;所述视频回放数据包括多个数据包,所述多个数据包中的任一数据包为GOP数据或OSD数据;
[0013] 所述客户端若确定当前接收到的数据包为GOP数据,则对所述GOP数据进行解码显示;
[0014] 所述客户端若确定当前接收到的数据包为OSD数据,则对所述OSD数据以及所述OSD数据之前接收到的最近的GOP数据进行解码显示。
[0015] 可选地,所述对所述OSD数据以及在接收所述OSD数据之前接收到的最近的GOP数据进行解码显示,包括:
[0016] 所述客户端获取所述最近的GOP数据解码后的数据;
[0017] 所述客户端将所述OSD数据与所述最近的GOP数据的解码后的数据进行叠加,根据叠加后的数据进行显示。
[0018] 基于同样的发明构思,本发明实施例提供的另一种视频回放方法,所述方法包括:
[0019] 监控前端设备采集视频图像,得到原始数据流;
[0020] 所述监控前端设备对所述原始数据流中的每帧图像画面进行编码,得到GOP数据流;所述GOP数据流中的任一GOP数据包括多帧图像画面;
[0021] 所述监控前端设备根据所述任一GOP数据对应的各帧图像画面的动态检测结果,得到所述任一GOP数据的动态检测结果;所述任一GOP数据的动态检测结果用于标识所述GOP数据中包括的图像画面相比前一个GOP数据包括的图像画面是否发生了变化;
[0022] 所述监控前端设备将所述任一GOP数据、所述任一GOP数据对应的OSD数据和所述任一GOP数据的动态检测结果发送给监控存储设备。
[0023] 可选地,所述监控前端设备根据所述任一GOP数据对应的各帧视频图像的动态检测结果,得到所述GOP数据的动态检测结果,包括:
[0024] 所述监控前端设备若确定所述GOP数据对应的各帧图像画面中存在至少一帧图像画面相比前一帧图像画面发生了变化,则确定所述GOP数据包括的图像画面相比于前一个GOP数据中包括的图像画面发生了变化;否则,则确定所述GOP数据中包括的图像画面相比于前一个GOP数据包括的图像画面未发生变化。
[0025] 基于同样的发明构思,本发明实施例提供的一种监控存储设备,所述监控存储设备包括:
[0026] 获取模块,用于根据客户端发送的视频回放请求,获取待回放视频的视频数据;所述视频数据中按时间先后依次包括第一个画面组GOP数据、第二个GOP数据……第M个GOP数据;其中,M为大于1的整数;
[0027] 确定模块,用于将所述第一个GOP数据确定为视频回放数据并获取第n个GOP数据的动态检测结果,若确定所述第n个GOP数据的动态监测结果为第一指示,则将所述第n个GOP数据对应的屏幕显示OSD数据确定为视频回放数据;若确定所述第n个GOP数据的动态监测结果为第二指示,则将所述第n个GOP数据确定为视频回放数据;n大于1小于等于M;所述第一指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面未发生变化,所述第二指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面发生了变化;
[0028] 收发模块,用于将所述视频回放数据发送给所述客户端。
[0029] 可选的,所述收发模块,还用于接收监控前端设备发送的视频数据流;
[0030] 所述监控存储设备还包括:
[0031] 存储模块,用于存储接收到的监控前端设备发送的视频数据流;所述视频数据流中包括所述监控前端设备根据所采集的视频图像得到的多个GOP数据、各GOP数据对应的OSD数据和各GOP数据对应的动态检测结果。
[0032] 基于同样的发明构思,本发明实施例提供的一种客户端,所述客户端包括:
[0033] 收发模块,用于向监控存储设备发送视频回放请求,并接收所述监控存储设备根据所述视频回放请求发送的视频回放数据;所述视频回放数据包括多个数据包,所述多个数据包中的任一数据包为GOP数据或OSD数据;
[0034] 显示模块,用于若确定当前接收到的数据为GOP数据,则对所述GOP数据进行解码显示;以及若确定当前接收到的数据为OSD数据,则对所述OSD数据以及所述OSD数据之前接收到的最近的GOP数据进行解码显示。
[0035] 可选地,所述显示模块具体用于:
[0036] 获取所述最近的GOP数据解码后的数据;
[0037] 将所述OSD数据与所述最近的GOP数据的解码后的数据进行叠加,根据叠加后的数据进行显示。
[0038] 基于同样的发明构思,本发明实施例提供的一种监控前端设备,所述监控前端设备包括:
[0039] 采集模块,用于采集视频图像,得到原始数据流;
[0040] 编码模块,用于对所述原始数据流中的每帧图像画面进行编码,得到GOP数据流;所述GOP数据流中的任一GOP数据包括多帧图像画面;
[0041] 检测模块,用于根据所述任一GOP数据对应的各帧图像画面的动态检测结果,得到所述任一GOP数据的动态检测结果;所述任一GOP数据的动态检测结果用于标识所述GOP数据中包括的图像画面相比前一个GOP数据包括的图像画面是否发生了变化;
[0042] 发送模块,用于将所述任一GOP数据、所述任一GOP数据对应的OSD数据和所述任一GOP数据的动态检测结果发送给监控存储设备。
[0043] 可选地,所述检测模块具体用于:
[0044] 若确定所述GOP数据对应的各帧图像画面中存在至少一帧图像画面相比前一帧图像画面发生了变化,则确定所述GOP数据包括的图像画面相比于前一个GOP数据中包括的图像画面发生了变化;否则,则确定所述GOP数据中包括的图像画面相比于前一个GOP数据包括的图像画面未发生变化。
[0045] 本发明另一实施例提供了一种监控存储设备,其包括存储器和处理器,其中,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中存储的程序指令,按照获得的程序执行上述监控存储设备的任一种方法。
[0046] 本发明另一实施例提供了一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述视频回放方法。
[0047] 本发明另一实施例提供了一种客户端,其包括:存储器和处理器,其中,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中存储的程序指令,按照获得的程序执行上述客户端的任一种方法。
[0048] 本发明另一实施例提供了一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述视频回放方法。
[0049] 本发明另一实施例提供了一种监控前端设备,其包括:存储器和处理器,其中,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中存储的程序指令,按照获得的程序执行上述监控前端设备的任一种方法。
[0050] 本发明另一实施例提供了一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述视频回放的方法。
[0051] 本发明实施例中,监控存储设备根据客户端发送的视频回放请求,获取待回放视频的视频数据,将所述第一个画面组GOP数据确定为待发送视频数据并获取第n个GOP数据的动态检测结果,若确定所述第n个GOP数据的动态监测结果为第一指示,则将所述第n个GOP数据对应的屏幕显示OSD数据确定为待发送视频数据;若确定所述第n个GOP数据的动态监测结果为第二指示,则将所述第n个GOP数据确定为待发送视频数据,进而将所述待发送视频数据发送给所述客户端。可见,监控存储设备可根据第n个GOP数据的动态检测结果,确定与该第n个GOP数据对应的待发送视频数据,在第n个GOP数据的动态检测结果指示该第n个GOP数据与前一个GOP数据相比,其包括的图像画面未发生变化的情况下,可以发送第n个GOP数据对应的OSD数据,来替代发送数据量较大的GOP数据,因此,可有效减小视频回放过程中传输的数据量,减轻客户端的解码压力,避免客户端的系统资源被大量占用的问题。

附图说明

[0052] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0053] 图1为本发明实施例中的视频回放方法所适用的系统架构图;
[0054] 图2为本发明实施例中的一种视频回放方法所对应的流程示意图;
[0055] 图3为本发明具体实例中的一种视频回放方法在监控存储设备一侧对应的流程示意图;
[0056] 图4为本发明具体实例中的一种视频回放方法在客户端一侧对应的流程示意图;
[0057] 图5为本发明实施例中另一种视频回放方法所对应的流程示意图;
[0058] 图6为本发明实施例中的一种监控存储设备的结构示意图;
[0059] 图7为本发明实施例中的一种客户端的结构示意图;
[0060] 图8为本发明实施例中的一种监控前端设备的结构示意图。

具体实施方式

[0061] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例,仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0062] 下面结合说明书附图对本发明实施例做进一步详细描述。
[0063] 图1为本发明实施例中的视频回放方法所适用的系统架构图,如图1所示,监控系统100包括多个监控前端设备(如图1中所示出的111~11n)、监控存储设备(如图1中所示出的121)和多个客户端(如图中所示出的131~13n)。其中,各个监控前端设备均与监控存储设备连接,各个客户端也均与监控存储设备连接。
[0064] 具体的,所述监控前端设备可以是各种类型的摄像设备,如网络摄像头IPC、智能摄像机、电动镜头等等。本发明实施例中,监控前端设备用于采集其安装位置附近预设范围内的监控视频图像,并将采集到的视频图像实时发送给监控存储设备存储。因而,上述监控系统中的各个监控前端设备可安装在不同的位置上,或者也可以不同的安装方向、角度或覆盖范围安装在同一位置上,此处不做具体限制。
[0065] 同理,所述监控存储设备可以为各种类型的监控存储设备,比如硬盘录像机、网络录像机等等,该监控存储设备用于一方面接收与之相连的各监控前端设备采集的视频图像,另一方面接收客户端的回放请求,向客户端发送其存储的视频数据。
[0066] 本发明实施例中,所述客户端可以为多种类型的客户端,如台式计算机、笔记本电脑、智能终端等等。优选的,所述客户端具有显示屏幕,通过该显示屏幕,客户端可对监控前端设备覆盖的预设范围内的视频画面进行实时地监控,或者对监控前端设备采集的历史监控视频进行回放。
[0067] 需要说明的是,本发明实施例中监控前端设备与监控存储设备之间既可以采用有线线缆、光纤、同轴电缆等有线方式进行连接,也可以通过无线网络、微波等无线方式进行连接,本发明对此不做具体限制。同理,本发明实施例中监控存储设备与客户端之间既可以采用有线线缆进行连接,也可以通过无线网络进行连接,本发明对此不做具体限制。
[0068] 此外,所述监控系统中监控前端设备的数量和类型,以及客户端的数量和类型均可由本领域技术人员根据实际需要进行设置,此处不作具体限制。
[0069] 图2为本发明实施例中的一种视频回放方法所对应的流程示意图,如图2所示,所述方法包括如下步骤S201至步骤S207:
[0070] 步骤S201:客户端发送视频回放请求;
[0071] 步骤S202:监控存储设备根据所述视频回放请求,获取待回放视频的视频数据;
[0072] 步骤S203:所述监控存储设备将所述第一个GOP数据确定为视频回放数据并获取第n个GOP数据的动态检测结果,若确定所述第n个GOP数据的动态监测结果为第一指示,则将所述第n个GOP数据对应的屏幕显示OSD数据确定为视频回放数据;若确定所述第n个GOP数据的动态监测结果为第二指示,则将所述第n个GOP数据确定为视频回放数据;
[0073] 步骤S204:所述监控存储设备将所述视频回放数据发送给所述客户端;
[0074] 步骤S205:所述客户端接收所述监控存储设备根据所述视频回放请求发送的视频回放数据;
[0075] 步骤S206:所述客户端若确定当前接收到的数据为GOP数据,则对所述GOP数据进行解码显示;
[0076] 步骤S207:所述客户端若确定当前接收到的数据为OSD数据,则对所述OSD数据以及所述OSD数据之前接收到的最近的GOP数据进行解码显示。
[0077] 具体来说,在步骤S201中,客户端发送的视频回放请求中可包括待回放视频的属性信息,如待回放视频的起止时间、清晰度、帧率等等。进一步地,若监控系统中设置有多个监控前端设备,则待回放视频的属性信息中还可包括采集该待回放视频的监控前端设备的标识等信息。
[0078] 在步骤S202中,监控存储设备中存储有监控前端设备采集的所有监控视频的视频数据,因而,当监控存储设备在接收到客户端的视频回放请求后,可根据视频回放请求中的待回放视频的属性信息(如监控前端设备的标识、待回放视频的时间信息),从自身的存储设备中获取待回放视频的视频回放数据。具体的,该待回放视频的视频回放数据中按时间先后顺序依次包括第一个画面组GOP数据、第二个GOP数据……第M个GOP数据等共M个GOP数据,其中,M为大于1的整数。
[0079] 本发明实施例中,监控存储设备中存储的监控视频的视频数据均为画面组GOP,这些GOP数据是监控前端设备在采集监控视频、对监控视频进行编码后,以视频数据流的方式实时地发送给监控存储设备。其中,任一GOP数据中包括多帧图像画面的数据,实际上,在具体的应用场景中,一个GOP数据为一组连续的IPB帧,对应一组连续的图像画面。需要说明的是,一般情况下各个GOP数据中包括的帧数量和帧率可以相同,而且该帧数量可由本领域技术人员根据实际需要对监控前端设备进行具体的设置,一般情况下,帧数量可为[25,150]区间中的某一数值。例如,一个GOP数据的时间长度可为1s,包括25帧的图像画面。
[0080] 需要说明的是,GOP数据中包括监控前端设备中的图像传感器采集的图像画面等信息,还包括监控前端设备的控制系统生成的一些需要在图像画面中一同显示的信息,如时间、通道信息等。
[0081] 因此,若客户端在视频回放请求中请求对监控前端设备对应的预设范围进行监控,则监控存储设备可将其接收到的监控前端设备实时采集的视频画面的视频数据确定为待回放视频的视频回放数据,以使客户端在接收到该待回放视频的视频回放数据后可播放监控前端设备实时采集的视频画面;若客户端在视频回放请求中请求对监控前端设备历史上采集的某一时间段的监控视频进行回放,则监控存储设备可将其存储的该时间段的监控视频的视频数据,确定为待回放视频的视频回放数据,以使客户端在接收到该待回放视频的视频回放数据后,对历史的监控视频进行回放。
[0082] 需要说明的是,本发明实施例中,监控前端设备向监控存储发送的视频回放数据流中,不仅包括对采集到的监控视频进行编码后得到的多个GOP数据,还包括各个GOP数据对应的OSD数据、各个GOP数据对应的动态检测结果。具体的,动态检测结果用于标识各GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面发生了变化。OSD数据是由监控前端设备在采集视频图像时生成并在发送GOP数据的同时,发送给监控存储设备的。OSD数据与GOP数据具有相同的时间长度,一个OSD数据对应一个GOP数据,并且在时间上同步。此外,OSD数据中包括一些需要在图像画面中显示的系统,这些系统与GOP数据中的系统相同,均为如时间、通道等信息。比如说,一个GOP数据的时间长度为1s,包括25帧图像画面,相应地,该GOP数据对应的OSD数据的时间长度也为1s,而且GOP数据的所有25帧图像画面均具有相同的时间和通道信息。
[0083] 在步骤S203中,由于待回放视频的视频回放数据中包括具有先后次序的多个GOP数据,因此,监控存储设备在获取到各GOP数据后,可将其中的第一个GOP数据直接确定为视频回放数据。
[0084] 针对各GOP数据中除该第一个GOP数据以外的各GOP数据,则监控存储设备按照GOP数据的时间先后次序进行逐一处理,具体包括:
[0085] 监控存储设备根据每一GOP数据的动态检测结果,判断是否将该GOP数据确定为视频回放数据。以各GOP数据中的第n个GOP数据为例(其中,n大于1且小于等于M),监控存储设备首先获取第n个GOP数据的动态检测结果。该第n个GOP数据的动态检测结果可为第一指示或第二指示,第一指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面未发生变化,相应地,动态检测结果的第二指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面发生了变化。
[0086] 随后,监控存储设备判断第n个GOP数据的动态检测结果为第一指示还是第二指示,若确定第n个GOP数据的动态检测结果为第一指示,则将第n个GOP数据对应的屏幕显示OSD数据确定为视频回放数据;若确定所述第n个GOP数据的动态监测结果为第二指示,则将所述第n个GOP数据确定为视频回放数据。
[0087] 需要说明的是,本发明实施例中,监控存储设备中存储的动态检测结果可具有多种可能的实现方式。可选的,一种可能的实现方式为,分别为当前GOP数据与前一个GOP数据相比,图像画面未发生变化和发生变化的两种情况下的动态检测结果中设置不同的指示信息,即第一指示和第二指示,该第一指示和第二指示可以为不同的数值、字符或标记,比如说,可将第一指示设置为0,相应地,将第二指示设置为1。可选的,另一种可能的实现方式为,在当前GOP数据与前一个GOP数据相比,图像画面未发生变化的情况下的动态检测结果中设置指示信息,该指示信息可为数值、字符、标记等多种类型的指示信息;而将当前GOP数据与前一个GOP数据相比,图像画面发生了变化的情况下的动态检测结果设置为空,即不设置指示信息。又或者,另一种可能的实现方式为,在当前GOP数据与前一个GOP数据相比,图像画面发生了变化的情况下的动态检测结果中设置指示信息,该指示信息可为数值、字符、标记等多种类型的指示信息;而将当前GOP数据与前一个GOP数据相比,图像画面未发生变化的情况下的动态检测结果设置为空,即不设置指示信息。
[0088] 进而,在步骤S204中,监控存储设备将上述确定出的视频回放数据发送给客户端,以使客户端根据接收到的视频回放数据进行解码并播放。
[0089] 需要说明的是,本发明实施例中,由于监控存储设备对待回放视频的视频回放数据的多个GOP数据是按照GOP数据的时间先后次序进行逐一处理,并确定相应视频回放数据的,因此,监控存储设备可在多个GOP数据均确定对应的视频回放数据后,将各个视频回放数据的按照其对应的GOP数据的先后次序进行排列,然后一起发送给客户端。或者也可以为,监控存储设备每确定出一个GOP数据对应的视频回放数据后,便立即将该视频回放数据发送给客户端,在这种场景下,由于监控存储设备对各个GOP数据是按照其时间先后次序逐一处理的,因此,其对应的视频回放数据也是按照上述次序进行逐一发送的。
[0090] 举例来说,监控存储设备可直接将视频回放数据的第一个GOP数据发送给客户端,随后对其余的各个GOP数据按照先后次序逐一判断动态检测结果。若第二个GOP数据的动态检测结果指示该第二个GOP数据与第一个GOP数据相比,图像画面发生了变化,则将该第二个GOP数据确定为其对应的视频回放数据,并发送给客户端,若第二个GOP数据的动态检测结果指示该第二个GOP数据与第一个GOP数据相比,图像画面没有发生变化,则将该第二个GOP数据对应的OSD数据确定为其对应的视频回放数据,并发送给客户端。以此类推,直至发送完第M个GOP数据对应的视频回放数据。
[0091] 在步骤S205中,客户端可接收监控存储设备根据其视频回放请求发送的视频回放数据。该视频回放数据可以为视频数据流的形式,视频数据流中包括多个具有先后顺序的数据包,多个数据包的排列顺序即为待回放视频的各图像画面的播放顺序,多个数据包中的任一数据包为GOP数据或OSD数据。
[0092] 随后,在步骤S206和步骤S207中,客户端对接收到的视频数据流中的各个数据包进行逐一处理,针对该视频数据流中的任一数据包,根据该数据包的类型,确定该数据包对应的图像画面的播放方式。
[0093] 具体的,客户端可根据当前处理的数据包的头部标识,确定该数据包的类型为GOP数据还是OSD数据。若确定当前接收到的数据为GOP数据,则直接对该GOP数据进行解码,根据解码后得到的数据,显示该GOP数据对应的一组图像画面。
[0094] 若确定当前处理的数据包为OSD数据,则根据该OSD数据以及在接收该OSD数据之前接收到的最近的一个GOP数据进行解码显示,也就是说,客户端可获取在接收该OSD数据之前接收到的最近的一个GOP数据解码后的数据,将该OSD数据与该最近的GOP数据的解码后的数据进行叠加,即将最近的一个GOP数据中的信息替换为该OSD数据中的信息,进而根据叠加后的数据,显示该OSD数据对应的一组图像画面。
[0095] 本发明实施例中的视频回放方法适用于视频监控场景下,在视频监控的场景中,监控前端设备通常安装在固定位置,用于采集预设覆盖范围内的监控视频图像。与人工拍摄视频不同,监控场景的特殊性质决定了监控前端设备采集的视频图像有可能会存在较长的时间段内采集的图像画面都不会发生变化的情况。举例来说,若监控前端设备(如网络摄像头)安装在某一建筑物的出入口处,若该出入口附近的区域内在较长的一段时间段内都没有人经过,那么在该时间段内监控前端设备采集的视频图像也不会发生变化。
[0096] 本发明实施例中,在第n个GOP数据的动态检测结果为第一指示的情况下,监控存储设备可确定该第n个GOP数据与前一个GOP数据相比,图像画面并没有发生变化,而是只有时间、通道等信息发生了变化,因此,采用本发明实施例中的技术方案,监控存储设备可在监控画面不变的情况下,发送数据量比较小的OSD数据,以替代发送数据量较大的第n个GOP数据,如此,可有效减小了需要传输的数据量,节省了网络传输资源,并减轻了客户端的解码压力。在这种情况下,客户端可在前一个GOP数据中的图像画面中叠加上第n个GOP数据对应的OSD数据,即可正常显示该第n个GOP数据中的视频画面。
[0097] 在第n个GOP数据的动态检测结果为第二指示的情况下,监控存储设备可确定该第n个GOP数据与前一个GOP数据相比,图像画面发生了变化,因此,客户端无法根据之前接收到的GOP数据获取当前第n个GOP数据中的图像画面,因此,为了保证待回放视频的正常播放,监控存储设备可将第n个GOP数据发送给客户端。
[0098] 可见,监控存储设备只有在确定第n个GOP数据中的图像画面相比于前一个GOP数据中的图像画面未发送变化的时候,才会发送该第n个GOP数据对应OSD数据,因此,用发送OSD数据以替代GOP数据也不会导致待回放视频出现缺帧、少帧等情况,因而也不会影响待回放视频的正常播放。
[0099] 下面以一个具体实例来具体说明本发明实施例中的视频回放方法。图3为本发明具体实例中的一种视频回放方法在监控存储设备一侧对应的流程示意图。
[0100] 如图3所示,在步骤S301中,监控存储设备首先从其存储设备中取出待回放视频的视频数据,该视频数据包括按序排列的多个GOP数据,每一个GOP数据分别对应待回放视频中一组连续的图像画面。
[0101] 进而,监控存储设备对上述多个GOP数据进行逐一处理。在步骤S302和S303中,监控存储设备判断当前处理的GOP数据是否为第一个GOP数据,若是第一个GOP数据,则监控存储设备直接将该GOP数据发送给客户端。
[0102] 在步骤S304中,若确定当前处理的GOP数据不是第一个GOP数据,则监控存储设备从存储设备中获取该GOP数据的动态检测结果,根据该动态检测结果,判断该GOP数据相比前一个GOP数据图像画面是否发生了变化。
[0103] 在步骤S305和步骤S306中,监控存储设备若确定该GOP数据的动态检测结果为与前一个GOP数据相比图像画面发生了变化,则将该GOP数据发送给客户端,否则,从存储设备中获取该GOP数据对应的OSD数据,并将该GOP数据对应的OSD数据发送给客户端。
[0104] 图4为本发明具体实例中的一种视频回放方法在客户端一侧对应的流程示意图,如图4所示,在步骤S401中,客户端接收监控存储设备发送的待回放视频的视频数据流,并将接收到的视频数据流存储在数据接收缓存中。
[0105] 在步骤S402中,客户端对数据接收缓存中存储的数据包按照顺序进行逐一处理,针对当前处理的数据包,客户端首先根据数据包的头部标识,判断该数据包为GOP数据还是OSD数据。
[0106] 在步骤S403和步骤S404中,若确定该数据包为GOP数据,则直接解码该GOP数据,并根据解码后的数据显示图像画面;若确定该数据包为OSD数据,则将OSD数据与接收到的前一个GOP数据进行叠加,根据叠加后的数据显示图像画面。
[0107] 基于同样的发明构思,图5为本发明实施例中的另一种视频回放的方法所对应的流程示意图,如图5所示,所述方法包括如下步骤S501至步骤S505:
[0108] 步骤S501:监控前端设备采集视频图像,得到原始数据流;
[0109] 步骤S502:所述监控前端设备对所述原始数据流中的每帧图像画面进行编码,得到GOP数据流;
[0110] 步骤S503:所述监控前端设备根据所述任一GOP数据对应的各帧图像画面的动态检测结果,得到所述任一GOP数据的动态检测结果;
[0111] 步骤S504:所述监控前端设备将所述任一GOP数据、所述任一GOP数据对应的OSD数据和所述任一GOP数据的动态检测结果发送给监控存储设备;
[0112] 步骤S505:所述监控存储设备接收监控前端设备发送的视频数据流,并存储。
[0113] 具体来说,在步骤S501中,监控前端设备采集视频图像,得到原始数据流,该原始数据流即为监控前端设备采集到的原始数据,其中包括多帧图像画面。本发明实施例中,监控前端设备可对原始数据流中的每帧图像画面采用预设的动态检测算法进行动态检测,得到每帧图像画面对应的动态检测结果,以确定当前帧的图像画面与前一帧的图像画面相比是否发生变化。
[0114] 本发明实施例中,本领域技术人员可根据实际需要选择合适的动态检测算法对监控前端设备采集的每帧图像画面进行动态检测,此处不做具体限制。举例来说,监控前端设备可采用图像相似度算法对每帧图像画面进行动态检测,具体包括,监控前端设备首先计算当前帧图像画面与当前帧的前一帧图像画面的图像相似度,若确定该图像相似度大于预设阈值,则确定当前帧图像画面相比于前一帧图像画面发生了变化。
[0115] 由于若将采集到的所有原始数据都存储到监控存储设备中需要很大的存储空间,因此,为了节省存储资源,监控前端设备需对采集的原始数据进行视频压缩编码。因此,在步骤S502中,监控前端设备可采用预设的编码算法,对采集的原始数据进行视频压缩编码,得到GOP数据流。该GOP数据流即为编码后的视频图像的数据,其中包括具有时间先后次序的多个GOP数据,任一GOP数据为一组编码后的IPB帧,对应一组连续的图像画面。
[0116] 本发明实施例中,本领域技术人员可根据实际需要选取合适的编码算法,比如说,可以是常用的视频编码算法,如H264、H265等等,或者还可以是其它的视频压缩算法,本发明对此不做具体限制。
[0117] 在步骤S503中,针对上述GOP数据流中的每一个GOP数据,监控前端设备可根据该GOP数据中各帧图像画面的动态检测结果,得到该GOP数据的动态检测结果。该GOP数据的动态检测结果用于,标识该GOP数据与前一个GOP数据相比,其中的图像画面是否发生了变化。
[0118] 具体的,由于一个GOP数据中包括编码后的多帧图像画面的数据,因而,监控前端设备若确定某一GOP数据对应的各帧图像画面中存在至少一帧图像画面相比前一帧图像画面发生了变化,即可确定该GOP数据的动态检测结果为其包括的图像画面相比于前一个GOP数据中包括的图像画面发生了变化;否则,则确定该GOP数据的动态检测结果为其包括的图像画面相比于前一个GOP数据包括的图像画面未发生变化。
[0119] 举例来说,若一个GOP数据中包括25帧图像画面,若25帧的图像画面的动态检测结果中存在一帧图像画面的动态检测结果为相比与前一帧图像画面发生了变化,则确定该GOP数据相比于前一个GOP数据的图像画面发生了变化。
[0120] 在步骤S504中,监控前端设备将编码后得到的GOP数据流,以及该GOP数据流中的各个GOP数据对应的OSD数据和动态检测结果,一并发送给监控存储设备。
[0121] 本发明实施例中,监控前段设备按照GOP数据的先后次序依次发送各个GOP数据,OSD数据和动态检测结果也是如此。需要说明的是,各个动态检测结果可以独立发送,也可以放在其对应的OSD数据中,随着OSD数据一起发送。
[0122] 在步骤S505中,监控存储设备接收监控前端设备发送的视频数据流,并存储在其自身的存储设备中。
[0123] 本发明实施例中,监控存储设备可将监控前端设备发送的GOP数据与OSD数据、动态检测结果等进行独立存放。由于GOP数据与OSD数据是一一对应的,所以监控存储设备可根据各GOP数据中的帧时间确定其对应的OSD数据。
[0124] 基于同样的发明构思,本发明实施例还提供一种监控存储设备,图6为本发明实施例中的一种监控存储设备的结构示意图,如图6所示,所述监控存储设备600包括:
[0125] 获取模块601,用于根据客户端发送的视频回放请求,获取待回放视频的视频数据;所述视频数据中按时间先后依次包括第一个画面组GOP数据、第二个GOP数据……第M个GOP数据;其中,M为大于1的整数;
[0126] 确定模块602,用于将所述第一个GOP数据确定为视频回放数据并获取第n个GOP数据的动态检测结果,若确定所述第n个GOP数据的动态监测结果为第一指示,则将所述第n个GOP数据对应的屏幕显示OSD数据确定为视频回放数据;若确定所述第n个GOP数据的动态监测结果为第二指示,则将所述第n个GOP数据确定为视频回放数据;n大于1小于等于M;所述第一指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面未发生变化,所述第二指示用于标识GOP数据中包括的图像画面相比前一个GOP数据中包括的图像画面发生了变化;
[0127] 收发模块603,用于将所述视频回放数据发送给所述客户端。
[0128] 可选的,所述收发模块603,还用于接收监控前端设备发送的视频数据流;
[0129] 监控存储设备600还包括:
[0130] 存储模块604,用于存储接收到的监控前端设备发送的视频数据流;所述视频数据流中包括所述监控前端设备根据所采集的视频图像得到的多个GOP数据、各GOP数据对应的OSD数据和各GOP数据对应的动态检测结果。
[0131] 基于同样的发明构思,本发明实施例还提供一种客户端,图7为本发明实施例中的一种客户端的结构示意图,如图7所示,所述客户端700包括:
[0132] 收发模块701,用于向监控存储设备发送视频回放请求,并接收所述监控存储设备根据所述视频回放请求发送的视频回放数据;所述视频回放数据包括多个数据包,所述多个数据包中的任一数据包为GOP数据或OSD数据;
[0133] 显示模块702,用于若确定当前接收到的数据为GOP数据,则对所述GOP数据进行解码显示;以及若确定当前接收到的数据为OSD数据,则对所述OSD数据以及所述OSD数据之前接收到的最近的GOP数据进行解码显示。
[0134] 可选地,所述显示模块702具体用于:
[0135] 获取所述最近的GOP数据解码后的数据;
[0136] 将所述OSD数据与所述最近的GOP数据的解码后的数据进行叠加,根据叠加后的数据进行显示。
[0137] 基于同样的发明构思,本发明实施例还提供一种监控前端设备,图8为本发明实施例中的一种监控前端设备的结构示意图,如图8所示,所述监控前端设备800包括:
[0138] 采集模块801,用于采集视频图像,得到原始数据流;
[0139] 编码模块802,用于对所述原始数据流中的每帧图像画面进行编码,得到GOP数据流;所述GOP数据流中的任一GOP数据包括多帧图像画面;
[0140] 检测模块803,用于根据所述任一GOP数据对应的各帧图像画面的动态检测结果,得到所述任一GOP数据的动态检测结果;所述任一GOP数据的动态检测结果用于标识所述GOP数据中包括的图像画面相比前一个GOP数据包括的图像画面是否发生了变化;
[0141] 发送模块804,用于将所述任一GOP数据、所述任一GOP数据对应的OSD数据和所述任一GOP数据的动态检测结果发送给监控存储设备。
[0142] 可选地,所述检测模块803具体用于:
[0143] 若确定所述GOP数据对应的各帧图像画面中存在至少一帧图像画面相比前一帧图像画面发生了变化,则确定所述GOP数据包括的图像画面相比于前一个GOP数据中包括的图像画面发生了变化;否则,则确定所述GOP数据中包括的图像画面相比于前一个GOP数据包括的图像画面未发生变化。
[0144] 本发明实施例提供了一种监控存储设备,该监控存储设备具体可以为桌面计算机、便携式计算机等。该监控存储设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
[0145] 存储器可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储上述视频回放方法的程序。
[0146] 处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行上述视频回放方法的程序。
[0147] 本发明实施例还提供了一种计算机存储介质,用于储存为上述监控存储设备所用的计算机程序指令,其包含用于执行上述视频回放方法的程序。
[0148] 所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
[0149] 由上述内容可以看出:
[0150] 本发明实施例中,监控存储设备根据客户端发送的视频回放请求,获取待回放视频的视频数据,将所述第一个画面组GOP数据确定为待发送视频数据并获取第n个GOP数据的动态检测结果,若确定所述第n个GOP数据的动态监测结果为第一指示,则将所述第n个GOP数据对应的屏幕显示OSD数据确定为待发送视频数据;若确定所述第n个GOP数据的动态监测结果为第二指示,则将所述第n个GOP数据确定为待发送视频数据,进而将所述待发送视频数据发送给所述客户端。可见,监控存储设备可根据第n个GOP数据的动态检测结果,确定与该第n个GOP数据对应的待发送视频数据,在第n个GOP数据的动态检测结果指示该第n个GOP数据与前一个GOP数据相比,其包括的图像画面未发生变化的情况下,可以发送第n个GOP数据对应的OSD数据,来替代发送数据量较大的GOP数据,因此,可有效减小视频回放过程中传输的数据量,减轻客户端的解码压力,避免客户端的系统资源被大量占用的问题。
[0151] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或两个以上其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0152] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或两个以上流程和/或方框图一个方框或两个以上方框中指定的功能的装置。
[0153] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或两个以上流程和/或方框图一个方框或两个以上方框中指定的功能。
[0154] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或两个以上流程和/或方框图一个方框或两个以上方框中指定的功能的步骤。
[0155] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0156] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。