掌桥专利:专业的专利平台
掌桥专利
首页

一种数据汇聚方法、装置、设备及介质

文献发布时间:2024-04-18 20:00:50


一种数据汇聚方法、装置、设备及介质

技术领域

本申请涉及数据处理技术领域,尤其涉及一种数据汇聚方法、装置、设备及介质。

背景技术

现有的录像存放方式中,通常每隔1小时生产一个流媒体报文,在正常情况下每个流媒体报文在时间上是连续的,如果由于网络抖动或者其他原因录像中断就会立即关闭该文件,此时该文件的时间范围可能小于1小时;待录像恢复后存放到另外一个文件,那么录像中断前后的文件在时间上是中断的。在这种方式下,如果网络抖动很频繁,会重复执行以下流程:创建大文件、写入数据、关闭文件。并且每个文件的录像数据很小,但是会产生海量的小文件。这些文件会占用底层存储集群文件数量的配额,当集群内的文件个数达到配额上限后将无法再继续写入文件。海量的小文件,也给存储集群带来了沉重的元数据管理压力,从而影响存储系统的读写性能。

发明内容

本申请实施例提供了一种数据汇聚方法、装置、设备及介质,用以确保在流媒体服务器的系统时钟发生毫秒级时间跳变的异常时,仍能保证录像的写入和回放业务正常,并且能够避免产生大量小流媒体报文,从而避免给存储集群带来沉重的元数据管理压力,提升存储系统的读写性能。

在流媒体服务器侧,本申请实施例提供的一种数据汇聚方法包括:

获取摄像头发送的至少一个流媒体报文;

通过所述摄像头发送的至少一个流媒体报文中携带的时间戳信息,以及本地流媒体服务器的系统时间,对所述摄像头的系统时间进行时间跳变检测;

根据对所述摄像头的系统时间进行时间跳变检测得到的检测结果,对所述摄像头发送的至少一个流媒体报文进行数据汇聚,生成所述摄像头对应的数据汇聚文件。

本申请实施例通过在流媒体服务器侧获取摄像头发送的至少一个流媒体报文,通过所述摄像头发送的至少一个流媒体报文中携带的时间戳信息,以及本地流媒体服务器的系统时间,对所述摄像头的系统时间进行时间跳变检测;并根据检测结果,对所述摄像头发送的至少一个流媒体报文进行数据汇聚,生成所述摄像头对应的数据汇聚文件,从而可以将因为时间跳变而导致重复的一段录像数据切除或填充空洞帧,并继续汇聚新的视频流数据,进而避免产生大量的小文件,即避免产生大量碎片文件。

在一些实施方式中,通过所述摄像头发送的至少一个流媒体报文中携带的时间戳信息,以及本地流媒体服务器的系统时间,对所述摄像头的系统时间进行时间跳变检测,包括:

针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,确定该流媒体报文中的录像数据结束的时间戳信息,以及获取接收到该流媒体报文时的本地流媒体服务器的系统时间;

通过针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,比较该流媒体报文的录像数据结束的时间戳信息和接收到该流媒体报文时的本地流媒体服务器的系统时间,判断当前检测周期内所述摄像头是否发生时间跳变异常事件;

以及,当确定所述摄像头发生时间跳变异常事件时,确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向和时间跳变长度。

在一些实施方式中,通过针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,比较该流媒体报文的录像数据结束的时间戳信息和接收到该流媒体报文时的本地流媒体服务器的系统时间,判断当前检测周期内所述摄像头是否发生时间跳变异常事件,包括:

统计当前检测周期内检测到时间跳变的流媒体报文对应的时间跳变方向和时间跳变长度,其中,将当前检测周期内首次检测到时间跳变的流媒体报文对应的时间跳变方向,作为当前检测周期对应的基准时间跳变方向,将时间跳变方向与基准时间跳变方向相同的流媒体报文的时间跳变长度取正值,将时间跳变方向与基准时间跳变方向不同的流媒体报文的时间跳变长度取负值,然后累计当前检测周期内检测到时间跳变的流媒体报文对应的时间跳变长度的和值;

当所述和值的绝对值大于或等于预设阈值时,确定当前检测周期内所述摄像头发生了时间跳变异常事件;否则,确定当前检测周期内所述摄像头未发生时间跳变异常事件;

当确定所述摄像头发生时间跳变异常事件时,确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向和时间跳变长度,包括:

若所述和值为正值,则确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向,为所述基准时间跳变方向,所述摄像头的时间跳变长度为所述和值;

若所述和值为负值,则确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向,与所述基准时间跳变方向相反,所述摄像头的时间跳变长度为所述和值的绝对值。

在一些实施方式中,根据对所述摄像头的系统时间进行时间跳变检测得到的检测结果,对所述摄像头发送的流媒体报文进行数据汇聚,包括:

当确定所述摄像头发生时间跳变异常事件,并且,相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向为向未来跳变时,将所述流媒体报文从尾部向前切除一段时间长度的录像数据后,汇聚到所述摄像头对应的数据汇聚文件中,其中切除的录像数据的时间长度为所述摄像头的时间跳变长度;

当确定所述摄像头发生时间跳变异常事件,并且,相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向为向过去跳变时,将所述流媒体报文在尾部添加空洞帧后,汇聚到所述摄像头对应的数据汇聚文件中,其中所述空洞帧为只有时间序列,没有录像数据的流媒体数据。

在一些实施方式中,所述方法还包括:

将生成的数据汇聚文件发送给存储服务器进行存储。

在一些实施方式中,所述方法还包括:

当对所述数据汇聚文件进行录像数据回放时,按照数据帧的时间顺序进行录像数据回放,当遇到空洞帧时,直接跳过所述空洞帧,继续播放后续的有效数据帧,所述空洞帧为只有时间序列,没有录像数据的流媒体数据。

相应地,本申请实施例提供的一种数据汇聚装置,包括:

第一单元,用于获取摄像头发送的流媒体报文;

第二单元,用于通过所述摄像头发送的流媒体报文中携带的时间戳信息,以及本地流媒体服务器的系统时间,对所述摄像头的系统时间进行时间跳变检测;

第三单元,用于根据对所述摄像头的系统时间进行时间跳变检测得到的检测结果,对所述摄像头发送的流媒体报文进行数据汇聚,生成所述摄像头对应的数据汇聚文件。

本申请另一实施例提供了一种电子设备,其包括存储器和处理器,其中,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一种方法。

此外,根据实施例,例如提供了一种用于计算机的计算机程序产品,其包括软件代码部分,当所述产品在计算机上运行时,这些软件代码部分用于执行上述所定义的方法的步骤。该计算机程序产品可以包括在其上存储有软件代码部分的计算机可读介质。此外,该计算机程序产品可以通过上传过程、下载过程和推送过程中的至少一个经由网络直接加载到计算机的内部存储器中和/或发送。

本申请另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一种方法。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的流媒体接入与存储系统架构示意图;

图2为本申请实施例提供的从流媒体报文的末尾删除时间跳变时间长度的数据的时间跳变场景示意图;

图3为本申请实施例提供的向流媒体报文中插入时间跳变时间长度的空洞帧的时间跳变场景示意图;

图4为本申请实施例提供的一种数据汇聚方法的流程示意图;

图5为本申请实施例提供的流媒体服务器侧的数据汇聚方法的流程示意图;

图6为本申请实施例提供的集成了去抖逻辑的时间跳变检测方法的流程示意图;

图7为本申请实施例提供的向流媒体报文中插入时间跳变时间长度的空洞帧场景下的数据汇聚示意图;

图8为本申请实施例提供的从流媒体报文的末尾删除时间跳变时间长度的数据场景下的数据汇聚示意图;

图9为本申请实施例提供的一种电子设备的结构示意图;

图10为本申请实施例提供的一种数据汇聚装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供了一种数据汇聚方法、装置、设备及介质,用以确保在流媒体服务器的系统时钟发生毫秒级时间跳变的异常时,仍能保证录像的写入和回放业务正常,并且能够避免产生大量小流媒体报文,从而避免给存储集群带来沉重的元数据管理压力,提升存储系统的读写性能。

其中,方法和装置是基于同一申请构思的,由于方法和装置解决问题的原理相似,因此装置和方法的实施可以相互参见,重复之处不再赘述。

本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

以下示例和实施例将只被理解为是说明性的示例。虽然本说明书可能在若干处提及“一”、“一个”或“一些”示例或实施例,但这并非意味着每个这种提及都与相同的示例或实施例有关,也并非意味着该特征仅适用于单个示例或实施例。不同实施例的单个特征也可以被组合以提供其他实施例。此外,如“包括”和“包含”的术语应被理解为并不将所描述的实施例限制为仅由已提及的那些特征组成;这种示例和实施例还可以包含并未具体提及的特征、结构、单元、模块等。

下面结合说明书附图对本申请各个实施例进行详细描述。需要说明的是,本申请实施例的展示顺序仅代表实施例的先后顺序,并不代表实施例所提供的技术方案的优劣。

本申请实施例主要应用于视频领域内的流式录像数据的存储过程,通过优化流式数据的汇聚方法,确保在流媒体服务器的系统时钟发生毫秒级时间跳变的异常时,仍能保证录像的写入和回放业务正常,并且能够避免产生大量小流媒体报文。

下面首先针对本申请实施例涉及的一些概念进行简介:

流式数据文件:

在视频监控领域,特别是安防行业,来自摄像头的录像数据是实时产生并需要立即转储的(即流媒体报文),这些数据在时间上具有连续性,因而被称为“流式数据”。随着时间的推移,流式数据产生的流媒体报文也会持续增长。为了便于转储和回放,流媒体服务器通常会按照一定的时间间隔,对流式数据进行切分,比如,将持续时间为1小时的流式数据切分后汇聚为一个流媒体报文,而下一个时刻产生的数据又会被汇聚、切分为新的流媒体报文。流媒体服务器需要确保各个流媒体报文在时间上也是连续的,从而支持录像查询、回放等业务。

流媒体接入与存储系统:

运行着流媒体服务器的视频监控服务器(简称“服务器”)与产生流式流媒体报文的前端摄像头(简称“摄像头”)分属于两个物理设备,通常一台服务器能够接入多台摄像头产生的流式数据,即流媒体服务器可以同时处理多个流式数据文件的汇聚和切分,负责将摄像头产生的数据流缓存、汇聚后,保存到硬盘内。

前端摄像头通过TCP/IP协议(即Transmission Control Protocol/InternetProtocol,传输控制协议/网际协议)接入流媒体服务器,两者处于同一个局域网内。流媒体接入与存储的系统架构如图1所示。

在本申请实施例中,用户可以预先配置流媒体服务器与前端设备和后端存储设备之间的映射关系,例如:某台流媒体服务器应该负责接入哪几个前端产生的数据,并将这些数据汇聚后,存入哪套后端存储集群内。配置完成后,本申请实施例提供的方法就可以被自动实施,用于应对在数据汇聚过程中出现的时间跳变异常,并自动修复。

本申请实施例涉及多端交互,所述多端包括:摄像头、流媒体服务器和存储设备(也可以称为存储服务器)。其中,

摄像头属于“数据采集设备”,只负责数据采集,不涉及复杂的运算,所以其功能就是“保证在复杂气候条件下,具备全天候、长周期的持续获取视频和图片数据”。因而,在一套业务场景中,摄像头的数量通常远多于流媒体服务器和存储服务器。并且,一个摄像头的体积较小、安装方便、成本也低。

流媒体服务器属于“数据汇聚和转储设备”,需要进行复杂的数据汇聚于计算,需要消耗大量的CPU(即Central Processing Unit,中央处理器,简称CPU)和内存资源。他与摄像头之间,通过网络连接,一台流媒体服务器能够同时处理几十、甚至上百个摄像头产生的流媒体数据。流媒体服务器接入前端视图数据流,并形成本地文件的过程,称为数据汇聚,该过程就是本申请实施例描述的核心过程。而流媒体服务器将本地文件,转储到后端存储设备的过程,就是数据转储,具体的数据转储可以采用常规技术实现,在本申请实施例中不进行过多赘述。

存储服务器属于“数据存储设备”,通常不会消耗大量的CPU和内存资源,但是需要配备大量的硬盘存储空间。存储服务器跟流媒体服务器之间也是通过网络连接,通常可用于承接多台流媒体服务器产生汇聚数据。存储服务器可以是服务器内的硬盘、通过TCP/IP协议提供存储服务的网络硬盘等。

其中的流媒体服务器和存储服务器都属于后端设备,两个服务器之间没有明显的界限,如果服务器的硬件资源足够,对成本也有要求的话,是可以部署在同一台服务器内的;否则,可以分开部署。

时间跳变:

由于摄像头与流媒体服务器不在同一台设备上,因而长期运行时,流媒体服务器与摄像头之间的硬件时钟会存在一定的差异,本申请实施例中,以流媒体服务器的系统时间为基准,流媒体服务器当收到摄像头发送的流媒体报文时,判断收到的流媒体报文的时间(这个时间是摄像头设置在报文中的,与摄像头的系统时间一致),相对于收到该报文时的流媒体服务器的系统时间是否发生差异,如果存在差异,就认为摄像头的系统时间相对于流媒体服务器的系统时间发生了“时间跳变”,或者也可以直接描述为该流媒体报文发生了时间跳变。并且,需要进一步确认预设的检测周期内,接收到的发生时间跳变的各个流媒体报文所对应的时间跳变方向和时间跳变长度。需要说明的是,一台流媒体服务器能够处理来自很多摄像头的流媒体报文,该流媒体服务器需要分别针对每一摄像头,确认预设的检测周期内接收到的该摄像头发送的流媒体报文(发生时间跳变的)所对应的时间跳变方向和时间跳变长度。

例如,当流媒体服务器收到摄像头发送的流媒体报文时,若该流媒体报文中的录像数据结束时间(例如20230812-08:30:31,即摄像头的系统时间),先于流媒体服务器接收到该流媒体报文的时间(例如20230812-08:30:30),则确定该摄像头的时间跳变方向为向未来跳变,反之,确定该摄像头的时间跳变方向为向过去跳变。具体地:

出现时间跳变的场景有以下两种:

场景一、参见图2,摄像头的系统时间(简称摄像头时间)先于流媒体服务器的系统时间(简称流媒体服务器时间),此时流媒体服务器为了避免出现两段时间重叠的录像数据,则会在检测到接收到流媒体报文时的本地时间与视频流时间(即该流媒体报文的结束时间)不一致时,进行文件切分,将流媒体报文尾部时间跳变长度的数据切除,从而避免重复数据产生。

场景二、参见图3,摄像头的系统时间在流媒体服务器的系统时间之后,此时流媒体服务器会插入一段不包含视频数据的空洞帧,用于串接时间跳变前后的两段流媒体报文的数据流,从而使汇聚后的流媒体报文与流式视频数据的时间保持一致。

其中,所述空洞帧为只有时间序列,没有录像数据的流媒体数据。

文件碎片:

在存储系统中,通常会根据文件的大小以区分业务的行为。在转储流式数据文件时,通常其切分和汇聚的时间间隔较长,例如1小时切分一份大文件,所以存储系统采用的是大文件转储策略。存储系统将大小为100MB(即MByte,兆字节)以及100MB以上的文件定义为“大文件”,小于100MB的文件则被定义为“小文件”。在采用大文件写的存储业务场景下,也可能会由于时间跳变而出现小容量的文件(例如小于100MB,尤其是小于10MB的小文件),这些小文件就被定义为“文件碎片”。如果流媒体服务器长期、持续产生大量的文件碎片,就会增加存储系统的文件总量,提升文件管理成本,并且会加大存储系统的写入和读取的压力。

为了避免产生海量小文件,在流媒体服务器内增加对流媒体报文的时间跳变检测,可以检测到发生时间跳变的时间点,进行重复数据删除或者产生一段空洞帧,将其追加到流媒体报文内,并继续写入后续流媒体数据,从而将小文件按照连续时间汇聚成一个大文件,以达到减少文件数量的目的。

当确定摄像头发生时间跳变异常事件,并且,相比本地流媒体服务器的系统时间,摄像头的时间跳变方向为向过去跳变时,将该摄像头的流媒体报文在尾部添加空洞帧后,汇聚到该摄像头对应的数据汇聚文件中,后续可以继续串接正确的录像数据流,从而避免因为摄像头的时间跳变方向为向过去跳变而产生小文件的问题。

但是,相比服务器的系统时间,如果摄像头的时间跳变方向为向未来跳变,就会出现一段录像时间重复的视频数据。为了避免这段重复数据导致录像回访时出现异常,就需要当确定摄像头发生时间跳变异常事件,并且,相比本地流媒体服务器的系统时间,摄像头的时间跳变方向为向未来跳变时,将流媒体报文从尾部向前切除一段时间长度的录像数据后,汇聚到该摄像头对应的数据汇聚文件中,其中切除的录像数据的时间长度为该摄像头的时间跳变长度。

也就是说,本申请实施例在流媒体服务器中提供了一种时间跳变的检测和处理方法,即找到当前流媒体报文的时间跳变点,将因为时间跳变而导致重复的一段录像数据切除,并继续汇聚新的视频流数据,或者,插入一段空洞帧,从而避免产生大量的小文件。进一步,为了避免频繁的针对时间跳变的处理而导致用户数据丢失,还可以在识别时间跳变事件时,增加去抖动的方法。

参见图4,在流媒体服务器侧,本申请实施例提供的一种数据汇聚方法包括:

S101、获取摄像头发送的至少一个流媒体报文;

S102、通过所述摄像头发送的至少一个流媒体报文中携带的时间戳信息,以及本地流媒体服务器的系统时间,对所述摄像头的系统时间进行时间跳变检测;

S103、根据对所述摄像头的系统时间进行时间跳变检测得到的检测结果(例如包括摄像头是否发生时间跳变,以及摄像头的时间跳变方向、时间跳变长度等),对所述摄像头发送的至少一个流媒体报文进行数据汇聚,生成所述摄像头对应的数据汇聚文件。

其中,本申请实施例中,可以预先设置进行时间跳变的检测周期,在每个检测周期内,针对获取到的摄像头发送的流媒体报文,进行时间跳变检测,最终确定是否需要进行相应处理(删除重复数据或插入空洞帧),并生成该摄像头对应的数据汇聚文件。其中,不同的摄像头可以对应不同的数据汇聚文件。

因此,在一些实施方式中,通过所述摄像头发送的至少一个流媒体报文中携带的时间戳信息,以及本地流媒体服务器的系统时间,对所述摄像头的系统时间进行时间跳变检测,包括:

针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,确定该流媒体报文中的录像数据结束的时间戳信息,以及获取接收到该流媒体报文时的本地流媒体服务器的系统时间;

通过针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,比较该流媒体报文的录像数据结束的时间戳信息和接收到该流媒体报文时的本地流媒体服务器的系统时间,判断当前检测周期内所述摄像头是否发生时间跳变异常事件;

以及,当确定所述摄像头发生时间跳变异常事件时,确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向和时间跳变长度。

也就是说,本申请实施例中,在判断摄像头是否发生时间跳变异常事件时,不以一个流媒体报文是否发生时间跳变为准进行判断,可以结合多个流媒体报文的判断结果,综合确定摄像头是否发生时间跳变异常事件,在综合确定摄像头发生了时间跳变异常事件的情况下,进行相应的异常处理(在流媒体报文中删除一段录像数据或插入空洞帧),从而节约服务器资源,避免过于频繁的处理。

在一些实施方式中,为了避免频繁发生时间跳变而导致用户数据丢失,并且实现了阈值区间内的服务器时间跳变的自动补偿,减少触发时间跳变异常处理的次数,通过针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,比较该流媒体报文的录像数据结束的时间戳信息和接收到该流媒体报文时的本地流媒体服务器的系统时间,判断当前检测周期内所述摄像头是否发生时间跳变异常事件,包括:

统计当前检测周期内检测到时间跳变的流媒体报文对应的时间跳变方向和时间跳变长度,其中,将当前检测周期内首次检测到时间跳变的流媒体报文对应的时间跳变方向,作为当前检测周期对应的基准时间跳变方向,将时间跳变方向与基准时间跳变方向相同的流媒体报文的时间跳变长度取正值,将时间跳变方向与基准时间跳变方向不同的流媒体报文的时间跳变长度取负值,然后累计当前检测周期内检测到时间跳变的流媒体报文对应的时间跳变长度的和值;

当所述和值的绝对值大于或等于预设阈值时,确定当前检测周期内所述摄像头发生了时间跳变异常事件;否则,确定当前检测周期内所述摄像头未发生时间跳变异常事件;

当确定所述摄像头发生时间跳变异常事件时,确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向和时间跳变长度,包括:

若所述和值为正值,则确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向,为所述基准时间跳变方向,所述摄像头的时间跳变长度为所述和值;

若所述和值为负值,则确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向,与所述基准时间跳变方向相反,所述摄像头的时间跳变长度为所述和值的绝对值。

在一些实施方式中,根据对所述摄像头的系统时间进行时间跳变检测得到的检测结果,对所述摄像头发送的流媒体报文进行数据汇聚,包括:

当确定所述摄像头发生时间跳变异常事件,并且,相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向为向未来跳变时(例如图2所示场景),将所述流媒体报文从尾部向前切除一段时间长度的录像数据后,汇聚到所述摄像头对应的数据汇聚文件中,其中切除的录像数据的时间长度为所述摄像头的时间跳变长度;

当确定所述摄像头发生时间跳变异常事件,并且,相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向为向过去跳变时(例如图3所示场景),将所述流媒体报文在尾部添加空洞帧后,汇聚到所述摄像头对应的数据汇聚文件中,其中所述空洞帧为只有时间序列,没有录像数据的流媒体数据。

在一些实施方式中,所述方法还包括:

将生成的数据汇聚文件发送给存储服务器进行存储。

在一些实施方式中,所述方法还包括:

当对所述数据汇聚文件进行录像数据回放时,按照数据帧的时间顺序进行录像数据回放,当遇到空洞帧时,直接跳过所述空洞帧,继续播放后续的有效数据帧,所述空洞帧为只有时间序列,没有录像数据的流媒体数据。

下面给出更为具体的举例说明:

流媒体服务器能够同时处理多份来自前端摄像头的流媒体数据,并将其进行缓存、汇聚成流媒体报文,完成数据的存储;

每份流媒体数据均会在流媒体服务器的内存中缓存一定的时间长度T1(可配置,默认为60秒(s));

流媒体服务器每接收T2时间段(T2具体取值可配置,T2默认为2s,最小为1s)的流媒体数据后,需要进行一次时间跳变检测。跳变检测的步骤例如包括:

在T1时间段内的流媒体数据如果未发生时间跳变(也就是摄像头未发生时间跳变),则可以将这段数据直接落盘;否则,可以通过如下方式确定时间跳变的方向以及时间跳变的大小:

比对每段T2时长的录像数据流的结束时间A(视为摄像头的当前系统时间),与流媒体服务器的当前系统时间B;

如果在时间轴上A先于B(例如图2所示),则需要记录该摄像头发生一次时间跳变,跳变方向为向未来跳变,并记录本次T2时长的录像数据流的时间跳变长度为T3(需要在后面的去抖动逻辑中进行累积),T3为A与B的时间差值,例如1s;

如果在时间轴上A在B之后(例如图3所示),则需要记录该摄像头发生一次时间跳变,跳变方向为向过去跳变,并记录本次T2时长的录像数据流的时间跳变长度为T3(需要在后面的去抖动逻辑中进行累积),T3为A与B的时间差值,例如1s。

下面结合附图给出一个具体数据汇聚流程的举例说明。

参见图5,针对任一摄像头,在流媒体服务器中实现录像数据汇聚的方法例如包括:

S201、判断是否向新文件中汇聚数据,如果是,则执行步骤S202;否则,执行步骤S203;

例如,流媒体服务器会为每个前端摄像头分配一个唯一的汇聚文件,该文件会携带前端摄像头ID等标识信息。在流媒体服务器启动时,会判断当前服务器内如果已经存在了此摄像头的数据汇聚文件,则需要将此旧文件重命名并创建新的汇聚文件进行数据汇聚;否则,直接创建新的数据汇聚文件即可。

S202、初始化去抖动检测(即去抖动时间跳变检测)的起始时间;

例如,针对每个前端摄像头,将该摄像头发送的流媒体报文写入数据汇聚文件的时间(即写入新的数据汇聚文件中的第一个流媒体报文包的时间),记录为去抖动检测的起始时间,也就是说,每一检测周期的时间长度,可以为每一个数据汇聚文件中的录像数据的时间长度。

所述去抖动检测,即时间跳变异常事件的检测。

S203、缓存T2长度的录像数据;

S204、进行一次去抖动时间跳变检测;

S205、判断是否发生时间跳变异常事件,如果是,则执行步骤S206;否则,执行步骤S209;

其中,出现时间跳变的原因,就是两台硬件设备内负责计时的时钟芯片存在差异,即摄像头的时钟芯片频率较高、走的较快。当然,这种差异其实是很小的,比如两个时钟芯片运行10000秒,才会累积出来0.001秒的偏差,但是如果在长期运行的环境中,经过几个月甚至几年的累积,必然会出现更大的时间偏差。

S206、判断时间跳变异常事件对应的时间跳变方向是否为向过去跳变,如果是,即图3所示场景,则执行步骤S208;否则,即图2所示场景,执行步骤S207;

假设,流媒体服务器收到一个前端摄像头发送的流媒体报文的结束时间为20230812-08:30:31,该时间就视为摄像头当前的系统时间;而同一时刻,流媒体服务器的系统时间为20230812-08:30:30,此时,前端摄像头时间相较流媒体服务器的系统时间而言就是出现了向未来跳变的情况;

需要说明的是,可以以流媒体服务器的系统时间为准,判断摄像头时间是否发生了时间跳变,也可以反过来,以摄像头时间为准,判断流媒体服务器的系统时间是否发生了时间跳变。针对判断结果的处理方式同理,都是在前端摄像头的系统时间先于流媒体服务器时间时(例如前端摄像头当前发送的流媒体报文中的录像数据的结束时间为20230812-08:30:31,流媒体服务器的系统时间为20230812-08:30:30),从摄像头当前发送的流媒体报文的录像数据尾部开始,向前删除发生跳变的时间长度的录像数据,如图2所示;否则,在摄像头当前发送的流媒体报文的录像数据尾部插入空洞帧,如图3所示。

S207、从录像数据尾部开始,向前删除发生跳变的时间长度;

即摄像头的系统时间相比流媒体服务器的系统时间,向未来跳变时,需要删除跳变时长对应的录像数据。

S208、在录像数据尾部插入空洞帧;

S209、完成当前流媒体报文的汇聚;

S210、判断缓存时长是否超过转储阈值T1,如果是,则执行步骤S211;否则,执行步骤S203;

S211、将当前汇聚得到的T1长度的录像数据,作为数据汇聚文件并落盘。

可见,本申请实施例提供的技术方案,支持对流媒体服务器毫秒级时间跳变的异常处理,保证了视频流流媒体报文的连续性,避免因为服务器时钟波动而产生大量小文件而增加系统负载的问题。

在一些实施例中,可以通过时间跳变的去抖动逻辑,确定摄像头是否发生了时间跳变异常事件,通过阈值区间内的服务器时间跳变的自动补偿,减少了真正触发时间跳变异常处理的次数。也就是说对于时间跳变异常事件的检测(即上述步骤S204),例如包括:

预先设置去抖动检测的时间长度为TR1:将TR1时长内发生时间跳变的录像数据流的时间跳变长度T3进行累加,得到TR1时长内时间跳变长度累加和;其中,TR1具体取值可配置,默认为60s,可以与流媒体报文的缓存时长T1保持一致,去抖动检测的时间TR1越长越好,以使其的作用时间尽可能的长,而最长也不能超过T1。

需要说明的是,本申请实施例中进行T3累加时,需要注意时间跳变的方向:之前累计得到的T3值应减去反方向的时间跳变长度。时间跳变涉及到向前和向后两个方向,所以在累加时就需要考虑本次跳变的方向与之前发生的时间跳变的方向是否一致。

预先设置确定发生时间跳变的最大时间偏差TR2:当统计得到的TR1时长内时间跳变长度累加和的绝对值大于TR2时,最终确定发生时间跳变事件,即需要进行后续的切除重复录像数据或在录像数据尾部插入空洞帧的操作,否则,无需进行这些操作。其中,TR2具体取值可配置,默认为1s,不能超过T2,TR2是针对一个数据汇聚文件的时间跳变阈值,而一个数据汇聚文件的时长就是T2,因而TR2不可能超过T2。

下面针对本申请实施例设置的阈值进行解释说明如下。

T1:数据转储时长,默认为60s,即流媒体服务器需要汇聚1分钟的视频数据后,才将其转储到数据文件内(即通过封装成数据转储报文,再发送给存储服务,由存储服务最终落盘)。

T2:数据汇聚时长,默认为10s,即流媒体服务器每次收到的前端摄像头报文内包含的视频数据长度。

按照默认配置,流媒体服务器需要处理六条报文后,才能汇聚出一条数据转储报文(该报文就是包含了前面六条报文、长度为1分钟的视频数据),并最终将其落盘。

T3:时间跳变时长,经过去抖动逻辑处理过T2时长的报文之后,发生了时间跳变的实际长度。如果没有发生时间跳变,则该T3值为0。

按照默认配置,流媒体服务器每次落盘1分钟的视频数据之前会处理六次数据汇聚文件,并进入六次去抖动逻辑以检测时间跳变,从而产生六个T3的跳变时长。

TR1:每一次去抖动逻辑的检测时长。一次时间跳变的去抖动逻辑的作用时间就是流媒体服务器从开始汇聚第一个报文,到产生一条数据转储报文并下发落盘请求,也就是T1的数据转储时长。在一些实施例中,可以将TR1的值设置与T1的值相等,或者TR1的值小于T1的值。

TR2:一条数据汇聚文件的时间跳变阈值。默认为1s,但不能超过数据汇聚文件的长度T2。

另外,本申请实施例中,流媒体服务器在执行时间跳变异常识别和处理的方案中,均支持调整各项阈值,从而在应对不同业务场景时,增加了一定的灵活性。也就是说,所有阈值均支持调整和动态生效,并能够通过用户界面进行配置。并且,所有可配置项(上述各个阈值)都设置了默认值,从而支持用户在不做任何配置的情况下就能确保业务的正常进行。

时间跳变长度T3的累加和,是针对每一检测周期而言的,流媒体服务器需要记录当前检测周期内收到的发生时间跳变的每一流媒体报文的两个参数,即发生时间跳变的方向和时间跳变的长度。下面列举T3的三种情况:

情况一、未发生时间跳变时,本次T3的时间跳变长度为0,不记录跳变的方向,并且不参与累加;

情况二、发生向过去的时间跳变,并且跳变阈值超过TR2:记录本次时间跳变方向和跳变时长,如果是在数据转储时长T1内,首次检测到的时间跳变,则不涉及跳变数据累加;否则,需要将当前流媒体报文对应的时间跳变长度跟之前的流媒体报文的时间跳变长度进行累加。

其中,以当前检测周期内第一个出现时间跳变的流媒体报文的时间跳变方向为标准方向,在进行T3值累加时,区分每一发生时间跳变的流媒体报文的时间跳变方向,如果与标准方向不一致,则应将当前的T3值累加和减去时间跳变方向不一致的流媒体报文的时间跳变时长,最终的时间跳变方向为时间跳变时长较长的那个流媒体报文的时间跳变方向;如果时间跳变的方向一致,则直接累加跳变时长即可,而时间跳变的方向则保持不变;

情况三、发生向未来的时间跳变,并且跳变阈值超过TR2:同样需要记录时间跳变的方向和跳变时长,处理逻辑同情况二。

经过上面去抖动检测逻辑累加出的时间跳变结果,会再被流媒体服务器检测,并进行处理。那么,流媒体服务器中通过去抖动逻辑检测时间跳变异常事件的方法,具体例如图6所示,包括如下步骤:

S301、判断本次去抖动检测时长是否小于TR1,如果是(即当前检测周期还没结束),则执行步骤S304;否则,执行步骤S302;

S302、清除当前记录的时间跳变方向和T3累加和,即需要开始新的一轮检测。

S303、开始新的去抖动检测周期;

S304、令当前流媒体报文的结束时间(即摄像头的当前系统时间)=A,流媒体服务器的当前系统时间=B;

S305、判断A是否先于B,如果是,则执行步骤S307;否则,执行步骤S306;

S306、确定本次摄像头的时间跳变方向是向过去跳变;

S307、确定本次摄像头的时间跳变方向是向未来跳变;

S308、判断当前流媒体报文对应的时间跳变是否为当前检测周期内的首次时间跳变,如果是,则执行步骤S309;否则,执行步骤S310;

S309、将本次的时间跳变方向设置为当前检测周期的标准时间跳变方向D;

S310、判断本次的时间跳变方向与标准时间跳变方向D是否一致,如果是,则执行步骤S311;否则,执行步骤S312;

S311、将T3累加本次的摄像头时间跳变长度;

S312、将T3减去本次的摄像头时间跳变长度;

可见,在时间跳变的异常检测时,通过增加去抖动逻辑,在T1的一次数据转储周期内,若当前检测周期内同一摄像头的流媒体报文中,有的发生了向过去的时间跳变,有的发生了向未来的时间跳变,那么可以通过上述通过去抖动的逻辑,能够实现时间跳变时长的相互抵消(即通过步骤S311和S312),使得T1时间周期内的时间跳变时长变短,从而实现了阈值区间内的摄像头时间跳变的自动补偿,减少了触发时间跳变处理的次数。

S313、判断T3是否大于或等于跳变阈值TR2,如果是,则执行步骤S314;否则,执行步骤S316;

S314、确定发生了时间跳变异常事件;

S315、最终确定当前检测周期对应的时间跳变方向与时间跳变长度累加和;其中,累加和若为正值,那么最终确定的时间跳变方向与标准时间跳变方向D一致,否则,相反。

S316、确定未发生时间跳变异常事件。

当采用上述方式最终确定摄像头发生了时间跳变异常事件时,在流媒体服务器中处理时间跳变异常的方法,例如:

当发生向过去跳变的情况时,即流媒体服务器的系统时间在摄像头的系统时间之后时(如图3所示场景),需要在当前缓存中的录像数据段后追加一个空洞帧,用于描述时间跳变的间隔,并串接后面继续缓存的录像数据,以确保录像数据在时间上连续。空洞帧的内容例如图7所示。

当发生向未来跳变的情况时,即流媒体服务器的系统时间在摄像头的系统时间之后(如图2所示场景),则需要删除当前缓存的录像数据段中发生时间跳变的时间长度T3的录像数据,即删除的是数据汇聚文件中发生时间重叠的那部分录像数据,并在删除后的录像数据串接后面继续缓存的录像数据,以确保录像数据在时间上连续。删除发生时间跳变的时间长度T3的录像数据的方法,例如图8所示。

也就是说,本申请实施例中流媒体服务器进行录像数据汇聚时,流媒体服务器按照其系统时间汇聚录像数据,即从数据汇聚文件中获取录像数据,将其汇聚后形成新的时间序列,并且需要保证录像数据的时间序列连续;所述的空洞帧就是只有时间序列,而没有录像数据的一段流媒体数据,其作用只是保证录像数据连续。

在一些实施例中,本申请实施例还提供了流媒体服务器进行流媒体报文回放的方法:

流媒体服务器根据流媒体报文内的时间线顺序播放,并支持按照录像进度条进行拖动。当录像回放到空洞帧时,由于这里并没有有效的录像数据,因而流媒体服务器能够直接跳过空洞帧,继续播放后续的有效数据帧;

在播放那些因为时间跳变而删除过重复数据的流媒体报文时,由于流媒体报文中的数据流时间仍然是连续的,所以流媒体服务器并不会感知这种时间跳变异常。也就是说,针对缓存中的录像数据流执行时间跳变异常的处理逻辑,最大限度的减少了对汇聚后的流媒体报文的影响,能够兼容现有的录像回放逻辑。

综上所述,本申请实施例适用于对时间连续性要求较高的流式视频存储领域,能够有效避免因为摄像头的系统时间跳变而产生海量小文件的问题;

本申请实施例可以用于应对摄像头的毫秒级的时间跳变场景,因为视频流是实时接入流媒体服务器的,因而能够实时感知到录像的数据流时间与当前流媒体服务器时间的差异,两者的时间差异不能超过1s,而仅通过现有的时间同步手段则无法达到这种精度;

通过对缓存中的录像数据流进行时间跳变异常事件的识别和处理,即能够保证汇聚后的流媒体报文时间连续,也可以兼容现有的录像回放逻辑,同时还有效避免了因为时间跳变而产生大量的小文件;

在识别录像数据流发生时间跳变的异常时,增加了去除抖动的逻辑,通过识别摄像头的时间跳变方向、累积时间跳变长度的方式,能够实现摄像头时间出现双向抖动时实现自动补偿,从而最大限度的减少触发时间跳变异常处理的次数;

流媒体服务器在执行时间跳变异常识别和处理的逻辑中,均支持调整各项阈值,从而在应对不同业务场景时,增加了一定的灵活性。

下面介绍一下本申请实施例提供的设备或装置,其中与上述方法中所述的相同或相应的技术特征的解释或举例说明,后续不再赘述。

本申请实施例提供的一种电子设备,例如可以是流媒体服务器,参见图9,例如包括:

处理器600,用于读取存储器620中的程序,执行下列过程:

获取摄像头发送的至少一个流媒体报文;

通过所述摄像头发送的至少一个流媒体报文中携带的时间戳信息,以及本地流媒体服务器的系统时间,对所述摄像头的系统时间进行时间跳变检测;

根据对所述摄像头的系统时间进行时间跳变检测得到的检测结果,对所述摄像头发送的至少一个流媒体报文进行数据汇聚,生成所述摄像头对应的数据汇聚文件。

收发机610,用于在处理器600的控制下接收和发送数据。

在一些实施方式中,通过所述摄像头发送的至少一个流媒体报文中携带的时间戳信息,以及本地流媒体服务器的系统时间,对所述摄像头的系统时间进行时间跳变检测,包括:

针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,确定该流媒体报文中的录像数据结束的时间戳信息,以及获取接收到该流媒体报文时的本地流媒体服务器的系统时间;

通过针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,比较该流媒体报文的录像数据结束的时间戳信息和接收到该流媒体报文时的本地流媒体服务器的系统时间,判断当前检测周期内所述摄像头是否发生时间跳变异常事件;

以及,当确定所述摄像头发生时间跳变异常事件时,确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向和时间跳变长度。

在一些实施方式中,通过针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,比较该流媒体报文的录像数据结束的时间戳信息和接收到该流媒体报文时的本地流媒体服务器的系统时间,判断当前检测周期内所述摄像头是否发生时间跳变异常事件,包括:

统计当前检测周期内检测到时间跳变的流媒体报文对应的时间跳变方向和时间跳变长度,其中,将当前检测周期内首次检测到时间跳变的流媒体报文对应的时间跳变方向,作为当前检测周期对应的基准时间跳变方向,将时间跳变方向与基准时间跳变方向相同的流媒体报文的时间跳变长度取正值,将时间跳变方向与基准时间跳变方向不同的流媒体报文的时间跳变长度取负值,然后累计当前检测周期内检测到时间跳变的流媒体报文对应的时间跳变长度的和值;

当所述和值的绝对值大于或等于预设阈值时,确定当前检测周期内所述摄像头发生了时间跳变异常事件;否则,确定当前检测周期内所述摄像头未发生时间跳变异常事件;

当确定所述摄像头发生时间跳变异常事件时,确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向和时间跳变长度,包括:

若所述和值为正值,则确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向,为所述基准时间跳变方向,所述摄像头的时间跳变长度为所述和值;

若所述和值为负值,则确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向,与所述基准时间跳变方向相反,所述摄像头的时间跳变长度为所述和值的绝对值。

在一些实施方式中,根据对所述摄像头的系统时间进行时间跳变检测得到的检测结果,对所述摄像头发送的流媒体报文进行数据汇聚,包括:

当确定所述摄像头发生时间跳变异常事件,并且,相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向为向未来跳变时,将所述流媒体报文从尾部向前切除一段时间长度的录像数据后,汇聚到所述摄像头对应的数据汇聚文件中,其中切除的录像数据的时间长度为所述摄像头的时间跳变长度;

当确定所述摄像头发生时间跳变异常事件,并且,相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向为向过去跳变时,将所述流媒体报文在尾部添加空洞帧后,汇聚到所述摄像头对应的数据汇聚文件中,其中所述空洞帧为只有时间序列,没有录像数据的流媒体数据。

在一些实施方式中,所述处理器600,还用于读取存储器620中的程序,执行下列过程:

将生成的数据汇聚文件发送给存储服务器进行存储。

在一些实施方式中,所述处理器600,还用于读取存储器620中的程序,执行下列过程:

当对所述数据汇聚文件进行录像数据回放时,按照数据帧的时间顺序进行录像数据回放,当遇到空洞帧时,直接跳过所述空洞帧,继续播放后续的有效数据帧,所述空洞帧为只有时间序列,没有录像数据的流媒体数据。

其中,在图9中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器600代表的一个或多个处理器和存储器620代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机610可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元,这些传输介质包括,这些传输介质包括无线信道、有线信道、光缆等传输介质。针对不同的用户设备,用户接口630还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。

处理器600负责管理总线架构和通常的处理,存储器620可以存储处理器600在执行操作时所使用的数据。

在一些实施方式中,处理器600可以是CPU(中央处埋器)、ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable GateArray,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件),处理器也可以采用多核架构。

处理器通过调用存储器存储的计算机程序,用于按照获得的可执行指令执行本申请实施例提供的任一所述方法。处理器与存储器也可以物理上分开布置。

在此需要说明的是,本申请实施例提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。

参见图10,本申请实施例提供的一种数据汇聚装置,包括:

第一单元11,用于获取摄像头发送的流媒体报文;

第二单元12,用于通过所述摄像头发送的流媒体报文中携带的时间戳信息,以及本地流媒体服务器的系统时间,对所述摄像头的系统时间进行时间跳变检测;

第三单元13,用于根据对所述摄像头的系统时间进行时间跳变检测得到的检测结果,对所述摄像头发送的流媒体报文进行数据汇聚,生成所述摄像头对应的数据汇聚文件。

在一些实施方式中,通过所述摄像头发送的至少一个流媒体报文中携带的时间戳信息,以及本地流媒体服务器的系统时间,对所述摄像头的系统时间进行时间跳变检测,包括:

针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,确定该流媒体报文中的录像数据结束的时间戳信息,以及获取接收到该流媒体报文时的本地流媒体服务器的系统时间;

通过针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,比较该流媒体报文的录像数据结束的时间戳信息和接收到该流媒体报文时的本地流媒体服务器的系统时间,判断当前检测周期内所述摄像头是否发生时间跳变异常事件;

以及,当确定所述摄像头发生时间跳变异常事件时,确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向和时间跳变长度。

在一些实施方式中,通过针对当前检测周期内接收到的所述摄像头发送的每一流媒体报文,比较该流媒体报文的录像数据结束的时间戳信息和接收到该流媒体报文时的本地流媒体服务器的系统时间,判断当前检测周期内所述摄像头是否发生时间跳变异常事件,包括:

统计当前检测周期内检测到时间跳变的流媒体报文对应的时间跳变方向和时间跳变长度,其中,将当前检测周期内首次检测到时间跳变的流媒体报文对应的时间跳变方向,作为当前检测周期对应的基准时间跳变方向,将时间跳变方向与基准时间跳变方向相同的流媒体报文的时间跳变长度取正值,将时间跳变方向与基准时间跳变方向不同的流媒体报文的时间跳变长度取负值,然后累计当前检测周期内检测到时间跳变的流媒体报文对应的时间跳变长度的和值;

当所述和值的绝对值大于或等于预设阈值时,确定当前检测周期内所述摄像头发生了时间跳变异常事件;否则,确定当前检测周期内所述摄像头未发生时间跳变异常事件;

当确定所述摄像头发生时间跳变异常事件时,确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向和时间跳变长度,包括:

若所述和值为正值,则确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向,为所述基准时间跳变方向,所述摄像头的时间跳变长度为所述和值;

若所述和值为负值,则确定相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向,与所述基准时间跳变方向相反,所述摄像头的时间跳变长度为所述和值的绝对值。

在一些实施方式中,根据对所述摄像头的系统时间进行时间跳变检测得到的检测结果,对所述摄像头发送的流媒体报文进行数据汇聚,包括:

当确定所述摄像头发生时间跳变异常事件,并且,相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向为向未来跳变时,将所述流媒体报文从尾部向前切除一段时间长度的录像数据后,汇聚到所述摄像头对应的数据汇聚文件中,其中切除的录像数据的时间长度为所述摄像头的时间跳变长度;

当确定所述摄像头发生时间跳变异常事件,并且,相比所述本地流媒体服务器的系统时间,所述摄像头的时间跳变方向为向过去跳变时,将所述流媒体报文在尾部添加空洞帧后,汇聚到所述摄像头对应的数据汇聚文件中,其中所述空洞帧为只有时间序列,没有录像数据的流媒体数据。

在一些实施方式中,所述第三单元13还用于:

将生成的数据汇聚文件发送给存储服务器进行存储。

在一些实施方式中,所述第三单元13还用于:

当对所述数据汇聚文件进行录像数据回放时,按照数据帧的时间顺序进行录像数据回放,当遇到空洞帧时,直接跳过所述空洞帧,继续播放后续的有效数据帧,所述空洞帧为只有时间序列,没有录像数据的流媒体数据。

需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请实施例提供了一种电子设备,该电子设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该电子设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。

存储器可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储本申请实施例提供的任一所述方法的程序。

处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行本申请实施例提供的任一所述方法。

本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的任一所述方法。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

本申请实施例提供了一种计算机可读存储介质,用于储存为上述本申请实施例提供的装置所用的计算机程序指令,其包含用于执行上述本申请实施例提供的任一方法的程序。所述计算机可读存储介质,可以是非暂时性计算机可读介质。

所述计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。

应当理解:

通信网络中的实体经由其往来传送流量的接入技术可以是任何合适的当前或未来技术,诸如可以使用WLAN(无线本地接入网络)、WiMAX(微波接入全球互操作性)、LTE、LTE-A、5G、蓝牙、红外等;另外,实施例还可以应用有线技术,例如,基于IP的接入技术,如有线网络或固定线路。

适合于被实现为软件代码或其一部分并使用处理器或处理功能运行的实施例是独立于软件代码的,并且可以使用任何已知或未来开发的编程语言来规定,诸如高级编程语言,诸如objective-C、C、C++、C#、Java、Python、Javascript、其他脚本语言等,或低级编程语言,诸如机器语言或汇编程序。

实施例的实现是独立于硬件的,并且可以使用任何已知或未来开发的硬件技术或其任何混合来实现,诸如微处理器或CPU(中央处理单元)、MOS(金属氧化物半导体)、CMOS(互补MOS)、BiMOS(双极MOS)、BiCMOS(双极CMOS)、ECL(发射极耦合逻辑)和/或TTL(晶体管-晶体管逻辑)。

实施例可以被实现为单独的设备、装置、单元、部件或功能,或者以分布式方式实现,例如,可以在处理中使用或共享一个或多个处理器或处理功能,或者可以在处理中使用和共享一个或多个处理段或处理部分,其中,一个物理处理器或多于一个的物理处理器可以被用于实现一个或多个专用于如所描述的特定处理的处理部分。

装置可以由半导体芯片、芯片组或包括这种芯片或芯片组的(硬件)模块来实现。

实施例还可以被实现为硬件和软件的任何组合,诸如ASIC(应用特定IC(集成电路))组件、FPGA(现场可编程门阵列)或CPLD(复杂可编程逻辑器件)组件或DSP(数字信号处理器)组件。

实施例还可以被实现为计算机程序产品,包括在其中体现计算机可读程序代码的计算机可用介质,该计算机可读程序代码适应于执行如实施例中所描述的过程,其中,该计算机可用介质可以是非暂时性介质。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

技术分类

06120116541546