1.本技术涉及信息技术领域,尤其涉及一种基于对象存储的视频管理技术。
背景技术:2.近年来随着视频监控设备的广泛应用,随之产生了一系列的问题。例如,不同的视频管理系统由于建设时采用不同的标准,导致系统间互联互通的复杂度越来越高。随着监控视频的数量越来越多,如何高效可靠的存储海量视频数据存储已成为亟待解决的问题。由于智能手机、平板电脑等移动终端的普及化,对于兼容多种客户端视频播放的需求也越来越强烈。
技术实现要素:3.本技术的一个目的是提供一种基于对象存储的视频管理系统。
4.根据本技术的一个方面,提供了一种基于对象存储的视频管理系统,其中,所述系统包括视频接入组件、视频存储组件、视频检索和读取组件、视频分发组件;
5.所述视频接入组件用于获取视频流;
6.所述视频存储组件用于处理所述视频流,生成对应的视频包;
7.所述视频检索和读取组件用于在收到检索和回放请求后,获取对应的视频包,根据所述视频包的包头信息,将所述视频包转换成对应的视频流,并将所述视频流转发至所述视频分发组件;
8.所述视频分发组件用于接收所述视频流,根据用户请求对应的分发协议对所述视频流进行打包操作,生成对应的视频包,并将所述视频包发送至对应的客户端。
9.进一步地,所述视频接入组件用于获取视频流,包括:所述视频接入组件用于对视频设备进行接入和控制,通过对应的接口向所述视频设备请求视频流。
10.进一步地,所述视频接入组件还用于:若所述视频设备向所述视频接入组件提供标准格式的视频流,则将该视频流转发至所述视频存储组件;若所述视频设备向所述视频接入组件提供非标准格式的视频流,则先将该视频流转换为标准格式,再将该视频流转发至所述视频存储组件。
11.进一步地,所述视频存储组件用于处理所述视频流,生成对应的视频包,包括:所述视频存储组件用于按照画面组处理所述视频流,分别对每个画面组中的所有视频帧进行打包操作,生成对应的视频包。
12.进一步地,所述视频存储组件生成对应的视频包的流程,包括:所述视频存储组件按照画面组处理所述视频流,分别对每个画面组中的所有视频帧进行打包操作,添加包头信息,生成对应的视频包;其中,所述视频包的关键字包括该视频的点位编号、名称、时间等信息及其组合,所述视频包的元数据包括该视频的分辨率、帧率、码率等信息。
13.进一步地,所述视频存储组件还用于将所述视频包存入对象存储系统。
14.进一步地,所述视频检索和读取组件用于根据所述检索和回放请求,从所述对象
存储系统中获取对应的视频包。
15.进一步地,所述视频检索和读取组件用于根据所述检索和回放请求,从所述对象存储系统中获取对应的视频包,包括:所述视频检索和读取组件用于根据所述检索和回放请求中的点位编号、时间等信息,生成对应时间段内视频包的关键字前缀;从所述对象存储系统中获取所有包含该前缀的视频包的关键字,根据所述关键字的信息按照当前视频的播放速度,定时向所述对象存储系统请求对应的视频包。
16.进一步地,所述用户请求包括:实时视频请求;所述检索和回放请求。
17.进一步地,所述视频分发组件用于接收所述视频流,包括:如果用户通过所述客户端发起所述实时视频请求,则所述视频分发组件用于从所述视频接入组件接收所述视频流;如果用户通过所述客户端发起所述检索和回放请求,则所述视频分发组件用于从所述视频检索和读取组件接收所述视频流。
18.本技术提供的方案中,所述视频管理系统包括视频接入组件、视频存储组件、视频检索和读取组件、视频分发组件;其中,所述视频接入组件用于获取视频流;所述视频存储组件用于处理所述视频流,生成对应的视频包;所述视频检索和读取组件用于在收到检索和回放请求后,获取对应的视频包,根据所述视频包的包头信息,将所述视频包转换成对应的视频流,并将所述视频流转发至所述视频分发组件;所述视频分发组件用于接收所述视频流,根据用户请求对应的分发协议对所述视频流进行打包操作,生成对应的视频包,并将所述视频包发送至对应的客户端。与现有技术相比,本技术提供的视频管理系统支持多种协议接入、多种协议输出,可以利用对象存储系统存储海量视频数据,不仅容易与其他系统进行互联互通,而且还可以兼容多种视频播放客户端。
附图说明
19.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其他特征、目的和优点将会变得更明显:
20.图1是根据本技术实施例的一种基于对象存储的视频管理系统结构图;
21.图2是根据本技术实施例的一种视频包格式的示意图;
22.图3是根据本技术实施例的一种视频存储流程图;
23.图4是根据本技术实施例的一种视频读取流程图。
24.附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
25.下面结合附图对本技术作进一步详细描述。
26.在本技术一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
27.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
28.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的装置或其他数
据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
29.本技术实施例提供了一种基于对象存储的视频管理系统,支持多种协议接入、多种协议输出,可以利用对象存储系统存储海量视频数据,不仅容易与其他系统进行互联互通,而且还可以兼容多种视频播放客户端。
30.在实际场景中,实现该系统的设备可以是用户设备、网络设备或者用户设备与网络设备通过网络相集成所构成的设备。其中,所述用户设备包括但不限于智能手机、平板电脑、个人计算机(pc)等终端设备,所述网络设备包括但不限于网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(cloud computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
31.图1是根据本技术实施例的一种基于对象存储的视频管理系统结构图,该系统包括视频接入组件、视频存储组件、视频检索和读取组件、视频分发组件。
32.具体地,所述视频接入组件用于获取视频流;所述视频存储组件用于处理所述视频流,生成对应的视频包;所述视频检索和读取组件用于在收到检索和回放请求后,获取对应的视频包,根据所述视频包的包头信息,将所述视频包转换成对应的视频流,并将所述视频流转发至所述视频分发组件;所述视频分发组件用于接收所述视频流,根据用户请求对应的分发协议对所述视频流进行打包操作,生成对应的视频包,并将所述视频包发送至对应的客户端。
33.例如,所述视频接入组件可以实现与摄像机之间的信令交互,实时获取其视频流数据;如果获取到的原始视频流并非后续需要的格式,还可以利用cpu/gpu转换视频格式。所述视频存储组件可以对所述视频接入组件获取到的视频流数据进行打包,得到对应的视频包(如图2所示的视频文件包),然后根据视频流信息为该视频包生成元数据和索引信息,再将视频文件、元数据和索引信息组合成存储对象,存入对象存储系统。所述视频检索和读取组件可以根据用户设置的检索条件,筛选出视频文件列表,并将其读取到本系统中。所述视频分发组件可以根据不同的分发协议,将从所述视频接入组件获取的实时视频流数据,或者从所述视频检索和读取组件获取的视频流文件,打包成对应的视频包,然后转发至对应的客户端进行播放。
34.在一些实施例中,所述用户请求包括:实时视频请求,所述检索和回放请求。例如,在一些场景中,用户有观看实时视频的需求,如果用户通过所述客户端发起所述实时视频请求,则所述视频分发组件用于从所述视频接入组件接收所述视频流,从而便于用户实时观看视频。
35.在一些实施例中,所述视频接入组件用于对视频设备进行接入和控制,通过对应的接口向所述视频设备请求视频流。
36.例如,所述视频接入组件可以支持多种常见的流媒体协议,如rtsp(real time streaming protocol,实时流传输协议)、rtmp(real time messaging protocol,实时消息
传输协议)等;还可以支持安防行业的互联互通标准,如gb/t 28181和onvif等标准。所述视频设备包括但不限于:摄像机、nvr(network video recorder,网络视频录像机)、第三方视频系统、执法记录仪、无人机等多种设备。所述视频接入组件可以对各种视频设备进行接入和控制,不仅可以直接接入多种视频设备,还可以通过专用的sdk(software development kit,软件开发工具包)接入一些不支持常用协议标准的视频设备。所述视频接入组件在将所述视频设备接入后,可以通过对应的接口向所述视频设备请求视频流。
37.在一些实施例中,所述视频接入组件还用于:若所述视频设备向所述视频接入组件提供标准格式的视频流,则将该视频流转发至所述视频存储组件;若所述视频设备向所述视频接入组件提供非标准格式的视频流,则先将该视频流转换为标准格式,再将该视频流转发至所述视频存储组件。
38.例如,所述视频接入组件在将所述视频设备接入后,会通过对应的接口向所述视频设备请求视频流。如图1所示,如果所述视频设备提供的是标准格式(如h.264视频编码格式)的视频流,那么所述视频接入组件直接将该视频流转发至所述视频存储组件;如果所述视频设备提供的是非标准格式(如h.264之外的格式)的视频流,那么所述视频接入组件先通过视频转码模块,利用cpu或gpu资源,将该视频流转换为标准格式,再将该视频流转发至所述视频存储组件。
39.需要说明的是,所述h.264视频编码格式仅为举例,也可以将其他格式作为视频流的标准格式。
40.在一些实施例中,所述视频存储组件用于按照画面组处理所述视频流,分别对每个画面组中的所有视频帧进行打包操作,生成对应的视频包。
41.在一些实施例中,所述视频存储组件用于按照画面组处理所述视频流,分别对每个画面组中的所有视频帧进行打包操作,添加包头信息,生成对应的视频包;其中,所述视频包的关键字包括该视频的点位编号、名称、时间等信息及其组合,所述视频包的元数据包括该视频的分辨率、帧率、码率等信息。
42.在一些实施例中,所述视频存储组件还用于将所述视频包存入对象存储系统。
43.例如,所述视频存储组件在接收到所述视频接入组件转发的视频流之后,将视频按照一个画面组(group of pictures)中所有的视频帧进行打包,并添加相关的信息包头。同时,将视频的点位编号、名称和时间信息等组合作为视频包的关键字(key),将视频的基础信息如分辨率、帧率、码率等信息作为视频包的元数据,一并存入对象存储系统。
44.在一些实施例中,如图3所示,利用所述视频管理系统进行视频存储的流程如下:所述视频接入组件向视频设备请求视频流,请求成功则所述视频接入组件收取来自所述视频设备的视频流,并将该视频流转发至所述视频存储组件;所述视频存储组件按照画面组(group of pictures)处理该视频流,分别对每个画面组中的所有视频帧进行打包操作,生成对应的视频包,并将所述视频包存入对象存储系统。
45.在一些实施例中,所述视频检索和读取组件用于根据所述检索和回放请求,从所述对象存储系统中获取对应的视频包。
46.在此,对象存储系统(object-based storage system)是综合了nas(network attached storage,网络附属存储)和san(storage area network,存储区域网络)的优点,同时具有san的高速直接访问和nas的数据共享等优势,提供了高可靠性、跨平台性以及安
全的数据共享的存储体系结构。
47.需要说明的是,本技术实施例主要采用对象存储系统,其他现有的或今后可能出现的存储体系结构如可适用于本技术,也应包含在本技术保护范围以内,并在此以引用方式包含于此。
48.在一些实施例中,所述视频检索和读取组件用于根据所述检索和回放请求中的点位编号、时间等信息,生成对应时间段内视频包的关键字前缀;从所述对象存储系统中获取所有包含该前缀的视频包的关键字,根据所述关键字的信息按照当前视频的播放速度,定时向所述对象存储系统请求对应的视频包。
49.例如,所述视频检索和读取组件在接收到客户端发送的检索和回放请求后,根据该请求中的点位和时间段信息,生成对应的时间段内视频包(如图2所示的视频文件包)的关键字(key)前缀,然后利用对象存储系统的列举功能,获取所有包含该前缀的视频包的关键字(key),然后根据关键字(key)信息按照当前视频的播放速度,定时向所述对象存储系统请求对应的视频包。所述视频检索和读取组件在获取到对应的视频包后,根据包头的信息,将视频画面组还原为一个个单独的视频帧并转发至所述视频分发组件。
50.在一些实施例中,所述视频分发组件用于从所述视频接入组件或者所述视频检索和读取组件接收所述视频流。如果用户通过所述客户端发起所述实时视频请求,则所述视频分发组件用于从所述视频接入组件接收所述视频流;如果用户通过所述客户端发起所述检索和回放请求,则所述视频分发组件用于从所述视频检索和读取组件接收所述视频流。
51.例如,所述视频分发组件在接收到所述视频接入组件或者所述视频检索和读取组件转发的视频流后,基于用户请求的分发协议不同,根据用户请求对应的分发协议对视频流进行打包,生成对应的视频包之后发送至客户端。
52.在此,所述视频分发组件支持多种分发协议,包括但不限于:rtsp(real time streaming protocol,实时流传输协议)、rtmp(real time messaging protocol,实时消息传输协议)、gb/t 28181、websocket、http-flv、hls(http live streaming,基于http的自适应码率流媒体传输协议)等。其中,rtsp、rtmp常用于pc客户端、ai智能算法分析等场景;gb/t 28181常用于视频系统的级联;websocket、http-flv常用于pc浏览器、手机app等,可以提供低延时的视频播放;hls虽然视频延迟较大,但兼容性好,可以在各种场景使用。由于所述视频分发组件支持多种分发协议,所述视频管理系统可以支持不同情况下的视频应用。
53.在一些实施例中,如图4所示,利用所述视频管理系统进行视频读取的流程如下:所述视频检索和读取组件在收到客户端发送的检索和回放请求后,从对象存储系统获取对应的视频包,根据所述视频包的包头信息解析出若干视频帧,将视频帧按顺序转发至所述视频分发组件;所述视频分发组件根据用户请求对应的分发协议对接收到的若干视频帧进行打包,生成对应的视频包,并将所述视频包发送至对应的客户端。
54.综上所述,本技术实施例提供的视频管理系统支持多种接入协议,显著地降低了视频系统接入的难度,并且可以将非标准格式的视频流转换为标准格式,为后续使用提供了统一的视频格式。本技术实施例提供的视频管理系统采用了对象存储系统进行视频文件存储,可以直接对接现有各种云存储,实现高性能大容量的视频存储。本技术实施例提供的视频管理系统支持多种视频播放协议,支持多种场景的应用,显著降低应用对接视频系统
的难度。
55.另外,本技术的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本技术的方法和/或技术方案。而调用本技术的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据程序指令运行的计算机设备的工作存储器中。在此,本技术的一些实施例提供了一种计算设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行前述本技术的多个实施例的方法和/或技术方案。
56.此外,本技术的一些实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现前述本技术的多个实施例的方法和/或技术方案。
57.需要注意的是,本技术可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本技术的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本技术的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本技术的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
58.对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其他的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
技术特征:1.一种基于对象存储的视频管理系统,其中,所述系统包括视频接入组件、视频存储组件、视频检索和读取组件、视频分发组件;所述视频接入组件用于获取视频流;所述视频存储组件用于处理所述视频流,生成对应的视频包;所述视频检索和读取组件用于在收到检索和回放请求后,获取对应的视频包,根据所述视频包的包头信息,将所述视频包转换成对应的视频流,并将所述视频流转发至所述视频分发组件;所述视频分发组件用于接收所述视频流,根据用户请求对应的分发协议对所述视频流进行打包操作,生成对应的视频包,并将所述视频包发送至对应的客户端。2.根据权利要求1所述的系统,其中,所述视频接入组件用于获取视频流,包括:所述视频接入组件用于对视频设备进行接入和控制,通过对应的接口向所述视频设备请求视频流。3.根据权利要求2所述的系统,其中,所述视频接入组件还用于:若所述视频设备向所述视频接入组件提供标准格式的视频流,则将该视频流转发至所述视频存储组件;若所述视频设备向所述视频接入组件提供非标准格式的视频流,则先将该视频流转换为标准格式,再将该视频流转发至所述视频存储组件。4.根据权利要求1所述的系统,其中,所述视频存储组件用于处理所述视频流,生成对应的视频包,包括:所述视频存储组件用于按照画面组处理所述视频流,分别对每个画面组中的所有视频帧进行打包操作,生成对应的视频包。5.根据权利要求4所述的系统,其中,所述视频存储组件还用于将所述视频包存入对象存储系统。6.根据权利要求5所述的系统,其中,所述视频检索和读取组件用于根据所述检索和回放请求,从所述对象存储系统中获取对应的视频包。7.根据权利要求4至6中任一项所述的系统,其中,所述视频存储组件用于按照画面组处理所述视频流,分别对每个画面组中的所有视频帧进行打包操作,生成对应的视频包,包括:所述视频存储组件用于按照画面组处理所述视频流,分别对每个画面组中的所有视频帧进行打包操作,添加包头信息,生成对应的视频包;其中,所述视频包的关键字包括该视频的点位编号、名称、时间等信息及其组合,所述视频包的元数据包括该视频的分辨率、帧率、码率等信息。8.根据权利要求7所述的系统,其中,所述视频检索和读取组件用于根据所述检索和回放请求,从所述对象存储系统中获取对应的视频包,包括:所述视频检索和读取组件用于根据所述检索和回放请求中的点位编号、时间等信息,生成对应时间段内视频包的关键字前缀;从所述对象存储系统中获取所有包含该前缀的视频包的关键字,根据所述关键字的信息按照当前视频的播放速度,定时向所述对象存储系统请求对应的视频包。9.根据权利要求1所述的系统,其中,所述用户请求包括:
实时视频请求;所述检索和回放请求。10.根据权利要求9所述的系统,其中,所述视频分发组件用于接收所述视频流,包括:如果用户通过所述客户端发起所述实时视频请求,则所述视频分发组件用于从所述视频接入组件接收所述视频流;如果用户通过所述客户端发起所述检索和回放请求,则所述视频分发组件用于从所述视频检索和读取组件接收所述视频流。
技术总结本申请的目的是提供一种基于对象存储的视频管理系统。该系统包括视频接入组件、视频存储组件、视频检索和读取组件、视频分发组件;其中,所述视频接入组件用于获取视频流;所述视频存储组件用于处理所述视频流,生成对应的视频包;所述视频检索和读取组件用于在收到检索和回放请求后,获取对应的视频包,根据所述视频包的包头信息,将所述视频包转换成对应的视频流,并将所述视频流转发至所述视频分发组件;所述视频分发组件用于接收所述视频流,根据用户请求对应的分发协议对所述视频流进行打包操作,生成对应的视频包,并将所述视频包发送至对应的客户端。该系统不仅容易与其他系统进行互联互通,而且还可以兼容多种视频播放客户端。客户端。客户端。
技术研发人员:唐佳 王夷 张剑 李东晓 吴翔
受保护的技术使用者:上海芯翌智能科技有限公司
技术研发日:2022.06.21
技术公布日:2022/11/1