一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

录像数据的存储方法、装置、系统、电子装置和存储介质与流程

2022-02-22 03:58:48 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及录像数据的存储方法、装置、系统、电子装置和存储介质。


背景技术:

2.在安防存储服务器领域,后端存储服务器负责从多个不同的前端设备通道拉取流媒体数据流并按照一定的方式进行录像数据存储,同时提供外部客户端对存储录像数据的回放读取。由于录像数据存储不连续会导致存储服务器内部软件的可靠性低,且存储服务器上系应用软件的不可靠;因此,在相关技术中,为了确保视频存储的连续性,避免或尽量少丢失录像数据,通常采用双控服务器的方法,即存在两套主控硬件的存储服务器,由两个主控同时拉流且共用同一片物理存储空间,同一时刻只有一个主控对录像数据进行存储。然而,双控服务器成本较高,硬件成本接近单控服务器的两倍,而且双路拉流的方法对前端摄像头和整个网络带宽也有双倍压力,整体成本显著提高,使得针对录像数据的存储准确性较低,且耗费成本较高。
3.目前针对相关技术中录像数据的存储准确性低,且耗费成本高的问题,尚未提出有效的解决方案。


技术实现要素:

4.本技术实施例提供了一种录像数据的存储方法、装置、系统、电子装置和存储介质,以至少解决相关技术中录像数据的存储准确性低,且耗费成本高的问题。
5.第一方面,本技术实施例提供了一种录像数据的存储方法,所述方法包括:
6.获取录像数据;
7.在检测到服务器的拉流存储应用程序异常的情况下,根据预设的异常恢复时间对所述录像数据进行异常预缓存处理,得到异常预缓存数据;其中,所述拉流存储应用程序,部署于所述服务器,用于针对所述录像数据进行拉流处理;
8.在所述拉流存储应用程序重连的情况下,根据所述异常恢复时间将所述异常预缓存数据推流至所述服务器以进行存储。
9.在其中一些实施例中,所述在所述拉流存储应用程序重连的情况下,根据所述异常恢复时间将所述异常预缓存数据推流至所述服务器包括:
10.获取所述服务器的异常持续时间;
11.在所述异常持续时间位于所述异常恢复时间范围内,且所述拉流存储应用程序重连的情况下,检测所述服务器的历史流请求信息;
12.在检测到所述历史流请求信息的情况下,基于所述历史流请求信息将所述异常预缓存数据推流至所述服务器,并指示所述拉流存储应用程序针对所述录像数据重新进行拉流处理;在检测到所述历史流请求信息缺失的情况下,针对所述异常预缓存数据进行丢弃处理;
13.在所述异常持续时间超过所述异常恢复时间范围,且所述拉流存储应用程序重连失败的情况下,针对所述异常预缓存数据进行丢弃处理。
14.在其中一些实施例中,所述获取录像数据之后,所述检测到服务器的拉流存储应用程序异常之前,所述方法还包括:
15.针对所述录像数据中的路由缓存数据和套接字(socket)缓存数据进行实时预缓存处理,得到实时预缓存数据。
16.在其中一些实施例中,所述得到异常预缓存数据之后,所述方法还包括:
17.在所述异常预缓存数据的数据量超过预设数据量的情况下,将所述异常流缓存数据存储至本地存储设备。
18.在其中一些实施例中,所述录像数据还包括系统文件缓存数据、媒体共享缓存数据和socket缓存数据;在检测到所述拉流存储应用程序异常之前,所述方法还包括:
19.将所述系统文件缓存数据推流至所述服务器的系统文件缓存模块进行存储,将所述媒体共享缓存数据推流至所述服务器的媒体共享缓存模块进行存储,以及将所述socket缓存数据推流至所述服务器的后端socket缓存模块进行存储;
20.其中,所述后端socket缓存模块还用于在检测到所述拉流存储应用程序异常的情况下,将所述socket缓存数据备份至所述媒体共享缓存模块。
21.在其中一些实施例中,所述检测到服务器的拉流存储应用程序异常包括:
22.获取所述服务器通过预设的应用层协议发送的指示关闭通道连接的异常告警信息,基于所述异常告警信息检测到所述拉流存储应用程序异常;或者,
23.在所述服务器关闭tcp媒体流连接的情况下接收到所述服务器的rst消息,基于所述rst消息检测到所述拉流存储应用程序异常。
24.第二方面,本技术实施例提供了一种录像数据的存储方法,所述方法包括:
25.在检测到拉流存储应用程序异常的情况下,将预设的异常恢复时间发送至终端设备;其中,所述拉流存储应用程序用于针对录像数据进行拉流处理;
26.在所述拉流存储应用程序重连的情况下,将根据所述异常恢复时间拉流到的所述终端设备的异常预缓存数据进行存储;其中,所述异常预缓存数据是由所述终端设备在所述拉流存储应用程序异常的情况下,根据所述异常恢复时间对获取到的所述录像数据进行异常预缓存处理得到的。
27.在其中一些实施例中,所述在所述拉流存储应用程序重连的情况下,将根据所述异常恢复时间拉流到的所述终端设备的异常预缓存数据进行存储包括:
28.在获取到的异常持续时间位于所述异常恢复时间范围内的情况下,通过所述拉流存储应用程序,根据所有通道对应的视频帧时间点向所述终端设备发送历史流请求信息,基于所述视频帧时间点和所述历史流请求信息拉流所述异常预缓存数据并进行存储。
29.在其中一些实施例中,所述异常恢复时间根据所述拉流存储应用程序的最大重启恢复时间确定。
30.第三方面,本技术实施例提供了一种录像数据的存储装置,所述装置包括:获取模块、预缓存模块和存储模块;
31.所述获取模块,用于获取录像数据;
32.所述预缓存模块,用于获取服务器针对拉流存储应用程序的异常检测结果,在所
述异常检测结果指示异常的情况下,根据预设的异常恢复时间对所述录像数据进行异常预缓存处理,得到预缓存数据;其中,所述拉流存储应用程序,部署于所述服务器,用于针对所述录像数据进行拉流处理;
33.所述存储模块,用于在所述拉流存储应用程序重连的情况下,根据所述异常恢复时间将所述异常预缓存数据推流至所述服务器以进行存储。
34.第四方面,本技术实施例提供了一种录像数据的存储装置,所述装置包括:检测模块和拉流模块;
35.所述检测模块,用于在检测到拉流存储应用程序异常的情况下,将预设的异常恢复时间发送至终端设备;其中,所述拉流存储应用程序用于针对录像数据进行拉流处理;
36.所述拉流模块,用于在所述拉流存储应用程序重连的情况下,将根据所述异常恢复时间拉流到的所述终端设备的异常预缓存数据进行存储;其中,所述异常预缓存数据是由所述终端设备在所述拉流存储应用程序异常的情况下,根据所述异常恢复时间对获取到的所述录像数据进行异常预缓存处理得到的。
37.第五方面,本技术实施例提供了一种录像数据的存储系统,所述系统包括:终端设备、传输设备以及服务器;其中,所述终端设备通过传输设备连接服务器;
38.所述传输设备用于将所述录像数据由所述终端设备传输至所述服务器;
39.所述终端设备用于执行如上述第一方面所述的录像数据的存储方法;
40.所述服务器用于执行如上述第二方面所述的录像数据的存储方法。
41.第六方面,本技术实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面和第二方面所述的录像数据的存储方法。
42.第七方面,本技术实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面和第二方面所述的录像数据的存储方法。
43.相比于相关技术,本技术实施例提供的录像数据的存储方法、装置、系统、电子装置和存储介质,通过获取录像数据;在检测到服务器的拉流存储应用程序异常的情况下,根据预设的异常恢复时间对该录像数据进行异常预缓存处理,得到异常预缓存数据;其中,该拉流存储应用程序,部署于该服务器,用于针对该录像数据进行拉流处理;在该拉流存储应用程序重连的情况下,根据该异常恢复时间将该异常预缓存数据推流至该服务器以进行存储,解决了录像数据的存储准确性低,且耗费成本高的问题。
44.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。
附图说明
45.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
46.图1是根据本技术实施例的一种录像数据的存储方法的应用环境图;
47.图2是根据本技术实施例的一种录像数据的存储方法的流程图;
48.图3是根据本技术实施例的一种终端设备上预缓存处理方法的时序图;
49.图4是根据本技术实施例的一种录像数据的存储方法的优选流程图;
50.图5是根据本技术实施例的另一种录像数据的存储方法的流程图;
51.图6是根据本技术实施例的另一种录像数据的存储方法的优选流程图;
52.图7是根据本技术实施例的一种录像数据的存储装置的结构框图;
53.图8是根据本技术实施例的一种录像数据的存储系统的结构框图;
54.图9是根据本技术优选实施例的一种录像数据的存储系统的架构示意图;
55.图10是根据本技术实施例的一种计算机设备内部的结构图。
具体实施方式
56.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本技术公开的内容相关的本领域的普通技术人员而言,在本技术揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本技术公开的内容不充分。
57.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本技术所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
58.除非另作定义,本技术所涉及的技术术语或者科学术语应当为本技术所属技术领域内具有一般技能的人士所理解的通常意义。本技术所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本技术所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本技术所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本技术所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
59.本实施例提供的录像数据的存储方法,可以应用在如图1所示的应用环境中。其中,终端设备102通过网络与服务器104进行通信。终端设备102在检测到服务器104的拉流存储应用程序异常时,并根据服务器104配置的异常恢复时间对获取到的录像数据进行异常预缓存处理,得到异常预缓存数据;该终端设备102在该拉流存储应用程序重连的情况下,根据该异常恢复时间将该异常预缓存数据推流至该服务器,最终在该服务器上进行存储。其中,该终端设备102可以但不限于是各种智能手机、个人计算机、笔记本电脑和平板电脑,该服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
60.本实施例提供了一种录像数据的存储方法,应用于终端设备,图2是根据本技术实
施例的一种录像数据的存储方法的流程图,如图2所示,该流程包括如下步骤:
61.步骤s220,获取录像数据。
62.其中,上述录像数据可以由上述终端设备的视频采集模块从与其连接的安防监控头等录像设备中读取;可以理解的是,该视频采集模块还可以针对读取到的录像数据进行编码等处理,在此不再赘述。
63.步骤s240,在检测到服务器的拉流存储应用程序异常的情况下,根据预设的异常恢复时间对该录像数据进行异常预缓存处理,得到异常预缓存数据;其中,该拉流存储应用程序,部署于该服务器,用于针对该录像数据进行拉流处理。
64.其中,上述异常恢复时间可以由用户在上述服务器上预先进行配置并存储在该服务器内,该异常恢复时间最多可达到几分钟,由该服务器通过控制流通道向上述终端设备配置。在其中一些实施例中,该异常恢复时间根据上述拉流存储应用程序的最大重启恢复时间确定,即该拉流存储应用程序重连至该终端设备所需的最长时间。该拉流存储应用程序是指部署在上述服务器的应用程序层的,用于负责在服务器运行阶段执行拉流以及存储录像数据的操作的应用程序。具体地,首先可以由上述服务器从该终端设备开始正常实时流拉流。在运行阶段可以由该服务器的故障监控模块作为独立守护进程,负责实时检测上述拉流存储应用程序的不可恢复异常状态,例如死机或阻塞等异常。当该故障监控模块监测到该拉流存储应用程序异常时,可以由该故障监控模块发送异常信号至该终端设备,或者,也可以由该终端设备直接向该故障监控模块读取异常信号。则当该终端设备发现与该服务器的媒体流连接异常时,可以由该终端设备按照上述服务器配置的异常恢复时间开始进行异常预缓存,也就是在这段时间内持续进行实时缓存录像数据。
65.步骤s260,在该拉流存储应用程序重连的情况下,根据该异常恢复时间将该异常预缓存数据推流至该服务器以进行存储。
66.具体地,可以由上述拉流存储应用程序自启,或者,由上述故障监控模块对发生不可恢复异常的拉流存储应用程序进行重启恢复;此时该拉流存储应用程序启动,该拉流存储应用程序可以根据所存储的含有接入记录的数据库数据重新接入在重启前接入过的所有前端设备。其中,当该服务器的拉流存储应用程序重新恢复连接至该终端设备后,可以由该终端设备将上述已经预缓存的异常预缓存数据推流至该服务器,并由该服务器进行存储,从而避免了服务器连接异常导致的录像数据存储出错。
67.在相关技术中,录像数据一般难以连续存储,或通常需要增加视频存储服务器与摄像头之外第三类设备间的交互来保证录像数据存储的连续性,增加了部署和实现复杂度。而本实施例通过上述步骤s220至步骤s260,通过终端设备在服务器的拉流存储应用程序连接异常时对录像数据进行异常预缓存处理,以便对长时间异常发生时刻和恢复时刻之间的录像数据进行有效缓存备份和拉流恢复,使得通过终端设备进行少量预缓存即可确保录像数据不丢失,无需增加额外的硬件服务器进行异常接管,能够大量节省硬件成本,从而解决了录像数据的存储准确性低,且耗费成本高的问题,实现了高可靠性的流媒体存储方法。
68.在其中一些实施例中,上述步骤s260还包括如下步骤:
69.步骤s261,获取该服务器的异常持续时间。
70.其中,上述异常持续时间是指上述拉流存储应用程序连接异常至重新恢复连接之
间的实际时间。具体地,可以由上述服务器记录连接异常的第一时刻点t1,以及重新恢复连接的第二时刻点t2,并将第一时刻点t1和第二时刻点t2发送给上述终端设备,由该终端设备计算得到该异常持续时间t
last
=t2-t1;该服务器也可以直接计算得到该异常持续时间并发送给该终端设备;或者,该终端设备也可以接收该服务器的指示连接异常的异常信号,以及指示重连的重连信号,并记录这两次接收到信号的时刻点,基于这两个时刻点计算得到该异常持续时间。
71.步骤s262,在该异常持续时间位于该异常恢复时间的范围内,且该拉流存储应用程序重连的情况下,检测该服务器的历史流请求信息。
72.其中,若上述终端设备检测到在上述异常持续时间尚未超过上述配置的异常恢复时间的范围时,上述拉流存储应用程序已经重新恢复连接到该终端设备,说明该拉流存储应用程序重连成功且未超时,此时由该终端设备检测上述服务器是否请求历史流数据。
73.步骤s263,在检测到该历史流请求信息的情况下,基于该历史流请求信息将该异常预缓存数据推流至该服务器以进行存储,并指示该拉流存储应用程序针对该录像数据重新进行拉流处理;在检测到该历史流请求信息缺失的情况下,针对该异常预缓存数据进行丢弃处理。
74.其中,在上述拉流存储应用程序重新连接至上述终端设备后,若该终端设备检测到上述历史流请求信息,说明上述服务器重连后向终端设备请求历史流数据,则此时该终端设备可以依据上述历史流请求信息像该服务器推流上述预缓存的异常预缓存数据。
75.步骤s264,在该异常持续时间超过该异常恢复时间的范围,且该拉流存储应用程序重连失败的情况下,针对该异常预缓存数据进行丢弃处理。
76.其中,在上述拉流存储应用程序超时且未恢复连接的情况下,由于持续写入缓存数据至终端设备内存会耗费资源性能,因此当超时后可以不再持续缓存上述异常预缓存数据。需要说明的是,此时该终端设备可以继续等待一段异常恢复时间后,再丢弃该异常预缓存数据;则在这段等待周期内重新恢复连接的服务器还能够获取到部分录像数据,从而有效提高了录像数据存储的连贯性和准确性。
77.通过上述步骤s261至步骤s264,通过终端设备对预缓存数据的推流处理,以及在连接超时或服务器未请求历史流数据时丢弃异常预缓存数据,避免了持续写入数据导致的资源性能耗费,从而降低了录像数据存储的成本。
78.在其中一些实施例中,上述获取录像数据之后,上述检测到服务器的拉流存储应用程序异常之前,上述录像数据的存储方法还包括如下步骤:针对所述录像数据中的路由缓存数据和socket缓存数据进行实时预缓存处理,得到实时预缓存数据。
79.其中,在上述服务器中拉流存储应用程序发生异常,且上述终端设备感知到异常的时刻之前,可以由该终端设备针对异常前可能会丢失的录像数据中的已发送数据进行实时预缓存;该已发送数据主要包括中间路由缓存数据c1和终端socket缓存数据c2;可以理解的是,socket是应用层与tcp/ip协议族通信的中间软件抽象层。因此,该终端设备需要实时预缓存的数据量b1=(c1 c2)≤tcp_wmem;其中,tcp_wmem用于表示该终端设备发送的socket缓存数据的最大值;也就是说可能丢失的数据量b1最多为该终端设备的tcp_wmem,即系统配置的tcp socket的最大发送缓存大小,且在大部分终端设备中tcp_wmem不超过1mb大小。根据以上分析,终端设备需要实时预录的媒体流数据量b1《1mb,此时实时内存占
用对终端设备中至少几百mb的总内存来说影响不大,避免了实时存储导致的终端本地存储寿命和性能受影响。
80.在其中一些实施例中,上述得到异常预缓存数据之后,上述录像数据的存储方法还包括如下步骤:在该异常预缓存数据的数据量超过预设数据量的情况下,针对该异常流缓存数据持久化存储至本地存储设备。
81.需要说明的是,当上述拉流存储应用程序发生异常时,从发生异常时刻到重连时刻之间,上述终端设备无法继续发送实时流数据到上述服务器,因此需要持续缓存实时流直到该服务器恢复正常并重新请求,这段持续缓存的时间可以由该拉流存储应用程序的异常恢复时间决定,例如该异常恢复时间可以为max(t2-t1)=2分钟。也就是说,在服务器发生异常后,由该终端设备持续缓存(t2-t1)时间的实时流数据即可,将max(t2-t1)作为持续缓存的超时时间。这段时间内最多需要缓存的数据量b2=max(t2

t1)
×
通道码率,按照常规1080p视频的4mb/s码率计算,最大b2=2
×
60
×
4/8=60mb。通过上述实施例,通过在异常预缓存数据过量时的进行本地持久化存储,避免了实时缓存导致的终端本地存储寿命和性能受影响。
82.在其中一些实施例中,上述录像数据还包括系统文件缓存数据、媒体共享缓存数据和socket缓存数据;在检测到上述拉流存储应用程序异常之前,上述录像数据的存储方法还包括如下步骤:
83.步骤s230,将该系统文件缓存数据推流至该服务器的系统文件缓存模块进行存储,将该媒体共享缓存数据推流至该服务器的媒体共享缓存模块进行存储,以及将该socket缓存数据推流至该服务器的后端socket缓存模块进行存储;其中,该后端socket缓存模块还用于在检测到该拉流存储应用程序异常的情况下,将该socket缓存数据备份至该媒体共享缓存模块。
84.具体地,图3是根据本技术实施例的一种终端设备上预缓存处理方法的时序图,如图3所示,在拉流存储应用程序发送异常且终端设备感知到异常的异常时刻t1之前,终端设备已发送至服务器的实时流数据包括图3所示的四个部分:在服务器上已保存的录像数据,即已存储数据s1、操作系统文件缓存数据s2、媒体共享缓存数据数据s3、以及socket缓存数据s4;其中,s1已保存在服务器上不会丢失,s2也能够自动存储到硬盘不会丢失,s3属于操作系统共享缓存,不会因为服务器的应用程序重启而丢失,应用程序重启后可以继续进行存储,s4可以由服务器备份到s3中,因此上述终端设备已发送出去的s1、s2、s3和s4数据都不会丢失。则在发生异常时刻t1之前会丢失的已发送数据主要为中间路由缓存数据c1和前端socket缓存数据c2;终端设备需要实时预缓存的数据量b1=(c1 c2)≤tcp_wmem。
85.通过上述步骤s230,将录像数据进行分类存储,实现了针对服务器异常期间可能丢失的录像数据进行分类处理,以便对长时间异常恢复期间关键数据进行备份恢复,从而能够确保绝大部分数据在服务器的拉流存储应用程序异常后可以恢复,而少量不可恢复数据可以由终端设备进行预缓存以确保不丢失,并且由于这部分数据较小,因此不影响终端设备正常运行,有效提高了录像数据存储的准确性。
86.在其中一些实施例中,上述检测到服务器的拉流存储应用程序异常还包括如下步骤:获取该服务器通过预设的应用层协议发送的指示关闭通道连接的异常告警信息,基于该异常告警信息检测到该拉流存储应用程序异常;或者,在该服务器关闭tcp媒体流连接的
情况下接收到该服务器的rst消息,并基于该rst消息检测到该拉流存储应用程序异常;其中rst是tcp协议的6个标志之一,用于指示重置连接、复位连接。具体地,可以由上述服务器的故障检测模块通过关键信息检测或保活等实时监测拉流存储应用程序是否异常。在检测到服务器的拉流存储应用程序发生异常后,该服务器可以在应用程序发生部分阻塞等情况下主动通过实时流传输协议(real time streaming protocol,简称为rtsp)等应用层协议通知前端关闭通道连接;或者该服务器可以在应用程序死机等情况下直接关闭tcp媒体流连接,此时终端设备发送tcp数据会收到rst消息。通过上述实施例,在服务器中拉流存储应用程序发生异常后能够及时通知终端设备,保证了服务器可以及时反馈异常信息,避免了异常情况通知不及时导致的录像数据丢失。
87.下面通过优选实施例对本技术实施例进行描述和说明。图4是根据本技术实施例的一种录像数据的存储方法的优选流程图,应用于终端设备,如图4所示,该流程包括如下步骤:
88.步骤s401,终端设备接入服务器;其中,该终端设备通过控制流链接和媒体流链接进行数据业务交互,同时接收服务器配置过来的异常恢复时间t
out

89.步骤s402,终端设备向服务器提供正常实时流拉流,并持续实时预缓存,即缓存最近时间内b1数据量大小的实时流数据。
90.步骤s403,实时检测服务器是否连接异常,若是,则按照t
out
=max(t2-t1)的异常恢复时间进行异常预缓存处理;当异常预缓存的数据量较大时可以进行本地持久化存储。
91.步骤s404,判断等待服务器重新连接是否超时。
92.步骤s405,若上述步骤s404的判断结果为否,且检测到服务器请求历史流,则终端设备根据服务器请求的开始时间点t2发送上述所有预缓存数据;该终端设备从t2时间段开始同时提供实时流拉流并进行实时预缓存,预缓存最近的实时流数据,记该累计数据量为b3,且b3≤b1。
93.步骤s406,若上述步骤s404的判断结果为是,保留b1 b2 b3数据量中最近的b1数据量的预缓存数据,其他缓存数据进行丢弃删除;终端设备重新返回上述步骤s402。
94.本实施例还提供了一种录像数据的存储方法,图5是根据本技术实施例的另一种录像数据的存储方法的流程图,如图5所示,该流程包括如下步骤:
95.步骤s520,在检测到拉流存储应用程序异常的情况下,将预设的异常恢复时间发送至终端设备;其中,该拉流存储应用程序用于针对录像数据进行拉流处理。
96.步骤s540,在该拉流存储应用程序重连的情况下,将根据该异常恢复时间拉流到的该终端设备的异常预缓存数据进行存储;其中,该异常预缓存数据是由该终端设备在该拉流存储应用程序异常的情况下,根据该异常恢复时间对获取到的该录像数据进行异常预缓存处理得到的。
97.通过上述步骤s520至步骤s540,通过终端设备在服务器的拉流存储应用程序异常时对录像数据进行异常预缓存,以便对长时间异常发生时刻和恢复时刻之间的录像数据进行有效缓存备份和拉流恢复,使得通过终端设备进行少量预缓存即可确保录像数据不丢失,无需增加额外的硬件服务器进行异常接管,从而解决了针对录像数据的存储准确性低,且耗费成本高的问题。
98.在其中一些实施例中,上述步骤s540还包括如下步骤:在获取到的异常持续时间
位于该异常恢复时间内的情况下,通过该拉流存储应用程序,根据所有通道对应的视频帧时间点向该终端设备发送历史流请求信息,基于该视频帧时间点和该历史流请求信息拉流该异常预缓存数据并进行存储。其中,上述服务器在检测到该拉流存储应用程序异常重启的情况下,可以由该拉流存储应用程序从上述媒体共享缓存模块中获取每个终端设备通道最新录像的视频帧时间点,并根据该该时间点向终端设备发送历史流请求信息以请求历史媒体流数据,从而从终端设备拉流异常预缓存数据。
99.图6是根据本技术实施例的另一种录像数据的存储方法的优选流程图,应用于服务器,如图6所示,该流程包括如下步骤:
100.步骤s601,服务器通过故障检测模块监测到拉流存储应用程序连接异常。
101.步骤s602,备份socket缓存数据至媒体共享缓存模块中,供应用程序重启后使用。
102.步骤s603,拉流存储应用程序重启;其中,拉流存储应用程序重启异常不可恢复后,自动重启或由故障检测程序负责重启。
103.步骤s604,拉流存储应用程序启动,并重新接入启动前接入过的所有终端设备,同时配置异常恢复时间至终端设备。
104.步骤s605,服务器判断是否异常后重启;若是,则通过拉流存储应用程序从媒体共享缓存中获取每个终端设备通道最新录像的帧时间点。
105.步骤s606,根据该帧时间点向终端设备请求历史媒体流数据;在终端设备发送历史媒体流数据完毕后关闭历史流链接。
106.需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
107.本实施例还提供了一种录像数据的存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
108.图7是根据本技术实施例的一种录像数据的存储装置的结构框图,如图7所示,该装置包括:获取模块72、预缓存模块74和存储模块76;该获取模块72,用于获取录像数据;该预缓存模块74,用于获取服务器针对拉流存储应用程序的异常检测结果,在该异常检测结果指示异常的情况下,根据预设的异常恢复时间对该录像数据进行异常预缓存处理,得到预缓存数据;其中,该拉流存储应用程序,部署于该服务器,用于针对该录像数据进行拉流处理;该存储模块76,用于在该拉流存储应用程序重连的情况下,根据该异常恢复时间将该异常预缓存数据推流至该服务器以进行存储。
109.通过上述实施例,由上述预缓存模块74在服务器的拉流存储应用程序连接异常时对录像数据进行异常预缓存处理,以便对长时间异常发生时刻和恢复时刻之间的录像数据进行有效缓存备份和拉流恢复,使得通过终端设备进行少量预缓存即可确保录像数据不丢失,无需增加额外的硬件服务器进行异常接管,从而解决了录像数据的存储准确性低,且耗费成本高的问题,实现了高可靠性的流媒体存储装置。
110.本实施例还提供了一种录像数据的存储装置,该装置包括:检测模块和拉流模块;该检测模块,用于在检测到拉流存储应用程序异常的情况下,将预设的异常恢复时间发送
至终端设备;其中,该拉流存储应用程序用于针对录像数据进行拉流处理;该拉流模块,用于在该拉流存储应用程序重连的情况下,将根据该异常恢复时间拉流到的该终端设备的异常预缓存数据进行存储;其中,该异常预缓存数据是由该终端设备在该拉流存储应用程序异常的情况下,根据该异常恢复时间对获取到的该录像数据进行异常预缓存处理得到的。
111.需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
112.本实施例还提供了一种录像数据的存储系统,图8是根据本技术实施例的一种录像数据的存储系统的结构框图,如图8所示,该系统包括:终端设备102、传输设备82以及服务器104;其中,该终端设备102通过传输设备82连接服务器104;该传输设备82用于将该录像数据由该终端设备102传输至该服务器104;该终端设备102用于获取录像数据;该终端设备102在检测到服务器104的拉流存储应用程序异常的情况下,根据预设的异常恢复时间对该录像数据进行异常预缓存处理,得到异常预缓存数据;其中,该拉流存储应用程序,部署于该服务器104,用于针对该录像数据进行拉流处理;该终端设备102在该拉流存储应用程序重连的情况下,根据该异常恢复时间将该异常预缓存数据推流至该服务器104以进行存储。
113.通过上述实施例,通过终端设备102在服务器104的拉流存储应用程序连接异常时对录像数据进行异常预缓存处理,以便对长时间异常发生时刻和恢复时刻之间的录像数据进行有效缓存备份和拉流恢复,使得通过终端设备102进行少量预缓存即可确保录像数据不丢失,无需增加额外的硬件服务器进行异常接管,从而解决了录像数据的存储准确性低,且耗费成本高的问题,实现了高可靠性的流媒体存储系统。
114.下面结合实际应用场景对本发明的实施例进行详细说明,图9是根据本技术优选实施例的一种录像数据的存储系统的架构示意图,如图9所示,该架构包括服务器和终端设备;
115.具体地,上述服务器中主要包括以下个部分:拉流模块、存储模块、媒体共享缓存模块、系统文件缓存模块、后端socket缓存模块和故障检测模块。其中,该后端socket缓存模块部,部署在操作系统层,用于在每个通道从终端设备进行网络拉流的操作系统层进行网络缓存。该拉流模块,部署在应用程序层,与该终端设备至少存在两条链接,一条是用于负责设备控制类信令交互的控制流链接;另一条是一般通过rtsp等流媒体协议建立的媒体流链接,用于从终端设备拉取实时流或者在异常恢复后从终端设备拉取指定时间点的历史媒体流。该媒体共享缓存模块,部署在应用程序层和操作系统层,用于缓存已接收的终端设备的媒体流数据,这部分缓存的媒体流数据的数据量上限可以很大,按照不同通道的视频帧有序组织,可以获取到每个通道最新的媒体帧信息,包括时间等;在本实施例中,将上述缓存改变为独立于进程之外的共享存储,可以确保拉流存储应用程序异常重启后数据不会丢失。该存储模块,部署在应用程序层,负责从媒体共享缓模块存中消费不同通道的媒体数据进行硬盘存储。该系统文件缓存模块,部署在操作系统层,用于为存储模块读写硬盘的操作系统缓存。该故障监控模块作为独立守护进程,与操作系统层配合,负责在运行阶段实时监测存储、拉流等关键应用程序的不可恢复异常,例如死机或阻塞等,对关键的不同通道链
接的socket接收缓存数据进行抢救备份到媒体共享缓存,随后对发生不可恢复异常的拉流存储应用程序进行重启恢复。
116.上述终端设备主要包括:视频采集模块、流媒体模块、预缓存模块和前端socket缓存模块。该视频采集模块,用于从监控设备采集录像数据并进行编码。该流媒体模块,用于从视频采集模块获取编码后的实时媒体流,并响应后端服务器的媒体流请求。该预缓存模块,包括实时预缓存模块和异常预缓存模块;其中,实时预缓存模块用于实时缓存当前时间点之前一段固定时间的实时流数据,确保上述服务器能够在任何时刻从终端设备拉取到当前时间之前一段固定时间的数据而不只是当前时间的实时流,这部分固定时间一般为秒级,且实时缓存的数据在终端内存中占比较小,因此可以持续进行实时缓存;该异常预缓存模块用于在终端设备发现与服务器的媒体流连接异常时开始异常预缓存,即增加缓存时间,所增加的时间主要由服务器中拉流存储应用程序的异常恢复时间决定;增加的异常预缓存数据量过多导致终端设备内存不够存储时,可以持久化到终端设备的嵌入式多媒体卡(embedded multi media card,简称为emmc)等设备端持久化存储空间,同时设定存储上限。该前端socket缓存模块用于为视频流媒体通道的操作系统层网络发送缓存,在拉流存储应用程序异常导致通道连接中断后自动释放丢弃缓存数据。
117.在其中一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,图10是根据本技术实施例的一种计算机设备内部的结构图,如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储录像数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种录像数据的存储方法。
118.本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
119.本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
120.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
121.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
122.s1,获取录像数据。
123.s2,在检测到服务器的拉流存储应用程序异常的情况下,根据预设的异常恢复时间对该录像数据进行异常预缓存处理,得到异常预缓存数据;其中,该拉流存储应用程序,部署于该服务器,用于针对该录像数据进行拉流处理。
124.s3,在该拉流存储应用程序重连的情况下,根据该异常恢复时间将该异常预缓存数据推流至该服务器以进行存储。
125.需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
126.另外,结合上述实施例中的录像数据的存储方法,本技术实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种录像数据的存储方法。
127.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
128.本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
129.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献