CN115767179A - 视频流处理方法、系统、电子设备和存储介质 - Google Patents
视频流处理方法、系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115767179A CN115767179A CN202211393712.5A CN202211393712A CN115767179A CN 115767179 A CN115767179 A CN 115767179A CN 202211393712 A CN202211393712 A CN 202211393712A CN 115767179 A CN115767179 A CN 115767179A
- Authority
- CN
- China
- Prior art keywords
- video stream
- stream processing
- task
- processing
- address
- 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.)
- Pending
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开提供了一种视频流处理方法、视频流处理装置、视频流任务管理装置、媒体服务器、视频流处理系统、电子设备、存储介质和程序产品,涉及图像处理技术领域,尤其涉及人工智能、计算机视觉技术领域。具体实现方案为:该方法应用于视频流处理系统的视频流处理装置,所述视频流处理系统还包括视频流任务管理装置,所述方法包括:加载计算图,其中,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑;获取所述视频流任务管理装置分发的视频流处理任务;基于所述计算图处理所述视频流处理任务。本公开可以提高系统性能和开发效率。
Description
技术领域
本公开涉及图像处理技术领域,尤其涉及人工智能、计算机视觉技术领域,具体涉及一种视频流处理方法、视频流处理装置、视频流任务管理装置、媒体服务器、视频流处理系统、电子设备、存储介质和程序产品。
背景技术
视频内容遍布我们生活的各个角落,在我们的智能手机、台式机、智能电视、各类型摄像头中,每天在网络上流式传输的大量数据。
在人工智能时代,计算机视觉技术是其研究的分支之一,它能够在图像及图像描述之间建立映射关系,从而能够通过数字图像处理和分析来理解视频画面中的内容。因此,视频流与计算机视觉相结合,逐渐成为视频流处理的主要应用方式之一。
发明内容
本公开提供了一种视频流处理方法、视频流处理装置、视频流任务管理装置、媒体服务器、视频流处理系统、电子设备、存储介质和程序产品。
根据本公开的一方面,提供了一种视频流处理方法,应用于视频流处理系统的视频流处理装置,所述视频流处理系统还包括视频流任务管理装置,所述方法包括:
加载计算图,其中,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑;
获取所述视频流任务管理装置分发的视频流处理任务;
基于所述计算图处理所述视频流处理任务。
根据本公开的另一方面,提供了一种视频流处理方法,应用于视频流处理系统的视频流任务管理装置,所述视频流处理系统还包括视频流处理装置,所述方法包括:
将视频流处理任务分发至所述视频流处理装置,其中,所述视频流处理装置加载有计算图,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑,所述视频流处理装置用于基于所述计算图处理所述视频流处理任务。
根据本公开的另一方面,提供了一种视频流处理方法,应用于视频流处理系统的媒体服务器,所述视频流处理系统还包括视频流任务管理装置和视频流处理装置,所述方法包括:
获取来自所述视频流任务管理装置的注册信息,所述注册信息用于注册视频流处理任务对应的视频流地址;
根据所述视频流地址获取所述视频流处理任务对应的视频流;
生成所述视频流处理任务对应的视频流的内网地址,并将所述内网地址发送至所述视频流处理装置,;
其中,所述视频流处理装置用于获取所述视频流任务管理装置分发的视频流处理任务,根据所述内网地址获取所述视频流处理任务对应的视频流,并利用所述视频流处理装置基于加载的计算图处理所述视频流处理任务对应的视频流,所述计算图是由所述视频流处理装置加载,包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
根据本公开的另一方面,提供了一种视频流处理装置,应用于视频流处理系统,所述视频流处理系统还包括视频流任务管理装置,所述视频流处理装置包括:
加载模块,用于加载计算图,其中,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑;
任务获取模块,用于获取所述视频流任务管理装置分发的视频流处理任务;
处理模块,用于基于所述计算图处理所述视频流处理任务。
根据本公开的另一方面,提供了一种视频流任务管理装置,应用于视频流处理系统,所述视频流处理系统还包括视频流处理装置,所述视频流任务管理装置包括:
任务分发模块,用于将视频流处理任务分发至所述视频流处理装置,其中,所述视频流处理装置加载有计算图,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑,所述视频流处理装置用于基于所述计算图处理所述视频流处理任务。
根据本公开的另一方面,提供了一种媒体服务器,应用于视频流处理系统,所述视频流处理系统还包括视频流任务管理装置和视频流处理装置,所述媒体服务器包括:
注册信息获取模块,用于获取来自所述视频流任务管理装置的注册信息,所述注册信息用于注册视频流处理任务对应的视频流地址;
视频流获取模块,用于根据所述视频流地址获取所述视频流处理任务对应的视频流;
内网地址生成模块,用于生成所述视频流处理任务对应的视频流的内网地址,并将所述内网地址发送至所述视频流处理装置;
其中,所述视频流处理装置用于获取所述视频流任务管理装置分发的视频流处理任务,根据所述内网地址获取所述视频流处理任务对应的视频流,并基于加载的计算图处理所述视频流处理任务对应的视频流,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
根据本公开的另一方面,提供了一种视频流处理系统,包括视频流任务管理装置、视频流处理装置和媒体服务器,其中,
所述视频流任务管理装置,用于将注册信息发送至所述媒体服务器,其中,所述注册信息用于注册视频流处理任务对应的视频流地址;
所述媒体服务器,用于根据所述视频流地址获取所述视频流处理任务对应的视频流,生成所述视频流处理任务对应的视频流的内网地址,并将所述内网地址发送至所述视频流处理装置;
所述视频流任务管理装置,还用于将所述视频流处理任务分发至所述视频流处理装置;
所述视频流处理装置,用于获取所述视频流任务管理装置分发的视频流处理任务,根据所述内网地址获取所述视频流处理任务对应的视频流,并基于加载的计算图处理所述视频流处理任务对应的视频流,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任意实施例所述的视频流处理方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行本公开任意实施例所述的视频流处理方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开任意实施例所述的视频流处理方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的一种视频流处理方法的示意图;
图2是根据本公开实施例的一种视频流处理方法的示意图;
图3是根据本公开实施例的一种视频流处理方法的示意图;
图4是根据本公开实施例的一种视频流处理方法的示意图;
图5是根据本公开实施例的一种视频流处理方法的示意图;
图6是根据本公开实施例的一种视频流处理装置的结构示意图;
图7是根据本公开实施例的一种视频流任务管理装置的结构示意图;
图8是根据本公开实施例的一种媒体服务器的结构示意图;
图9是根据本公开实施例的一种视频流处理系统的结构示意图;
图10a是根据本公开实施例的视频流处理系统的架构图;
图10b是根据本公开实施例的视频流处理系统的架构图对应的流程图;
图11是根据本公开实施例的流水线的数据处理模式的抽象处理流程示意图;
图12是根据本公开实施例的视频流处理装置的交互图;
图13是用来实现本公开实施例的视频流处理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例的视频流处理方法的流程示意图,本实施例可适用于对实时产生的视频流进行实时处理和分析的情况,涉及图像处理技术领域,尤其涉及人工智能、计算机视觉技术领域。该方法可由视频流处理系统的视频流处理装置来执行,该视频流处理装置采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如计算机设备或服务器等。本实施例的视频流处理方法应用于视频流处理系统的视频流处理装置,所述视频流处理系统还包括视频流任务管理装置。如图1所示,该方法具体包括如下:
S101、加载计算图,其中,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
S102、获取视频流任务管理装置分发的视频流处理任务。
S103、基于计算图处理视频流处理任务。
其中,视频流处理装置和视频流任务管理装置相互配合以完成视频流任务处理。视频流任务管理装置可以用于任务分发和调度,视频流处理装置用于实现具体的计算和视频分析处理,即实现调度系统和计算系统解耦。
视频流处理任务是指对视频流进行处理和分析的待处理任务,例如通过对视频流的分析实现环境安全监测、人脸检测或人流量统计等目的。视频流处理装置获取视频流任务管理装置分发的视频流处理任务之后,利用加载的计算图处理视频流处理任务。
计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。算子是一个可重复使用的推理和处理组件,可以抽象为一个具体的功能或者操作。在本公开实施例中,算子是指用于处理视频流的计算函数或算法,可以抽象为前置处理工程算子、AI算子、业务逻辑算子和后置处理工程算子这四个方面,并通过积累分别形成与之对应的算子仓库。其中,前置处理工程算子可以包括媒体流接入、编/解码、抽帧和图片处理(裁切、缩放、图片格式转换)等基础算子;AI算子可以包括通过机器学习或者深度学习产生的模型,如人脸识别、图片分类、文字识别等AI算法;业务逻辑算子是用户按照业务逻辑需求所开发的算子,如限流、时钟频率同步、通道合并和反压算子等;后置处理工程算子可以包括符合当前对外输出要求的结构化信息传递、文字框图叠加、推送媒体流和图像渲染等算子。技术人员根据对视频流的实际处理需求配置计算图,通过计算图中的算子可以表明需要对视频流进行哪些处理,通过各算子之间的调度逻辑可以表明完整的处理流程,因此,通过计算图即可展现出处理视频流的完整流程。开发者可以自由根据规范开发所需算子,形成算子仓库,并根据场景需要通过编排形成处理视频流的计算图。使得视频流处理装置在加载计算图后,可以从算子仓库中调用相应的算子,并利用计算图完成视频流完整的任务处理过程。
需要说明的是,相关技术中对视频流的处理通常是基于大数据的流式处理框架,该处理框架是由不同的集群组合而成,各集群相对独立地完成各自的功能,通过组合来完成视频流处理。也就是说,对视频流进行处理的过程是分散在不同的集群实现的。而由于集群之间还需要通过网络来进行数据传输,因此,相关技术中会产生大量的网络I/O,而且在此过程中不能将数据保存在内存,还会出现大量的磁盘I/O,从而导致系统性能不够、吞吐不足的问题。
而本公开实施例的技术方案中,是由视频流任务管理装置实现任务分发和调度,视频流处理装置则完成具体的计算和处理,这样就实现了将调度系统和计算系统解耦,调度系统负责分发任务,计算系统负责任务处理。于是,一套完整的视频流处理过程就是在一个视频流处理装置中完成的,而并不是如相关技术那样分散在不同的集群。因此,本公开实施例中不会涉及因不同集群以及集群之间出现的大量网络I/O和磁盘I/O而导致的系统性能不够、吞吐不足的问题,使得系统性能得以提高。同时,本公开实施例的视频流处理装置是基于加载的计算图对视频流进行处理,只需开发人员基于不同的场景和需求配置和编排相应的计算图即可,然后通过视频流处理装置加载计算图,即可基于计算图实现完整的视频流处理过程,不仅提高了对视频流处理的开发效率,而且,便于在不同场景下进行迁移,提高了适用性和便捷性。
图2是根据本公开实施例的视频流处理方法的流程示意图,本实施例在上述实施例的基础上进一步进行优化,本实施例中,所述视频流处理系统还包括媒体服务器。如图2所示,该方法具体包括如下:
S201、加载计算图,其中,计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
S202、获取视频流任务管理装置分发的视频流处理任务。
S203、通过媒体服务器提供的内网地址获取视频流处理任务对应的视频流,并基于计算图处理视频流处理任务对应的视频流。
其中,内网地址是由媒体服务器获取视频流处理任务对应的视频流后生成的,视频流处理任务对应的视频流是媒体服务器根据视频流地址获取的,而视频流地址是由视频流任务管理装置注册到媒体服务器的。也就是说,媒体服务器起到外部视频流汇聚的作用,然后通过转换的内网地址,使得视频流处理装置能够获取视频流处理任务对应的视频流。
在一种实施方式中,本公开实施例的视频流处理装置是基于计算图在单实例单进程中处理视频流处理任务。具体的,基于k8s等虚拟化、容器化技术,一个视频流处理装置可以起多个实例,每个实例运行在各自的进程中,同时按需为每个实例分配一些资源(cpu、内存、磁盘和操作系统等),这样,就可以在单实例单进程中完成一项任务的视频流处理。而在单实例单进程中,计算图中所涉及的各个算子间的调度是采用线程模式实现的,各算子之间的调度过程中只涉及简单的内存数据交换,速度得以提高,从而进一步提高了系统性能和并发性,降低了系统延迟。同时,多个实例可以并行运行,处理不同任务中的视频流,提高了任务处理效率。当然,也可以将同一个任务进行划分,得到多个不同的子任务,并分别由不同的实例同时进行处理。本公开实施例对此不作任何限定,可以基于需要进行配置。
在另一种实施方式中,本公开实施例的视频流处理装置是基于计算图并按照流水线的数据处理模式处理视频流处理任务。具体的,视频流处理装置启动时会加载当前任务对应的计算图,完成后等待视频流数据输入。当视频流数据输入后,视频流处理装置会通过线程池、状态机、异步处理、时间戳等机制,实现视频流数据在进程内的流水高效处理。其中,流水线的数据处理模式,其核心是将整个数据处理分为多个模块,并由相关的数据通道进行各模块的串联。处理数据时,每个模块都进行并行处理,当每个模块处理完后通过通道将处理完的数据传递到下游模块,实现高效的数据处理。在本公开实施例的视频流任务处理场景中,各个算子即为模块,各算子之间的调度逻辑即为各模块间的数据通道。具体而言,针对视频流场景,整个数据处理过程可以抽象为前置处理(流接入、解码、抽帧、图片处理等)、AI算法、业务逻辑、后处理等模块,通过编排后,可以形成应对不同场景的数据处理计算图,其中的每个数据模块都以并行的方式处理视频或图片数据,从而实现流畅高效的数据处理。
相关技术中由于其框架是由不同的集群组合而成,不同的集群在不同的处理场景下对算法的要求以及前后处理均有不同,那么就需要每个场景针对各个不同的集群开发不同的处理逻辑,使得整体的开发效率偏低。相比之下,本公开实施例的技术方案只需配置和编排计算图,就可以在流水线的处理模式下,在单实例单进程中完成一套完整的视频流处理过程。这不仅实现可编排,同时避免了不必要的I/O,提高了系统性能。此外,还可以根据场景的变化快速迭代,积累算子仓库,做到场景的快速复用和迭代,提高开发效率。
在又一种实施方式中,本公开实施例的视频流处理系统还包括视频流处理集群,视频流处理集群包括多个视频流处理装置;相应的,所述方法还包括将当前处理的任务数量上报至视频流任务管理装置。其中,视频流任务管理装置用于根据视频流处理集群中各个视频流处理装置的处理容量和当前处理的任务数量,确定对应视频流处理装置的空闲状态,并根据空闲状态进行视频流处理任务的分发。
具体的,视频流处理系统中可以由多个视频流处理装置构成集群,由视频流任务管理装置根据每个视频流处理装置的空闲状态进行任务分发。空闲状态可以根据视频流处理装置的处理容量和当前处理的任务数量确定。因此,视频流处理装置还需要将当前处理的任务数量上报至视频流任务管理装置。其中,视频流处理装置的容量是指能够同时处理视频流的路数,例如,容量为10路,则表示能在一个进程里处理10路视频流。而且有些算子可以批量处理来提高性能,例如GPU(NVIDIA Jetson)支持batch(批处理)机制,可以16张图片一起进行AI处理,而不是一个一个串行处理,从而提升了性能。
在其他实施方式中,开发人员也可以根据视频流处理装置的规范,基于GPU或CPU开发所需的算子。当算子全部基于GPU开发时,则可以做到算子的全GPU处理,从而提高视频图像的处理效率。
示例性的,对视频流的处理可以包括如下步骤,其中,①②③由前置处理工程算子处理,④由AI算子处理,⑤由业务逻辑算子处理,⑥由后置处理工程算子处理:
①拉流:根据内网地址拉取视频流处理任务对应的视频流;
②视频流解封装:对拉取的视频流解封装获取到原始的视频流,流媒体协议支持常见的rtsp、rtmp、hls和GB28181等;
③视频流解码:对原始的视频流进行解码,然后按照配置的时间间隔抽取相应的帧图形成帧图序列,视频编码格式支持如h.264、h.265、VP9等;
④图像处理:可以对解码处理的图像进行通用的处理,比如抽帧、裁切、压缩、格式转换等,方便整合成后续AI算子需要的输入格式;
⑤AI处理:将获取到的帧图序列或采样的图片输入封装好的AI算子中,该部分主要是进行AI处理,返回该算法的输出;
⑥业务逻辑处理:包括应用方根据获取到的算法结果进行相关的业务逻辑部分处理;
⑦后处理:针对经过应用业务逻辑处理后对外输出的一些形式,主要包含结构化信息传递或文字框图叠加等能力支持,方便业务系统开发监控报警和渲染后的视频流播放。
图3是根据本公开实施例的视频流处理方法的流程示意图,本实施例可适用于对实时产生的视频流进行实时处理和分析的情况,涉及图像处理技术领域,尤其涉及人工智能、计算机视觉技术领域。该方法可由视频流处理系统的视频流任务管理装置来执行,该视频流任务管理装置采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如计算机设备或服务器等。本实施例的视频流处理方法应用于视频流处理系统的视频流任务管理装置,所述视频流处理系统还包括视频流处理装置。如图3所示,该方法具体包括如下:
S301、将视频流处理任务分发至视频流处理装置,其中,视频流处理装置加载有计算图,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑,视频流处理装置用于基于计算图处理视频流处理任务。
具体的,视频流处理装置和视频流任务管理装置相互配合以完成视频流任务处理。视频流任务管理装置可以用于任务分发和调度,视频流处理装置用于实现具体的计算和视频分析处理,即实现调度系统和计算系统解耦。视频流任务管理装置获取视频流处理任务后,将视频流处理任务分发至视频流处理装置,由视频流处理装置基于加载的计算图处理视频流处理任务。在此过程中,一套完整的视频流处理过程就是在一个视频流处理装置中完成的,而并不是如相关技术那样分散在不同的集群。因此,本公开实施例中不会涉及因不同集群以及集群之间出现的大量网络I/O和磁盘I/O而导致的系统性能不够、吞吐不足的问题,使得系统性能得以提高。同时,本公开实施例的视频流处理装置是基于加载的计算图对视频流进行处理,只需开发人员基于不同的场景和需求配置和编排相应的计算图即可,然后通过视频流处理装置加载计算图,即可基于计算图实现完整的视频流处理过程,不仅提高了对视频流处理的开发效率,而且,便于在不同场景下进行迁移,提高了适用性和便捷性。
图4是根据本公开实施例的视频流处理方法的流程示意图,本实施例在上述实施例的基础上进一步进行优化,其中,所述视频流处理系统还包括视频流处理集群和媒体服务器,所述视频流处理集群包括多个所述视频流处理装置。如图4所示,该方法具体包括如下:
S401、根据获取的任务信息创建视频流处理任务,并将视频流处理处理任务放入任务队列。
其中,任务信息例如包括任务处理开始的时间、结束的时间或抽帧间隔等信息。此外,还可以包括采集视频流的摄像头等硬件设备的信息。
S402、获取视频流处理任务的视频流地址,并将视频流地址注册到媒体服务器。
具体的,将视频流地址注册到媒体服务器,让媒体服务器根据视频流地址获取视频流处理任务对应的视频流,并生成视频流的内网地址。可见,媒体服务器起到外部数据流汇聚的作用,从外部获取到视频流,然后将内网地址发给视频流处理装置,以便视频流处理装置通过内网地址获取到视频流处理任务对应的视频流。
S403、根据视频流处理集群中各个视频流处理装置的空闲状态,确定目标视频流处理装置。
其中,空闲状态是根据视频流处理装置的处理容量和当前处理的任务数量确定,每个视频流处理装置的处理容量会记载在视频流任务管理装置中,每个视频流处理装置也可以按照一定的时间周期将自身处理任务的情况反馈给视频流任务管理装置。具体的,视频流任务管理装置可以先获取视频流处理集群中各个视频流处理装置当前处理的任务数量,然后根据各个视频流处理装置各自的处理容量和当前处理的任务数量,确定对应视频流处理装置的空闲状态,并根据空闲状态确定目标视频流处理装置,该目标视频流处理装置即为当前最为空闲的用于处理当前任务的最优的视频流处理装置。
S404、将视频流处理任务分发至目标视频流处理装置,其中,目标视频流处理装置加载有计算图,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑,目标视频流处理装置用于基于计算图处理视频流处理任务。
在一种实施方式中,视频流处理任务是视频流处理装置基于计算图在单实例单进程中处理的。在另一种实施方式中,视频流处理任务是利用视频流处理装置基于计算图并按照流水线的数据处理模式处理的。当然,也可以是利用视频流处理装置基于计算图,按照流水线的数据处理模式在单实例单进程中处理的。
本公开实施例的技术方案,不仅将调度系统和计算系统解耦,而且,计算系统是由多个视频流处理装置组成的集群,视频流任务管理装置可以根据每个视频流处理装置的空闲状态分发任务,实现负载均衡,提升处理效率。另外,每个视频流处理装置中将流处理过程抽象成具体的流水线的数据处理模式,开发人员可以基于不同的场景,对所需计算图进行配置和编排,在单实例单进程中完成一套完整的视频流处理过程。这不仅实现可编排,同时避免了不必要的I/O,提高了系统性能。此外,还可以根据场景的变化快速迭代,积累算子仓库,做到场景的快速复用和迭代,提高开发效率。
图5是根据本公开实施例的视频流处理方法的流程示意图,本实施例可适用于对实时产生的视频流进行实时处理和分析的情况,涉及图像处理技术领域,尤其涉及人工智能、计算机视觉技术领域。该方法可由视频流处理系统的媒体服务器来执行,该媒体服务器采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如计算机设备或服务器等。本实施例的视频流处理方法应用于视频流处理系统的媒体服务器,所述视频流处理系统还包括视频流任务管理装置和视频流处理装置。如图5所示,该方法具体包括如下:
S501、获取来自视频流任务管理装置的注册信息,注册信息用于注册视频流处理任务对应的视频流地址。
S502、根据视频流地址获取视频流处理任务对应的视频流。
S503、生成视频流处理任务对应的视频流的内网地址,并将内网地址发送至视频流处理装置。
其中,视频流处理装置用于获取视频流任务管理装置分发的视频流处理任务,根据内网地址获取视频流处理任务对应的视频流,并基于加载的计算图处理视频流处理任务对应的视频流,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
本公开实施例的技术方案,媒体服务器主要用于外部视频流汇聚,适应不同的流媒体协议,将视频流转换成指定的流媒体协议,并提供内网地址供视频流处理装置进行拉流,方便后续的处理能依赖统一的流媒体协议,而无需适配多种。同时,经过媒体服务器的流媒体格式转换,用户也可以通过媒体服务器直接查看视频流,为用户提供方便。另外,当需要对同一个视频流进行多路处理时,媒体服务器也可以将视频流进行复制,以便同时由多个视频流处理装置对其进行处理。
图6是根据本公开实施例的视频流处理装置的结构示意图,本实施例的视频流处理装置应用于视频流处理系统,所述视频流处理系统还包括视频流任务管理装置。本实施例可适用于对实时产生的视频流进行实时处理和分析的情况,涉及图像处理技术领域,尤其涉及人工智能、计算机视觉技术领域。该视频流处理装置可实现本公开任意实施例所述的视频流处理方法。如图7所示,该视频流处理装置600具体包括:
加载模块601,用于加载计算图,其中,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑;
任务获取模块602,用于获取所述视频流任务管理装置分发的视频流处理任务。
处理模块603,用于基于所述计算图处理所述视频流处理任务。
可选的,所述视频流处理系统还包括视频流处理集群,所述视频流处理集群包括多个所述视频流处理装置;相应的,所述装置还包括:
上报模块,用于将当前处理的任务数量上报至所述视频流任务管理装置;
其中,所述视频流任务管理装置用于根据所述视频流处理集群中各个视频流处理装置的处理容量和当前处理的任务数量,确定对应视频流处理装置的空闲状态,并根据空闲状态进行视频流处理任务的分发。
可选的,所述视频流处理系统还包括媒体服务器;相应的,处理模块603具体用于:
通过所述媒体服务器提供的内网地址获取所述视频流处理任务对应的视频流,并基于所述计算图处理所述视频流处理任务对应的视频流;
其中,所述内网地址是由所述媒体服务器获取所述视频流处理任务对应的视频流后生成的,所述视频流处理任务对应的视频流是所述媒体服务器根据视频流地址获取的,所述视频流地址是由所述视频流任务管理装置注册到所述媒体服务器的。
可选的,处理模块603包括:
第一处理单元,用于基于所述计算图,在单实例单进程中处理所述视频流处理任务。
可选的,处理模块603包括:
第二处理单元,用于基于所述计算图,并按照流水线的数据处理模式处理所述视频流处理任务。
图7是根据本公开实施例的视频流任务管理装置的结构示意图,本实施例的视频流任务管理装置应用于视频流处理系统,所述视频流处理系统还包括视频流处理装置。本实施例可适用于对实时产生的视频流进行实时处理和分析的情况,涉及图像处理技术领域,尤其涉及人工智能、计算机视觉技术领域。该视频流任务管理装置可实现本公开任意实施例所述的视频流处理方法。如图7所示,该视频流任务管理装置700具体包括:
任务分发模块701,用于将视频流处理任务分发至所述视频流处理装置,其中,所述视频流处理装置加载有计算图,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑,所述视频流处理装置用于基于所述计算图处理所述视频流处理任务。
可选的,所述视频流处理系统还包括视频流处理集群,所述视频流处理集群包括多个所述视频流处理装置;相应的,任务分发模块701包括:
目标确定单元,用于根据所述视频流处理集群中各个视频流处理装置的空闲状态,确定目标视频流处理装置;
任务分发单元,用于将所述视频流处理任务分发至所述目标视频流处理装置,所述目标视频流处理装置用于基于所述计算图处理所述视频流处理任务。
可选的,目标确定单元包括:
任务数量获取子单元,用于获取所述视频流处理集群中各个视频流处理装置当前处理的任务数量;
目标确定子单元,用于根据所述各个视频流处理装置各自的处理容量和所述当前处理的任务数量,确定对应视频流处理装置的空闲状态,并根据空闲状态确定所述目标视频流处理装置。
可选的,所述视频流处理系统还包括媒体服务器;相应的,所述装置还包括:
地址注册模块,用于在任务分发模块701将视频流处理任务分发至所述视频流处理装置之前,获取所述视频流处理任务的视频流地址,并将所述视频流地址注册到所述媒体服务器;
其中,所述媒体服务器用于根据所述视频流地址获取所述视频流处理任务对应的视频流,并生成所述视频流处理任务对应的视频流的内网地址,所述视频流处理装置用于根据所述内网地址获取所述视频流处理任务对应的视频流。
可选的,所述装置还包括:
队列管理模块,用于在任务分发模块701将视频流处理任务分发至所述视频流处理装置之前,根据获取的任务信息创建所述视频流处理任务,并将所述视频流处理任务放入任务队列。
可选的,所述视频流处理任务是所述视频流处理装置基于所述计算图,在单实例单进程中处理的。
可选的,所述视频流处理任务是所述视频流处理装置基于所述计算图,并按照流水线的数据处理模式处理的。
图8是根据本公开实施例的媒体服务器的结构示意图,本实施例的媒体服务器应用于视频流处理系统,所述视频流处理系统还包括视频流任务管理装置和视频流处理装置。本实施例可适用于对实时产生的视频流进行实时处理和分析的情况,涉及图像处理技术领域,尤其涉及人工智能、计算机视觉技术领域。该媒体服务器可实现本公开任意实施例所述的视频流处理方法。如图8所示,该媒体服务器800具体包括:
注册信息获取模块801,用于获取来自所述视频流任务管理装置的注册信息,所述注册信息用于注册视频流处理任务对应的视频流地址;
视频流获取模块802,用于根据所述视频流地址获取所述视频流处理任务对应的视频流;
内网地址生成模块803,用于生成所述视频流处理任务对应的视频流的内网地址,并将所述内网地址发送至所述视频流处理装置;
其中,所述视频流处理装置用于获取所述视频流任务管理装置分发的视频流处理任务,根据所述内网地址获取所述视频流处理任务对应的视频流,并基于加载的计算图处理所述视频流处理任务对应的视频流,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
图9是根据本公开实施例的视频流处理系统的结构示意图,本实施例可适用于对实时产生的视频流进行实时处理和分析的情况,涉及图像处理技术领域,尤其涉及人工智能、计算机视觉技术领域。该视频流处理系统可实现本公开任意实施例所述的视频流处理方法。如图9所示,该视频流处理系统900包括视频流任务管理装置901、视频流处理装置902和媒体服务器903,其中,
视频流任务管理装置901,用于将注册信息发送至所述媒体服务器,其中,所述注册信息用于注册视频流处理任务对应的视频流地址;
媒体服务器903,用于根据所述视频流地址获取所述视频流处理任务对应的视频流,生成所述视频流处理任务对应的视频流的内网地址,并将所述内网地址发送至所述视频流处理装置;
视频流任务管理装置901,还用于将所述视频流处理任务分发至所述视频流处理装置;
视频流处理装置902,用于获取所述视频流任务管理装置分发的视频流处理任务,根据所述内网地址获取所述视频流处理任务对应的视频流,并基于加载的计算图处理所述视频流处理任务对应的视频流,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
上述产品可执行本公开任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
图10a是根据本公开实施例的视频流处理系统的架构图。如图所示,视频流处理系统主要包括视频流任务管理装置、视频流处理集群和多个媒体服务器。图10b是根据本公开实施例的视频流处理系统的架构图对应的流程图。结合图10a和图10b,对视频流处理系统的工作过程进行描述:
S1:摄像头接入。用户通过前端控制台接入摄像头,提交摄像头、边缘盒子等相关信息,如媒体流地址、硬件设备信息、地域信息等。
S2:任务提交。前端控制台将任务提交给视频流任务管理装置,并包含配置的任务信息,包括任务的开始时间、结束时间和抽帧间隔等。
S3:媒体流注册。视频流任务处理装置中的控制器Master接收到摄像头信息后,会首先将媒体流地址注册到媒体服务器。媒体服务器集群主要负责外部的视频流接入,适应不同的流媒体协议,并统一转换成指定的流媒体协议和提供一个内部的视频流地址,方便内部集群进行其它处理。
S4:任务分发:Master接收到任务后,同时在内部的JobCreater创建一个调度任务进入Task Manager的任务队列。Task Manager负责从队列中获取相关任务和该任务的摄像头等任务信息,并从媒体流处理集群中选择一个当前最为空闲的视频流处理装置(Worker)进行任务分发。
S5:任务处理。媒体流集群的指定Worker接收到任务后,根据内网视频流地址进行视频数据拉取,并启动编排好的流水线模型进行视频流实时处理。
S6:后处理。主要进行用户定义的一些操作,比如视频流播放、视频存储、监控报警、与应用的业务系统对接等流程操作,直到输出结果。
图11是根据本公开实施例的流水线的数据处理模式的抽象处理流程示意图。如图11所示,本公开实施例中将流处理过程抽象成具体的流水线,主要包括四个部分,分别是前置处理、AI推理、业务逻辑和后置处理,具体包含了流接入-解码-抽帧-图片处理-AI算法-业务逻辑-后处理的过程。可见,本公开实施例提供了流水线支持和相关基础工程算子支持,其中,基础工程算子包含视频通用处理能力,如视频接入、硬件/软件编解码、图片处理(裁切、缩放、图片格式转换等)、渲染、播放等。也包括流式数据处理过程中常用算子,如限流、时钟频率同步、通道合并、反压算子等。开发者可以自由根据规范开发AI算子,并基于流水线机制对需求的场景进行编排,最终提供对外的服务。
图12是根据本公开实施例的视频流处理装置的交互图。在Worker中,流水线是按进程处理模式处理待处理任务的,对媒体流的处理在单实例单进程内进行,各个算子间调度采用线程模式,避免了大量的I/O工作,只进行简单的内存数据交换,大大提高了性能和并发,降低了系统延迟。具体的,Worker处理流程如下:
加载用户配置好的计算图,通过解析配置,获取需要的算子;
根据需要的算子从算子仓库中拉取相关的算子,并根据计算图组合成处理流水线;
完成组合后,通过worker内置的调度器启动流水线,并为相关的算子分配资源,完成后等待媒体流拉取后进行处理;
当外部的媒体流输入后,会按照开发者编排好的计算图进行处理,最终按需返回结构化数据或渲染后媒体流供业务系统进行后处理。
本公开的视频流处理系统,具有如下有益效果:
(1)分布式自动负载均衡和可配置的流处理系统。通过调度系统和计算系统的解耦,调度系统负责所有视频流处理任务的负载均衡、部署管理、资源管理等功能,流水线系统将流处理过程抽象成具体的流水线处理模型,方便进行性能预估和流水线编排。最终实现了分布式的可编排视频流处理系统。
(2)通过流水线的数据处理模式支持了智能视频流处理的可编排特性。此特性可以帮助业务线根据实际的用户场景快速编排出需要的流水线,同时能根据场景变化快速迭代,提升支持效率。同时,可以通过此方案,积累算子仓库,后期业务线可以使用的算子更多,开发效率越高。最后,可以沉淀出各种经验证过有效的视频流处理场景,做到场景的快速复用和迭代。
(3)高性能的实时视频流处理框架,采用进程处理模式。对媒体流的处理在单实例单进程内进行,各个算子间调度采用线程模式,避免了大量的I/O工作,只进行简单的内存数据交换,大大提高了性能和并发,降低了系统延迟。同时,对于GPU等加速卡的应用,可以将视频流接入后解码出的数据进行全GPU处理,提升系统性能。
(4)基于可编排的计算图和各个算子的性能信息,可以准确的评估出一个处理实例可以处理多少路视频流,进而进行准确的调度和负载均衡。而现有方案由于各个模块分离,同时图片数据量大,分组大小不同,无法准确的对性能进行评估。
(5)基于进程模式的流水线,可以对视频流进行逐帧或抽帧处理,所有的帧图等数据通过内存或显存进行交换,实时性和性能高,可以覆盖现有的所有视频流场景。而现有方案,由于不同模块都是部署成了一个集群服务,采用网络进行通信。因此,由于视频流解码后的帧图数据量大的特点,只能使用抽帧的处理模式,同时抽取帧图的频率不能太高,否则会造成性能和实时性的降低,适用的场景较窄。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图13示出了可以用来实施本公开的实施例的示例电子设备1300的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图13所示,设备1300包括计算单元1301,其可以根据存储在只读存储器(ROM)1302中的计算机程序或者从存储单元1308加载到随机访问存储器(RAM)1303中的计算机程序,来执行各种适当的动作和处理。在RAM 1303中,还可存储设备1300操作所需的各种程序和数据。计算单元1301、ROM 1302以及RAM 1303通过总线1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。
设备1300中的多个部件连接至I/O接口1305,包括:输入单元1306,例如键盘、鼠标等;输出单元1307,例如各种类型的显示器、扬声器等;存储单元1308,例如磁盘、光盘等;以及通信单元1309,例如网卡、调制解调器、无线通信收发机等。通信单元1309允许设备1300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1301的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1301执行上文所描述的各个方法和处理,例如应用于视频流处理装置的视频流处理方法。例如,在一些实施例中,应用于视频流处理装置的视频流处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1308。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1302和/或通信单元1309而被载入和/或安装到设备1300上。当计算机程序加载到RAM 1303并由计算单元1301执行时,可以执行上文描述的应用于视频流处理装置的视频流处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用于视频流处理装置的视频流处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
此外,根据本公开的实施例,本公开还提供了另一种电子设备、另一种可读存储介质和另一种计算机程序产品,用于执行本公开任意实施例所述的应用于视频流任务管理装置的视频流处理方法以及应用于媒体服务器的视频流处理方法的一个或多个步骤。其具体的结构和程序代码可参见如图13所示的实施例的内容描述,此处不再赘述。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (21)
1.一种视频流处理方法,应用于视频流处理系统的视频流处理装置,所述视频流处理系统还包括视频流任务管理装置,所述方法包括:
加载计算图,其中,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑;
获取所述视频流任务管理装置分发的视频流处理任务;
基于所述计算图处理所述视频流处理任务。
2.根据权利要求1所述的方法,所述视频流处理系统还包括视频流处理集群,所述视频流处理集群包括多个所述视频流处理装置;相应的,所述方法还包括:
将当前处理的任务数量上报至所述视频流任务管理装置;
其中,所述视频流任务管理装置用于根据所述视频流处理集群中各个视频流处理装置的处理容量和当前处理的任务数量,确定对应视频流处理装置的空闲状态,并根据空闲状态进行视频流处理任务的分发。
3.根据权利要求1所述的方法,其中,所述视频流处理系统还包括媒体服务器;相应的,所述基于所述计算图处理所述视频流处理任务,包括:
通过所述媒体服务器提供的内网地址获取所述视频流处理任务对应的视频流,并基于所述计算图处理所述视频流处理任务对应的视频流;
其中,所述内网地址是由所述媒体服务器获取所述视频流处理任务对应的视频流后生成的,所述视频流处理任务对应的视频流是所述媒体服务器根据视频流地址获取的,所述视频流地址是由所述视频流任务管理装置注册到所述媒体服务器的。
4.根据权利要求1所述的方法,其中,所述基于所述计算图处理所述视频流处理任务,包括:
基于所述计算图,在单实例单进程中处理所述视频流处理任务。
5.根据权利要求1所述的方法,其中,所述基于所述计算图处理所述视频流处理任务,包括:
基于所述计算图,并按照流水线的数据处理模式处理所述视频流处理任务。
6.一种视频流处理方法,应用于视频流处理系统的视频流任务管理装置,所述视频流处理系统还包括视频流处理装置,所述方法包括:
将视频流处理任务分发至所述视频流处理装置,其中,所述视频流处理装置加载有计算图,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑,所述视频流处理装置用于基于所述计算图处理所述视频流处理任务。
7.根据权利要求6所述的方法,其中,所述视频流处理系统还包括视频流处理集群,所述视频流处理集群包括多个所述视频流处理装置;
相应的,所述将视频流处理任务分发至所述视频流处理装置,包括:
根据所述视频流处理集群中各个视频流处理装置的空闲状态,确定目标视频流处理装置;
将所述视频流处理任务分发至所述目标视频流处理装置,所述目标视频流处理装置用于基于所述计算图处理所述视频流处理任务。
8.根据权利要求7所述的方法,其中,所述根据所述视频流处理集群中各个视频流处理装置的空闲状态,确定目标视频流处理装置,包括:
获取所述视频流处理集群中各个视频流处理装置当前处理的任务数量;
根据所述各个视频流处理装置各自的处理容量和所述当前处理的任务数量,确定对应视频流处理装置的空闲状态,并根据空闲状态确定所述目标视频流处理装置。
9.根据权利要求6所述的方法,其中,所述视频流处理系统还包括媒体服务器;相应的,在所述将视频流处理任务分发至所述视频流处理装置之前,所述方法还包括:
获取所述视频流处理任务的视频流地址,并将所述视频流地址注册到所述媒体服务器;
其中,所述媒体服务器用于根据所述视频流地址获取所述视频流处理任务对应的视频流,并生成所述视频流处理任务对应的视频流的内网地址,所述视频流处理装置用于根据所述内网地址获取所述视频流处理任务对应的视频流。
10.根据权利要求6所述的方法,其中,在所述将视频流处理任务分发至所述视频流处理装置之前,所述方法还包括:
根据获取的任务信息创建所述视频流处理任务,并将所述视频流处理任务放入任务队列。
11.根据权利要求6所述的方法,其中,
所述视频流处理任务是所述视频流处理装置基于所述计算图,在单实例单进程中处理的。
12.根据权利要求6所述的方法,其中,
所述视频流处理任务是所述视频流处理装置基于所述计算图,并按照流水线的数据处理模式处理的。
13.一种视频流处理方法,应用于视频流处理系统的媒体服务器,所述视频流处理系统还包括视频流任务管理装置和视频流处理装置,所述方法包括:
获取来自所述视频流任务管理装置的注册信息,所述注册信息用于注册视频流处理任务对应的视频流地址;
根据所述视频流地址获取所述视频流处理任务对应的视频流;
生成所述视频流处理任务对应的视频流的内网地址,并将所述内网地址发送至所述视频流处理装置;
其中,所述视频流处理装置用于获取所述视频流任务管理装置分发的视频流处理任务,根据所述内网地址获取所述视频流处理任务对应的视频流,并基于加载的计算图处理所述视频流处理任务对应的视频流,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
14.一种视频流处理装置,应用于视频流处理系统,所述视频流处理系统还包括视频流任务管理装置,所述视频流处理装置包括:
加载模块,用于加载计算图,其中,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑;
任务获取模块,用于获取所述视频流任务管理装置分发的视频流处理任务;
处理模块,用于基于所述计算图处理所述视频流处理任务。
15.一种视频流任务管理装置,应用于视频流处理系统,所述视频流处理系统还包括视频流处理装置,所述视频流任务管理装置包括:
任务分发模块,用于将视频流处理任务分发至所述视频流处理装置,其中,所述视频流处理装置加载有计算图,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑,所述视频流处理装置用于基于所述计算图处理所述视频流处理任务。
16.一种媒体服务器,应用于视频流处理系统,所述视频流处理系统还包括视频流任务管理装置和视频流处理装置,所述媒体服务器包括:
注册信息获取模块,用于获取来自所述视频流任务管理装置的注册信息,所述注册信息用于注册视频流处理任务对应的视频流地址;
视频流获取模块,用于根据所述视频流地址获取所述视频流处理任务对应的视频流;
内网地址生成模块,用于生成所述视频流处理任务对应的视频流的内网地址,并将所述内网地址发送至所述视频流处理装置;
其中,所述视频流处理装置用于获取所述视频流任务管理装置分发的视频流处理任务,根据所述内网地址获取所述视频流处理任务对应的视频流,并基于加载的计算图处理所述视频流处理任务对应的视频流,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
17.一种视频流处理系统,包括视频流任务管理装置、视频流处理装置和媒体服务器,其中,
所述视频流任务管理装置,用于将注册信息发送至所述媒体服务器,其中,所述注册信息用于注册视频流处理任务对应的视频流地址;
所述媒体服务器,用于根据所述视频流地址获取所述视频流处理任务对应的视频流,生成所述视频流处理任务对应的视频流的内网地址,并将所述内网地址发送至所述视频流处理装置;
所述视频流任务管理装置,还用于将所述视频流处理任务分发至所述视频流处理装置;
所述视频流处理装置,用于获取所述视频流任务管理装置分发的视频流处理任务,根据所述内网地址获取所述视频流处理任务对应的视频流,并基于加载的计算图处理所述视频流处理任务对应的视频流,所述计算图包括预先编排的用于处理视频流的算子以及算子之间的调度逻辑。
18.根据权利要求17所述的系统,其中,所述视频流处理装置的数量为多个,组成视频流处理集群;
相应的,所述视频流任务管理装置,还用于根据所述视频流处理集群中各个视频流处理装置的空闲状态,确定目标视频流处理装置,并将所述视频流处理任务分发至所述目标视频流处理装置。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行根据权利要求1-5中任一项所述的视频流处理方法、权利要求6-12中任一项所述的视频流处理方法或权利要求13所述的视频流处理方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-5中任一项所述的视频流处理方法、权利要求6-12中任一项所述的视频流处理方法或权利要求13所述的视频流处理方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-5中任一项所述的视频流处理方法、权利要求6-12中任一项所述的视频流处理方法或权利要求13所述的视频流处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211393712.5A CN115767179A (zh) | 2022-11-08 | 2022-11-08 | 视频流处理方法、系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211393712.5A CN115767179A (zh) | 2022-11-08 | 2022-11-08 | 视频流处理方法、系统、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115767179A true CN115767179A (zh) | 2023-03-07 |
Family
ID=85368271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211393712.5A Pending CN115767179A (zh) | 2022-11-08 | 2022-11-08 | 视频流处理方法、系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115767179A (zh) |
-
2022
- 2022-11-08 CN CN202211393712.5A patent/CN115767179A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109327509B (zh) | 一种主/从架构的低耦合的分布式流式计算系统 | |
CN104618693B (zh) | 一种基于云计算的监控视频在线处理任务管理方法及系统 | |
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
CN113632078A (zh) | 响应于来自多个客户端的机器学习请求 | |
US10402235B2 (en) | Fine-grain synchronization in data-parallel jobs for distributed machine learning | |
WO2023083208A1 (zh) | 云桌面系统处理方法、云桌面系统控制方法以及相关设备 | |
CN110737653A (zh) | 一种基于微服务的一体化企业数据处理系统及方法 | |
CN113159091A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112783614A (zh) | 对象处理方法、装置、设备、存储介质以及程序产品 | |
CN112508768A (zh) | 单算子多模型流水线推理方法、系统、电子设备及介质 | |
US11356334B2 (en) | Communication efficient sparse-reduce in distributed machine learning | |
KR20210125559A (ko) | 단계 지원 작업 흐름을 위한 방법 및 장치 | |
CN111935663A (zh) | 传感器数据流的处理方法、装置、介质及电子设备 | |
CN115576534A (zh) | 原子服务的编排方法、装置、电子设备及存储介质 | |
CN110868324A (zh) | 一种业务配置方法、装置、设备和存储介质 | |
CN114201280A (zh) | 多媒体数据的处理方法、装置、设备以及存储介质 | |
CN113724398A (zh) | 增强现实方法、装置、设备以及存储介质 | |
CN113627412A (zh) | 目标区域的检测方法、装置、电子设备和介质 | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
CN116389492A (zh) | 视频分析系统、方法、装置、计算机可读存储介质 | |
CN114756301B (zh) | 日志处理方法、装置和系统 | |
CN115767179A (zh) | 视频流处理方法、系统、电子设备和存储介质 | |
Coviello et al. | Dataxe: A system for application self-optimization in serverless edge computing environments | |
CN115378937A (zh) | 任务的分布式并发方法、装置、设备和可读存储介质 | |
CN114564249A (zh) | 推荐调度引擎、推荐调度方法及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |