CN105791431A - 一种在线分布式监控视频处理任务调度方法及装置 - Google Patents
一种在线分布式监控视频处理任务调度方法及装置 Download PDFInfo
- Publication number
- CN105791431A CN105791431A CN201610265658.4A CN201610265658A CN105791431A CN 105791431 A CN105791431 A CN 105791431A CN 201610265658 A CN201610265658 A CN 201610265658A CN 105791431 A CN105791431 A CN 105791431A
- Authority
- CN
- China
- Prior art keywords
- video data
- video
- kafka
- topic
- monitoring device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/71—Indexing; Data structures therefor; Storage structures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
- H04N5/917—Television signal processing therefor for bandwidth reduction
- H04N5/919—Television signal processing therefor for bandwidth reduction by dividing samples or signal segments, e.g. television lines, among a plurality of recording channels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Closed-Circuit Television Systems (AREA)
Abstract
本发明实施例公开了一种在线分布式监控视频处理任务调度方法及装置,应用于视频处理服务器,方法包括:获取每个监控设备采集的视频数据,基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存;基于spark streaming分布式流式处理方法读取封装后的视频数据,获取所述视频数据中的每个视频帧;对获取到的每个视频帧进行处理。应用本发明实施例,可以有效的提高系统可靠性和系统资源利用率。
Description
技术领域
本发明涉及视频处理技术领域,特别涉及一种在线分布式监控视频处理任务调度方法及装置。
背景技术
当前,进行视频监控的图像采集设备的个数呈爆发式增长,覆盖的范围不断扩大。大部分图像采集设备都具备较高的分辨率,这些的图像采集设备遍布各处,每天不间断地产生大规模的监控视频数据。面对如此大规模的视频数据,如何准确而高效的处理实时产生的视频数据,成为智能视频监控系统的挑战之一。在线智能监控视频处理系统作为智能视频监控系统的重要的一个子系统,负责对实时产生的视频流数据进行视频处理。
在传统的在线智能监控视频处理系统中,对视频数据进行处理的为视频处理服务器,监控视频处理系统包括多个视频处理服务器,每个视频服务器处理一个或多个采集设备监控采集的视频数据流分派给某个视频处理服务器。具体的,图像采集设备将采集的视频数据传输到指定视频处理服务器,视频处理服务器对视频数据进行解码,并对视频数据进行分析运算,如人脸识别,车辆识别以及车流量统计等。之后,将分析运算结果发送到中心数据库保存。
传统在线智能视频监控系统是以图像采集设备采集的视频数据作为资源调度单位,调度粒度大,每个视频处理服务器可处理的视频流有限,存在较大资源碎片从而导致资源利用率低。传统的在线智能监控视频处理系统缺少对视频流数据的保护措施,视频流读取和处理均在服务器上进行。当摄像头视频流数据流增大,服务器很有可能因负载过大等原因宕机。正在该服务器上处理的所有视频流数据将面临永久性丢失的情况,即使任务在其他服务器重新启动,所处理的视频流数据只能是当前时间点的数据,系统的可靠性差。
可见,在现有的在线智能监控视频处理系统中,资源利用率低,系统可靠性差。
发明内容
本发明实施例公开了一种在线分布式监控视频处理任务调度方法及装置,以提高监控视频处理系统的资源利用率和系统可靠性。
为达到上述目的,本发明实施例公开了一种在线分布式监控视频处理任务调度方法,包括:
获取每个监控设备采集的视频数据,基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存;
基于sparkstreaming分布式流式处理方法读取封装后的视频数据,获取所述视频数据中的每个视频帧;
对获取到的每个视频帧进行处理。
可选地,所述基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装包括:
将采集所述视频数据的监控设备的标识ID作为Kafka中的key值,将所述视频数据确定为所述Kafka中的value值;
确定所述key值的哈希值;
根据所述ID确定监控设备的应用场景,根据所述应用场景确定Kafka中的topic;
根据所述key值、value值对所述视频数据进行封装,并将封装后的视频数据存储到所述Kafka中topic的每个分区中,该topic的分区的partition的序号为将所述哈希值对预设的Kafka中每个topic的分区数量取余得到的结果。
可选地,所述基于sparkstreaming分布式流式处理方法读取封装后的视频数据包括:
采用分布式方式,针对Kafka每个topic的分区,依次读取每个分区中封装的视频数据。
可选地,所述获取所述视频数据中的每个视频帧包括:
根据封装的视频数据的key值,将相同key值的视频数据进行聚合;
对聚合后的视频数据进行解码,解析到所述视频数据中的每个视频帧。
可选地,所述方法还包括:
根据当前时间及所述起始时间,判断缓存所述视频数据的缓存时间长度是否达到设定时长阈值,如果是,删除缓存的所述视频数据。
为达到上述目的,本实施例还公开了一种在线分布式监控视频处理任务调度装置,应用于视频处理服务器,包括:
聚合模块,用于获取每个监控设备采集的视频数据,基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存;
处理模块,用于基于sparkstreaming分布式流式处理方法读取封装后的视频数据,获取所述视频数据中的每个视频帧,并对获取到的每个视频帧进行处理。
可选地,所述聚合模块具体用于:
将采集所述视频数据的监控设备的标识ID作为Kafka中的key值,将所述视频数据确定为所述Kafka中的value值;
确定所述key值的哈希值;
根据所述ID确定监控设备的应用场景,根据所述应用场景确定Kafka中的topic;根据所述key值、value值对所述视频数据进行封装,并将封装后的视频数据存储到所述Kafka每个topic的分区中,该topic的分区的partition的序号为将所述哈希值对预设的Kafka中每个topic的分区数量取余得到的结果。
可选地,所述处理模块包括:读取子模块和处理子模块:
所述读取子模块,用于采用分布式方式,根据Kafka每个topic的分区的partition的序号,依次读取每个分区封装的视频数据,获取所述视频数据中的每个视频帧;
所述处理子模块,用于对所述获取的视频数据中的每个视频帧进行处理。
可选地,所述读取子模块具体用于:
根据封装的视频数据的key值,将相同key值的视频数据进行聚合;
对聚合后的视频数据进行解码,解析到所述视频数据中的每个视频帧。
可选地,所述装置还包括:
判断模块,用于根据当前时间及所述起始时间,判断缓存所述视频数据的缓存时间长度是否达到设定时长阈值,如果是,则删除缓存的所述视频数据。
由上述技术方案可知,本发明实施例提供了一种监控视频的处理方法及装置,应用于视频处理服务器,该方法中,获取了每个监控设备采集的视频数据,基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存;基于sparkstreaming分布式流式处理方法读取封装后的视频数据,获取所述视频数据中的每个视频帧;对获取到的每个视频帧进行处理。
由于本发明实施例中基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存,因此保证了任务失败时数据不丢失,提高了系统可靠性,由于本发明实施例中对获取到的每个视频帧进行处理,减小了调度单元粒度,因此提高了系统资源利用率。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种在线分布式监控视频处理任务调度方法的流程示意图;
图2为本实施例提供的一种在线分布式监控视频处理任务调度方法中的基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装的流程示意图;
图3为一种应用本发明实施例中在线分布式监控视频处理任务调度方法的在线分布式监控视频处理系统的结构示意图;
图4为本发明实施例提供的一种在线分布式监控视频处理任务调度装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种在线分布式监控视频处理任务调度方法及装置,应用于视频处理服务器,以下进行详细说明。
图1为本发明实施例提供的一种在线分布式监控视频处理任务调度方法的流程示意图,该方法应用于视频处理服务器,包括以下步骤:
步骤S101:获取每个监控设备采集的视频数据,基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存。
具体地,所述监控设备可以包括但不限于用于拍摄路口交通状况的摄像头或商场中的监控摄像头,所述监控设备可以配置录音装置。所述视频数据包括监控设备拍摄的画面图像信息,如果监控设备配置有录音装置,则视频数据还包括声音信息。Kafka分布式消息队列包括producer、consumer和broker,producer和consumer为客户端,提供一些API,可以向broker发布消息、消费消息,broker为服务器端,服务器端提供消息的存储等功能。Kafka分布式消息队列中的消息包括topic、partition,topic为一类主题,partition为topic中的分区,创建topic时可以指定分区的数量。
Kafka的整体架构非常简单,是显式分布式架构,producer、consumer和broker都可以有多个,producer发布消息到broker中的topic,consumer来消费broker中的消息,producer根据指定的partition方法,将消息发布到指定topic的partition里面,broker接收到producer发过来的消息后,将其持久化到硬盘,并保留消息到指定的时长。在本发明实施例中,基于Kafka分布式消息队列,可以并行获取多个监控设备采集的视频数据,然后将获取的每个监控设备采集的视频数据封装到Kafka分布式消息队列中。封装过程即为producer将获取的每个监控设备采集的视频数据发布到broker中的topic中的过程。broker接收到producer发布过来的视频数据后,将其持久化到硬盘,以供consumer来消费,并保留该视频数据到指定的时长。
步骤S102:基于sparkstreaming分布式流式处理方法读取封装后的视频数据,获取所述视频数据中的每个视频帧。
sparkstreaming是构建在spark上处理stream数据的框架,其与Kafka结合使用,其作为Kafka中的consumer在Kafka中的broker中消费(获取)消息。
具体地,采用分布式方式,针对Kafka每个topic的分区,依次读取每个分区中封装的视频数据;根据封装到Kafka中的视频数据的key值,将相同key值的视频数据进行聚合;对聚合后的视频数据进行解码,解析到所述视频数据中的每个视频帧。
具体地,根据Kafka中的topic的分区数量,设置sparkstreaming中读取线程的线程数,所述线程数的数量等于所述topic的分区(partition)数量,由于一台主机的网络IO有限制,当线程数很多时,在实际应用中可将这些线程分散在多台主机上,读取线程按topic中分区partition的序号,依次读取分区上的视频数据。读取线程根据读取的视频数据的key值,对该分区上的视频数据中的value值对应的视频数据进行聚合,将相同key值的视频数据进行聚合,之后,解码出一系列视频帧,视频帧的保存格式为<监控设备ID+视频帧时间戳,视频帧>,最后将解码出的视频帧存储到sparkstreaming集群中等待处理,对视频数据的聚合和解码为现有技术,本发明实施例不进行赘述。
步骤S103:对获取到的每个视频帧进行处理。
具体地,对获取的视频帧可以进行人脸识别或车辆识别等处理。获取到每个视频帧后,对视频帧进行相应的处理属于现有技术,本发明实施例中不再赘述。
具体地,图2为本实施例提供的一种在线分布式监控视频处理任务调度方法中的基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装的流程示意图,包括以下步骤:
步骤S201:将采集所述视频数据的监控设备的标识ID作为Kafka中的key值,将所述视频数据确定为所述Kafka中的value值。
具体地,所述标识ID为监控设备固有属性,其具有唯一性,一个监控设备对应一个标识ID,也可以使用其他具有唯一性的信息作为Kafka中的key值,将所述视频数据确定为所述Kafka中的value值。
步骤S202:确定所述key值的哈希值。
确定哈希值的过程属于现有技术,本发明实施例中不再赘述。
步骤S203:根据所述ID确定监控设备的应用场景,根据所述应用场景确定Kafka中的topic。
具体地,topic为一类主题,一类主题的topic对应一个应用场景,监控设备的应用场景可以包括但不限于路口监控、商场监控等。因为每台监控设备的安装位置固定,其所在应用场景也确定,因此可以预先保存每个监控设备ID与其应用场景的对应关系。当获取了相应ID的监控设备的视频数据后,根据该监控设备的ID,及保存的监控设备ID与其应用场景的对应关系,确定该ID的监控设备的应用场景,并根据保存的应用场景与topic的对应关系,确定该应用场景对应的topic。
步骤S204:根据所述key值、value值对所述视频数据进行封装,并将封装后的视频数据存储到所述Kafka中topic的每个分区partition中。
本发明实施例采用哈希计算方法将每个监控设备的视频数据存储到对应的partition中。
具体地,根据确定的所述key值的哈希值对指定的Kafka中每个topic的分区数量取余,得到的结果即为该topic的分区partition的序号,即把所述key值对应的监控设备的视频数据对应存储到该序号下的partition中。
例如,在实际应用中,采用具有4个监控摄像头的视频处理系统来监控各路口交通状况,获取每个监控设备采集的视频数据,并基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存。
首先,将每个监控摄像头的ID作为Kafka中的key值并确定所述key值的哈希值,将采集的视频数据作为Kafka中的value值。Key和value的数据格式分别为String和Bytes。然后,根据监控摄像头的ID确定监控摄像头应用在路口用于监控交通状况,根据应用场景确定Kafka中的topic为路口监控。根据所述key值、value值对每个监控摄像头采集的视频数据进行封装,并将封装后的视频数据存储到所述Kafka中topic的每个分区partition中。
本实施例中,topic数量为1个,假设创建topic时指定分区partition的数量为3个,采用哈希计算方法将每个监控设备的视频数据存储到对应的partition中,根据确定的所述key值的哈希值对指定的Kafka中topic的分区数量3取余,假设第1个监控摄像头的key值确定的哈希值对3取余得到余数1,第2个监控摄像头的key值确定的哈希值对3取余得到余数2,第3个监控摄像头的key值确定的哈希值对3取余得到余数3,第4个监控摄像头的key值确定的哈希值对3取余得到余数1,则有结果:第1个监控摄像头的视频数据对应储存到topic的第1个分区partition1中,第2个监控摄像头的视频数据对应储存到topic的第2个分区partition2中,第3个监控摄像头的视频数据对应储存到topic的第3个分区partition3中,第4个监控摄像头的视频数据对应储存到topic的第1个分区partition1中。
然后,根据Kafka中的topic的分区数量为3个,设置sparkstreaming中读取线程的线程数为3,读取线程按topic中分区partition的序号,依次读取分区上的视频数据。然后,读取线程根据读取的视频数据的key值,将相同key值的视频数据进行聚合,之后,解码出一系列视频帧,最后将解码出的视频帧存储到sparkstreaming集群中进行人脸识别或车辆识别等处理。或者,在本发明实施例中,创建topic时可以指定分区partition的数量,然后将每个监控设备的视频数据存储到对应的partition中。为了保证每个partition中存储的视频数据的数据量一致,并且准确高效的查找到每个监控设备的视频数据的位置,监控设备与partition之间存在对应关系,例如,当topic指定的partition的数量与监控设备的数量相同时,每个监控设备的视频数据一一对应的存储到每个partition中,当topic指定的partition的数量与监控设备的数量不相同时,可以建立监控设备与partition的对应关系,每个监控设备将其数据存储到固定的partition中。
例如,topic中包括partition1、partition2和partition3,监控设备包括A、B、C、D,E,则建立监控设备与partition的对应关系为,监控设备A采集的视频数据对应存储到partition1中,监控设备B采集的视频数据对应存储到partition2中,监控设备C采集的视频数据对应存储到partition3中,监控设备D采集的视频数据对应存储到partition3中,监控设备E采集的视频数据对应存储到partition2中。可见,应用本发明实施例,基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存,保证了任务失败时数据不丢失,提高了系统可靠性,以视频帧为监控视频处理任务调度的基本数据单元,减小了调度单元粒度,提高了系统资源利用率。
下面以一个具体的实施例进行说明。如图3所示,图3为一种应用本发明实施例中在线分布式监控视频处理任务调度方法的在线分布式监控视频处理系统的结构示意图,包括:视频流采集模块310、基于Kafka视频流聚合模块320、基于sparkstreaming视频流处理模块330、基于Hbase数据存储模块340以及基于Web的用户查询模块350,其中,基于sparkstreaming的视频流处理模块330包括视频流获取子模块331和视频流处理子模块332。
具体地,视频流采集模块310采集各摄像头采集视频数据,并将采集的视频数据发送到基于Kafka视频流聚合模块320中。
基于Kafka视频流聚合模块320将获取的每个摄像头采集的视频数据进行封装并缓存,其中,每个摄像头即为本发明实施例中的监控设备,其封装并缓存视频数据方法为本发明实施例所公开的基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存的方法,在此不再赘述。
基于sparkstreaming视频流处理模块330从基于Kafka视频流聚合模块320中按照预设规则获取视频数据,并聚合再解码成视频帧,之后对解码的视频帧进行处理,其中,视频流获取子模块331按照预设规则获取视频数据,并聚合再解码成视频帧;视频流处理子模块332对解码后的视频帧进行处理。其中,按照预设规则获取视频数据的方法即为本发明实施例所公开的基于sparkstreaming分布式流式处理方法读取封装后的视频数据,获取所述视频数据中的每个视频帧,对获取到的每个视频帧进行处理的方法,在此不再赘述。
基于Hbase数据存储模块340对视频流处理子模块332处理后的视频数据进行存储,具体地,可以存储的数据包括但不限于摄像头元数据、车辆元数据及其他数据。
基于Web的用户查询模块350对视频流处理子模块332处理后的视频数据进行存储以供用户查询。
本发明实施例还包括一种在线分布式监控视频处理任务调度的装置,图4为本发明实施例提供的一种在线分布式监控视频处理任务调度装置的结构示意图,该装置应用于视频处理服务器,包括:
聚合模块410,用于获取每个监控设备采集的视频数据,基于分布式消息队列Kafka对每个监控设备采集的视频数据进行封装并缓存。
具体地,所述监控设备可以包括但不限于用于拍摄路口交通状况的摄像头或商场中的监控摄像头,所述监控设备可以配置录音装置。所述视频数据包括监控设备拍摄的画面图像信息,如果监控设备配置有录音装置,则视频数据还包括声音信息。Kafka分布式消息队列包括producer、consumer和broker,producer和consumer为客户端,提供一些API,可以向broker发布消息、消费消息,broker为服务器端,服务器端提供消息的存储等功能。Kafka分布式消息队列中的消息包括topic、partition,topic为一类主题,partition为topic中的分区,创建topic时可以指定分区的数量。
Kafka的整体架构非常简单,是显式分布式架构,producer、consumer和broker都可以有多个,producer发布消息到broker中的topic,consumer来消费broker中的消息,producer根据指定的partition方法,将消息发布到指定topic的partition里面,broker接收到producer发过来的消息后,将其持久化到硬盘,并保留消息到指定的时长。在本发明实施例中,可以获取多个监控设备采集的视频数据,然后将获取的每个监控设备采集的视频数据封装到Kafka分布式消息队列中。封装过程即为producer将获取的每个监控设备采集的视频数据发布到broker中的topic中的过程。broker接收到producer发过来的视频数据后,将其持久化到硬盘,以供consumer来消费,并保留消息到指定的时长。
具体地,聚合模块410用于:
将采集所述视频数据的监控设备的标识ID作为Kafka中的key值,将所述视频数据确定为所述Kafka中的value值。
具体地,所述标识ID为监控设备固有属性,其具有唯一性,一个监控设备对应一个标识ID,也可以使用其他具有唯一性的信息作为Kafka中的key值,当所述视频数据很多时,可以将所述视频视频数据分成几小段视频数据,将每个小段视频数据确定为所述Kafka中的value值。
确定所述key值的哈希值。
确定哈希值的过程属于现有技术,本发明实施例中不再赘述。
根据所述ID确定监控设备的应用场景,根据所述应用场景确定Kafka中的topic。
具体地,topic为一类主题,一类主题的topic对应一个应用场景,监控设备的应用场景可以包括但不限于路口监控、商场监控等。因为每台监控设备的安装位置固定,其所在应用场景也确定,因此可以预先保存每个监控设备ID与其应用场景的对应关系。当获取了相应ID的监控设备的视频数据后,根据该监控设备的ID,及保存的监控设备ID与其应用场景的对应关系,确定该ID的监控设备的应用场景,并根据保存的应用场景与topic的对应关系,确定该应用场景对应的topic。
根据所述key值、value值对所述视频数据进行封装,并将封装后的视频数据存储到所述Kafka每个topic的分区中。
具体地,根据确定的所述key值的哈希值对指定的Kafka中每个topic的分区数量取余,得到的结果即为该topic的分区partition的序号,即把所述key值对应的监控设备的视频数据对应存储到该序号下的partition中。
处理模块420,用于基于分布式流式sparkstreaming处理方法读取封装后的视频数据,获取所述视频数据中的每个视频帧,并对获取到的每个视频帧进行处理。
sparkstreaming是构建在spark上处理stream数据的框架,其与Kafka结合使用,其作为Kafka中的consumer在Kafka中的broker中消费(获取)消息。
具体地,处理模块420包括:读取子模块421和处理子模块422。
具体地,读取子模块421,用于:
具体地,采用分布式方式,针对Kafka每个topic的分区,依次读取每个分区中封装的视频数据;根据封装到Kafka中的视频数据的key值,将相同key值的视频数据进行聚合;对聚合后的视频数据进行解码,解析到所述视频数据中的每个视频帧。
具体地,读取子模块421具体用于:
根据封装的视频数据的key值,将相同key值的视频数据进行聚合;对聚合后的视频数据进行解码,解析到所述视频数据中的每个视频帧。
具体地,根据Kafka中的topic的分区数量,设置sparkstreaming中读取线程的线程数,所述线程数的数量等于所述topic的分区数量,由于一台主机的网络IO有限制,当线程数很多时,在实际应用中可将这些线程分散在多台主机上,读取线程按topic中分区partition的序号,依次读取分区上的视频数据。读取线程根据读取的视频数据的key值,对该分区上的视频数据中的value值对应的视频数据进行聚合,将相同key值的视频数据进行聚合,之后,解码出一系列视频帧,视频帧的保存格式为<监控设备ID+视频帧时间戳,视频帧>,最后将解码出的视频帧存储到sparkstreaming集群中等待处理,对视频数据的聚合和解码为现有技术,本发明实施例不进行赘述。
所述处理子模块422,用于对所述获取的视频数据中的每个视频帧进行处理。
具体地,对获取的视频帧可以进行人脸识别或车辆识别等处理。获取到每个视频帧后,对视频帧进行相应的处理属于现有技术,本发明实施例中不再赘述。
具体地,该装置还包括判断模块(图4中未示出),用于根据当前时间及所述起始时间,判断缓存所述视频数据的缓存时间长是否达到设定时长阈值,如果是,则删除缓存的所述视频数据
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种在线分布式监控视频处理任务调度方法,其特征在于,应用于视频处理服务器,所述方法包括:
获取每个监控设备采集的视频数据,基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存;
基于sparkstreaming分布式流式处理方法读取封装后的视频数据,获取所述视频数据中的每个视频帧;
对获取到的每个视频帧进行处理。
2.根据权利要求1所述的方法,其特征在于,所述基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装包括:
将采集所述视频数据的监控设备的标识ID作为Kafka中的key值,将所述视频数据确定为所述Kafka中的value值;
确定所述key值的哈希值;
根据所述ID确定监控设备的应用场景,根据所述应用场景确定Kafka中的topic;
根据所述key值、value值对所述视频数据进行封装,并将封装后的视频数据存储到所述Kafka中topic的每个分区中,该topic的分区的partition的序号为将所述哈希值对预设的Kafka中每个topic的分区数量取余得到的结果。
3.根据权利要求1所述的方法,其特征在于,所述基于sparkstreaming分布式流式处理方法读取封装后的视频数据包括:
采用分布式方式,针对Kafka每个topic的分区,依次读取每个分区中封装的视频数据。
4.根据权利要求1或3所述的方法,其特征在于,所述获取所述视频数据中的每个视频帧包括:
根据封装的视频数据的key值,将相同key值的视频数据进行聚合;
对聚合后的视频数据进行解码,解析到所述视频数据中的每个视频帧。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据当前时间及所述起始时间,判断缓存所述视频数据的缓存时间长度是否达到设定时长阈值,如果是,删除缓存的所述视频数据。
6.一种在线分布式监控视频处理任务调度装置,其特征在于,应用于视频处理服务器,所述装置包括:
聚合模块,用于获取每个监控设备采集的视频数据,基于Kafka分布式消息队列对每个监控设备采集的视频数据进行封装并缓存;
处理模块,用于基于sparkstreaming分布式流式处理方法读取封装后的视频数据,获取所述视频数据中的每个视频帧,并对获取到的每个视频帧进行处理。
7.根据权利要求6所述的装置,其特征在于,所述聚合模块具体用于:
将采集所述视频数据的监控设备的标识ID作为Kafka中的key值,将所述视频数据确定为所述Kafka中的value值;
确定所述key值的哈希值;
根据所述ID确定监控设备的应用场景,根据所述应用场景确定Kafka中的topic;根据所述key值、value值对所述视频数据进行封装,并将封装后的视频数据存储到所述Kafka每个topic的分区中,该topic的分区的partition的序号为将所述哈希值对预设的Kafka中每个topic的分区数量取余得到的结果。
8.根据权利要求6所述的装置,其特征在于,所述处理模块包括:读取子模块和处理子模块:
所述读取子模块,用于采用分布式方式,根据Kafka每个topic的分区的partition的序号,依次读取每个分区封装的视频数据,获取所述视频数据中的每个视频帧;
所述处理子模块,用于对所述获取的视频数据中的每个视频帧进行处理。
9.根据权利要求8所述的装置,其特征在于,所述读取子模块具体用于:
根据封装的视频数据的key值,将相同key值的视频数据进行聚合;
对聚合后的视频数据进行解码,解析到所述视频数据中的每个视频帧。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
判断模块,用于根据当前时间及所述起始时间,判断缓存所述视频数据的缓存时间长度是否达到设定时长阈值,如果是,则删除缓存的所述视频数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610265658.4A CN105791431B (zh) | 2016-04-26 | 2016-04-26 | 一种在线分布式监控视频处理任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610265658.4A CN105791431B (zh) | 2016-04-26 | 2016-04-26 | 一种在线分布式监控视频处理任务调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105791431A true CN105791431A (zh) | 2016-07-20 |
CN105791431B CN105791431B (zh) | 2019-02-19 |
Family
ID=56398657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610265658.4A Active CN105791431B (zh) | 2016-04-26 | 2016-04-26 | 一种在线分布式监控视频处理任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105791431B (zh) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407026A (zh) * | 2016-09-19 | 2017-02-15 | 北京集奥聚合科技有限公司 | 一种在流式计算中消息id的生成方法 |
CN106504242A (zh) * | 2016-10-25 | 2017-03-15 | Tcl集团股份有限公司 | 目标检测方法及系统 |
CN106878415A (zh) * | 2017-02-15 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 数据消费的负载均衡方法及装置 |
CN106937092A (zh) * | 2017-04-11 | 2017-07-07 | 北京邮电大学 | 一种分布式计算平台中视频数据迁移方法及装置 |
CN107689999A (zh) * | 2017-09-14 | 2018-02-13 | 北纬通信科技南京有限责任公司 | 一种云平台全自动计算方法及装置 |
CN108255628A (zh) * | 2016-12-29 | 2018-07-06 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
CN108762921A (zh) * | 2018-05-18 | 2018-11-06 | 电子科技大学 | 一种Spark集群系统的在线优化分区的任务调度方法及装置 |
CN109002484A (zh) * | 2018-06-25 | 2018-12-14 | 北京明朝万达科技股份有限公司 | 一种用于顺序消费数据的方法及系统 |
CN109168031A (zh) * | 2018-11-06 | 2019-01-08 | 杭州云英网络科技有限公司 | 流媒体推送方法及装置、流媒体平台 |
CN109218385A (zh) * | 2018-06-28 | 2019-01-15 | 西安华为技术有限公司 | 处理数据的方法和装置 |
CN109493076A (zh) * | 2018-11-09 | 2019-03-19 | 武汉斗鱼网络科技有限公司 | 一种Kafka消息唯一消费方法、系统、服务器及存储介质 |
CN109684080A (zh) * | 2018-12-10 | 2019-04-26 | 平安科技(深圳)有限公司 | 集中式任务调度方法、系统及存储介质 |
CN109922315A (zh) * | 2019-03-01 | 2019-06-21 | 西安电子科技大学 | 一种基于Spark与OpenCV的实时视频行为分析方法 |
CN110019240A (zh) * | 2017-12-29 | 2019-07-16 | 中国移动通信集团北京有限公司 | 一种业务数据交互方法、装置及系统 |
CN110362713A (zh) * | 2019-07-12 | 2019-10-22 | 四川长虹电子系统有限公司 | 基于Spark Streaming的视频监控预警方法及系统 |
CN110716813A (zh) * | 2019-09-17 | 2020-01-21 | 贝壳技术有限公司 | 数据流处理方法、装置、可读存储介质及处理器 |
CN110738692A (zh) * | 2018-07-20 | 2020-01-31 | 广州优亿信息科技有限公司 | 一种基于spark集群的智能视频识别方法 |
CN110881133A (zh) * | 2019-10-25 | 2020-03-13 | 富盛科技股份有限公司 | 一种视频播放方法和设备 |
CN111126933A (zh) * | 2019-11-11 | 2020-05-08 | 中盈优创资讯科技有限公司 | Kafka生产和消费进度监控方法及装置 |
CN111225024A (zh) * | 2019-11-22 | 2020-06-02 | 北京旷视科技有限公司 | 大体积数据的传输方法、系统、装置、电子设备及计算机可读存储介质 |
CN111314350A (zh) * | 2020-02-19 | 2020-06-19 | 深圳中兴网信科技有限公司 | 图像存储系统、存储方法、调用系统和调用方法 |
CN112434063A (zh) * | 2020-11-03 | 2021-03-02 | 中国南方电网有限责任公司 | 一种基于时间序列数据库的监控数据的处理方法 |
CN112433909A (zh) * | 2020-11-03 | 2021-03-02 | 中国南方电网有限责任公司 | 一种基于kafka的实时监控数据的处理方法 |
CN112541411A (zh) * | 2020-11-30 | 2021-03-23 | 中国工商银行股份有限公司 | 线上视频反欺诈识别方法及装置 |
CN112561795A (zh) * | 2020-12-02 | 2021-03-26 | 济南浪潮高新科技投资发展有限公司 | 基于Spark和OpenCV的实时生成全景图实现系统及方法 |
CN112966642A (zh) * | 2021-03-23 | 2021-06-15 | 云账户技术(天津)有限公司 | 一种人脸识别的方法、系统及流处理平台 |
CN115208930A (zh) * | 2022-04-21 | 2022-10-18 | 福州市小唐小能信息科技有限公司 | 一种基于Kappa架构的监控系统及监控方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070038900A1 (en) * | 2005-08-10 | 2007-02-15 | Alcatel | System with executing nodes for executing schedules |
-
2016
- 2016-04-26 CN CN201610265658.4A patent/CN105791431B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070038900A1 (en) * | 2005-08-10 | 2007-02-15 | Alcatel | System with executing nodes for executing schedules |
Non-Patent Citations (1)
Title |
---|
周建宁,徐晓东,蔡岗: "流式计算在交通管理中应用研究", 《智能交通》 * |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407026A (zh) * | 2016-09-19 | 2017-02-15 | 北京集奥聚合科技有限公司 | 一种在流式计算中消息id的生成方法 |
CN106504242A (zh) * | 2016-10-25 | 2017-03-15 | Tcl集团股份有限公司 | 目标检测方法及系统 |
CN108255628A (zh) * | 2016-12-29 | 2018-07-06 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
CN106878415A (zh) * | 2017-02-15 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 数据消费的负载均衡方法及装置 |
CN106878415B (zh) * | 2017-02-15 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 数据消费的负载均衡方法及装置 |
CN106937092A (zh) * | 2017-04-11 | 2017-07-07 | 北京邮电大学 | 一种分布式计算平台中视频数据迁移方法及装置 |
CN107689999A (zh) * | 2017-09-14 | 2018-02-13 | 北纬通信科技南京有限责任公司 | 一种云平台全自动计算方法及装置 |
CN110019240B (zh) * | 2017-12-29 | 2021-11-09 | 中国移动通信集团北京有限公司 | 一种业务数据交互方法、装置及系统 |
CN110019240A (zh) * | 2017-12-29 | 2019-07-16 | 中国移动通信集团北京有限公司 | 一种业务数据交互方法、装置及系统 |
CN108762921A (zh) * | 2018-05-18 | 2018-11-06 | 电子科技大学 | 一种Spark集群系统的在线优化分区的任务调度方法及装置 |
CN109002484A (zh) * | 2018-06-25 | 2018-12-14 | 北京明朝万达科技股份有限公司 | 一种用于顺序消费数据的方法及系统 |
CN109002484B (zh) * | 2018-06-25 | 2020-08-07 | 北京明朝万达科技股份有限公司 | 一种用于顺序消费数据的方法及系统 |
CN109218385A (zh) * | 2018-06-28 | 2019-01-15 | 西安华为技术有限公司 | 处理数据的方法和装置 |
CN109218385B (zh) * | 2018-06-28 | 2021-08-03 | 西安华为技术有限公司 | 处理数据的方法和装置 |
CN110738692A (zh) * | 2018-07-20 | 2020-01-31 | 广州优亿信息科技有限公司 | 一种基于spark集群的智能视频识别方法 |
CN109168031A (zh) * | 2018-11-06 | 2019-01-08 | 杭州云英网络科技有限公司 | 流媒体推送方法及装置、流媒体平台 |
CN109493076B (zh) * | 2018-11-09 | 2022-06-17 | 武汉斗鱼网络科技有限公司 | 一种Kafka消息唯一消费方法、系统、服务器及存储介质 |
CN109493076A (zh) * | 2018-11-09 | 2019-03-19 | 武汉斗鱼网络科技有限公司 | 一种Kafka消息唯一消费方法、系统、服务器及存储介质 |
CN109684080A (zh) * | 2018-12-10 | 2019-04-26 | 平安科技(深圳)有限公司 | 集中式任务调度方法、系统及存储介质 |
CN109922315A (zh) * | 2019-03-01 | 2019-06-21 | 西安电子科技大学 | 一种基于Spark与OpenCV的实时视频行为分析方法 |
CN110362713A (zh) * | 2019-07-12 | 2019-10-22 | 四川长虹电子系统有限公司 | 基于Spark Streaming的视频监控预警方法及系统 |
CN110362713B (zh) * | 2019-07-12 | 2023-06-06 | 四川长虹云数信息技术有限公司 | 基于Spark Streaming的视频监控预警方法及系统 |
CN110716813A (zh) * | 2019-09-17 | 2020-01-21 | 贝壳技术有限公司 | 数据流处理方法、装置、可读存储介质及处理器 |
CN110881133A (zh) * | 2019-10-25 | 2020-03-13 | 富盛科技股份有限公司 | 一种视频播放方法和设备 |
CN110881133B (zh) * | 2019-10-25 | 2022-03-29 | 富盛科技股份有限公司 | 一种视频播放方法和设备 |
CN111126933A (zh) * | 2019-11-11 | 2020-05-08 | 中盈优创资讯科技有限公司 | Kafka生产和消费进度监控方法及装置 |
CN111126933B (zh) * | 2019-11-11 | 2023-09-29 | 中盈优创资讯科技有限公司 | Kafka生产和消费进度监控方法及装置 |
CN111225024A (zh) * | 2019-11-22 | 2020-06-02 | 北京旷视科技有限公司 | 大体积数据的传输方法、系统、装置、电子设备及计算机可读存储介质 |
CN111314350A (zh) * | 2020-02-19 | 2020-06-19 | 深圳中兴网信科技有限公司 | 图像存储系统、存储方法、调用系统和调用方法 |
CN112433909A (zh) * | 2020-11-03 | 2021-03-02 | 中国南方电网有限责任公司 | 一种基于kafka的实时监控数据的处理方法 |
CN112434063A (zh) * | 2020-11-03 | 2021-03-02 | 中国南方电网有限责任公司 | 一种基于时间序列数据库的监控数据的处理方法 |
CN112541411A (zh) * | 2020-11-30 | 2021-03-23 | 中国工商银行股份有限公司 | 线上视频反欺诈识别方法及装置 |
CN112561795A (zh) * | 2020-12-02 | 2021-03-26 | 济南浪潮高新科技投资发展有限公司 | 基于Spark和OpenCV的实时生成全景图实现系统及方法 |
CN112966642A (zh) * | 2021-03-23 | 2021-06-15 | 云账户技术(天津)有限公司 | 一种人脸识别的方法、系统及流处理平台 |
CN115208930A (zh) * | 2022-04-21 | 2022-10-18 | 福州市小唐小能信息科技有限公司 | 一种基于Kappa架构的监控系统及监控方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105791431B (zh) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105791431A (zh) | 一种在线分布式监控视频处理任务调度方法及装置 | |
CN110019240B (zh) | 一种业务数据交互方法、装置及系统 | |
US9712835B2 (en) | Video encoding system and method | |
CN106227899A (zh) | 一种面向物联网大数据的存储和查询方法 | |
CN104301671B (zh) | Hdfs中基于事件密集度的交通监控视频存储方法 | |
CN108021809A (zh) | 一种数据处理方法及系统 | |
CN104506950A (zh) | 网络流媒体播放中的多线程下载方法、装置及下载设备 | |
CN111935663B (zh) | 传感器数据流的处理方法、装置、介质及电子设备 | |
Jayasena et al. | Multi-modal multimedia big data analyzing architecture and resource allocation on cloud platform | |
US20170287104A1 (en) | Dynamic memory allocation in a behavioral recognition system | |
CN107155093A (zh) | 一种视频预览方法、装置及设备 | |
CN110505444A (zh) | 基于大数据的安防监控系统 | |
CN109587511A (zh) | 多设备视频直播方法、设备、系统及存储介质 | |
CN106599120A (zh) | 基于流处理框架的数据处理方法及装置 | |
CN104811646A (zh) | 基于连续存储模型的多视频流数据并发调制及缓冲的存储方法 | |
US20140358996A1 (en) | Distributed encoding and decoding system, method, and device | |
Ma et al. | A retrieval optimized surveillance video storage system for campus application scenarios | |
US11012696B2 (en) | Reducing an amount of storage used to store surveillance videos | |
Wang et al. | Design and implementation of a high-performance stream-oriented big data processing system | |
CN206149401U (zh) | 一种基于大数据架构的人脸识别监控系统 | |
CN205693815U (zh) | 一种超高清视频传输和存储系统 | |
Zhang et al. | Efficient online surveillance video processing based on spark framework | |
WO2021009597A1 (en) | A system and a method for streaming videos by creating object urls at client | |
CN106998436B (zh) | 录像备份方法及装置 | |
CN103533353A (zh) | 一种近似视频编码系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |