一种可编排流程的媒体处理系统的制作方法

文档序号:24938191发布日期:2021-05-04 11:30阅读:82来源:国知局
一种可编排流程的媒体处理系统的制作方法

本发明涉及媒体处理技术领域,尤其涉及一种可编排流程的媒体处理系统。



背景技术:

随着视频行业的高速发展,多媒体内容已经成为人们日常工作和生活中必不可少的重要组成部分,并对传统的媒体转码系统提出了多样化的需求,传统的基于固定模板的媒体处理系统极大的限制了视频处理的灵活度,无法满足业务多样化背景下的媒资生产处理要求。

因此,如何有效的提高媒体处理的灵活性,是一项亟待解决的问题。



技术实现要素:

有鉴于此,本发明提供了一种可编排流程的媒体处理系统,能够按照多样化的业务需求定制个性化的媒体处理流程,极大的提高了媒体处理的灵活性。

本发明提供了一种可编排流程的媒体处理系统,包括:任务接收模块、任务拆分模块、任务编排模块、任务调度模块和子任务执行模块;其中:

所述任务接收模块,用于接收用户输入的多媒体源文件和媒体处理任务的描述文件;

所述任务拆分模块,用于将所述媒体处理任务拆分成多个独立的子任务,其中,每个子任务包括:描述信息、输入参数信息、输出参数信息和参数配置信息;

所述任务编排模块,用于连接子任务的输入参数信息和输出参数信息,确定子任务的依赖关系,并按需调整子任务的参数配置信息;

所述任务调度模块,用于确定各个子任务的执行顺序,并分配子任务通过参数配置信息声明的相应算力资源类型和容量;

所述子任务执行模块,用于在算力资源上运行子任务。

优选地,所述系统还包括:

预置任务模板管理模块,用于将通用的子任务进行抽象,生成预置子任务模块。

优选地,所述系统还包括:

算力资源管理模块,用于统计当前算力中心的资源占用情况和任务调用情况。

优选地,所述多媒体源文件包括:音频文件、视频文件、音视频文件或动画场景模型文件。

优选地,所述媒体处理任务的描述文件包括:文本文件。

优选地,所述描述信息包括:当前任务的名称、类型和优先级。

优选地,所述参数配置单元包括:期望的算力类型、算法名称和算法配置参数。

优选地,所述输入参数单元包括:待处理文件的路径或者文件数据。

优选地,所述输出参数单元包括:处理完成的结果文件路径或者结果文件数据。

综上所述,本发明公开了一种可编排流程的媒体处理系统,包括:任务接收模块、任务拆分模块、任务编排模块、任务调度模块和子任务执行模块;其中:任务接收模块,用于接收用户输入的多媒体源文件和媒体处理任务的描述文件;任务拆分模块,用于将媒体处理任务拆分成多个独立的子任务,其中,每个子任务包括:描述信息、输入参数信息、输出参数信息和参数配置信息;任务编排模块,用于连接子任务的输入参数信息和输出参数信息,确定子任务的依赖关系,并按需调整子任务的参数配置信息;任务调度模块,用于确定各个子任务的执行顺序,并分配子任务通过参数配置信息声明的相应算力资源类型和容量;子任务执行模块,用于在算力资源上运行子任务。本发明能够按照多样化的业务需求定制个性化的媒体处理流程,极大的提高了媒体处理的灵活性。

附图说明

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

图1为本发明公开的一种可编排流程的媒体处理系统实施例1的结构示意图;

图2为本发明公开的一种可编排流程的媒体处理系统实施例2的结构示意图;

图3为本发明公开的一种可编排流程的媒体处理系统实施例3的结构示意图;

图4为本发明公开的子任务示意图;

图5为本发明公开的任务编排示意图。

具体实施方式

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

如图1所示,为本发明公开的一种可编排流程的媒体处理系统实施例1的结构示意图,所述系统可以包括:任务接收模块101、任务拆分模块102、任务编排模块103、任务调度模块104和子任务执行模块105;其中:

任务接收模块101,用于接收用户输入的多媒体源文件和媒体处理任务的描述文件;

任务拆分模块102,用于将媒体处理任务拆分成多个独立的子任务,其中,每个子任务包括:描述信息、输入参数信息、输出参数信息和参数配置信息;

任务编排模块103,用于连接子任务的输入参数信息和输出参数信息,确定子任务的依赖关系,并按需调整子任务的参数配置信息;

任务调度模块104,用于确定各个子任务的执行顺序,并分配子任务通过参数配置信息声明的相应算力资源类型和容量;

子任务执行模块105,用于在算力资源上运行子任务。

上述实施例公开的可编排流程的媒体处理系统的工作原理为,首先任务接收模块101负责接收待处理的多媒体文件和任务描述文件。多媒体源文件可以是音频文件、视频文件或者音视频文件,也可以是动画场景模型文件或者其他格式的数据流。媒体处理任务的描述文件可以是文本文件,也可是其他格式的数据流,包括但不限制于期望的输出文件格式、视频宽高、视频帧率、视频码率、编码格式、音频码率、音频采样率、音频声道数等处理任务的描述信息。

然后,按照功能单一的划分原则,任务拆分模块102将任务拆分成若干个子任务。每个子任务包含一组描述信息、参数配置信息、输入参数信息和输出参数信息。描述信息可包括但不限于当前任务的名称、类型和优先级等等信息。参数配置单元可包括但不限于期望的算力类型、算法名称、算法配置参数等等。输入参数信息包括待处理文件的路径或者文件数据、其他外部动态参数等等。输出参数信息包括处理完成的结果文件路径或者结果文件数据,其他输出的外部动态参数等等。

紧接着,任务编排模块103用于确定子任务之间的输入输出参数的绑定关系,同时对子任务的配置参数进行按需调整和修改,使得资源需求满足本任务的算力需求。包括最小期望算力资源需求和理想算力资源需求。

然后,任务调度模块104通过dag工作流引擎确定任务的执行先后顺序,然后按照执行先后顺序,将任务插入待执行任务队列进行排队等待执行。

再然后,子任务执行模块105当有合适的空闲资源被释放时,任务调度模块会将子任务按照先进先出的顺序,从任务队列依次取出任务并按需分配合适的算力资源传递给任务执行模块进行任务的执行。

最后,判断任务队列是否为空,否则返回任务调度模块104和子任务执行模块105再次执行,直至所有子任务都完成时,整个调度作业结束,并将最终处理结果返回。

如图2所示,为本发明公开的一种可编排流程的媒体处理系统实施例2的结构示意图,所述系统可以包括:任务接收模块201、任务拆分模块202、任务编排模块203、任务调度模块204、子任务执行模块205和预置任务模板管理模块206;其中:

任务接收模块201,用于接收用户输入的多媒体源文件和媒体处理任务的描述文件;

预置任务模板管理模块206,用于将通用的子任务进行抽象,生成预置子任务模块;

任务拆分模块202,用于将媒体处理任务拆分成多个独立的子任务,其中,每个子任务包括:描述信息、输入参数单元、输出参数单元和参数配置单元;

任务编排模块203,用于连接子任务的输入参数单元和输出参数单元,确定子任务的依赖关系,并按需调整子任务的参数配置单元;

任务调度模块204,用于确定各个子任务的执行顺序,并分配子任务通过参数配置单元声明的相应算力资源类型和容量;

子任务执行模块205,用于在算力资源上运行子任务。

在上述实施例中,首先任务接收模块201负责接收待处理的多媒体文件和任务描述文件。多媒体源文件可以是音频文件、视频文件或者音视频文件,也可以是动画场景模型文件或者其他格式的数据流。媒体处理任务的描述文件可以是文本文件,也可是其他格式的数据流,包括但不限制于期望的输出文件格式、视频宽高、视频帧率、视频码率、编码格式、音频码率、音频采样率、音频声道数等处理任务的描述信息。

任务拆分模块202负责将一次处理任务拆解成若干个相互关联的子任务。如图4所示,每个子任务包含一组描述信息、参数配置信息、输入参数信息和输出参数信息。描述信息可包括但不限于当前任务的名称、类型和优先级等等信息。参数配置信息可包括但不限于期望的算力类型、算法名称、算法配置参数等等。输入参数信息包括待处理文件的路径或者文件数据、其他外部动态参数等等。输出参数信息包括处理完成的结果文件路径或者结果文件数据,其他输出的外部动态参数等等。

一个子任务的输出参数可以成为另外一个或者多个子任务的输入参数。输入参数和输出参数的绑定关系通过任务编排模块203完成。一个工作流通常可以使用dag(有向无环图)来描述。在确定子任务的输入输出绑定关系的同时也确定了子任务之间的任务执行先后关系。除确定子任务之间的输入输出参数的绑定关系外,编排过程中还可以对子任务的配置参数进行按需调整和修改。图5示出了编排完成之后的任务工作流。

任务调度模块204根据子任务之间的任务执行先后关系,通过dag工作流引擎确定任务的执行先后顺序,并将任务插入待执行任务队列进行排队等待执行。当有合适的空闲资源被释放时,任务调度模,204会将子任务按照先进先出的顺序,从任务队列依次取出任务并按需分配合适的算力资源传递给任务执行模块205进行任务的执行。当任务队列为空,及所有子任务都完成时,整个调度作业结束,并将最终处理结果返回。

在上述过程中,预置任务模板管理模块206用于将通用的子任务进行抽象,生成预置子任务模块,当有其他相似子任务的时候,可以直接选用和配置。另一方面,若干个关联子任务可以组合,生成工作流模板,工作流模板也可以进行按需选用。

如图3所示,为本发明公开的一种可编排流程的媒体处理系统实施例3的结构示意图,所述系统可以包括:任务接收模块301、任务拆分模块302、任务编排模块303、任务调度模块304、子任务执行模块305、预置任务模板管理模块306和算力资源管理模块307;其中:

任务接收模块301,用于接收用户输入的多媒体源文件和媒体处理任务的描述文件;

预置任务模板管理模块306,用于将通用的子任务进行抽象,生成预置子任务模块;

任务拆分模块302,用于将媒体处理任务拆分成多个独立的子任务,其中,每个子任务包括:描述信息、输入参数单元、输出参数单元和参数配置单元;

任务编排模块303,用于连接子任务的输入参数单元和输出参数单元,确定子任务的依赖关系,并按需调整子任务的参数配置单元;

算力资源管理模块307,用于统计当前算力中心的资源占用情况和任务调用情况;

任务调度模块304,用于确定各个子任务的执行顺序,并分配子任务通过参数配置单元声明的相应算力资源类型和容量;

子任务执行模块305,用于在算力资源上运行子任务。

在上述实施例中,多媒体源文件可以是音频文件、视频文件或者音视频文件,也可以是动画场景模型文件或者其他格式的数据流。媒体处理任务的描述文件可以是文本文件,也可使其他格式的数据流,包括但不限制于期望的输出文件格式、视频宽高、视频帧率、视频码率、编码格式、音频码率、音频采样率、音频声道数等处理任务的描述信息。

任务拆分模块302负责将一次处理任务拆解成若干个相互关联的子任务。如图4所示,每个子任务包含一组描述信息、参数配置信息、输入参数信息和输出参数信息。描述信息可包括但不限于当前任务的名称、类型和优先级等等信息。参数配置信息可包括但不限于期望的算力类型、算法名称、算法配置参数等等。输入参数信息包括待处理文件的路径或者文件数据、其他外部动态参数等等。输出参数包括处理完成的结果文件路径或者结果文件数据,其他输出的外部动态参数等等。

一个子任务的输出参数可以成为另外一个或者多个子任务的输入参数。输入参数和输出参数的绑定关系通过任务编排模块303完成。一个工作流通常可以使用dag(有向无环图)来描述。在确定子任务的输入输出绑定关系的同时也确定了子任务之间的任务执行先后关系。除确定子任务之间的输入输出参数的绑定关系外,编排过程中还可以对子任务的配置参数进行按需调整和修改。图5示出了编排完成之后的任务工作流。

任务调度模块304根据子任务之间的任务执行先后关系,通过dag工作流引擎确定任务的执行先后顺序,并将任务插入待执行任务队列进行排队等待执行。当有合适的空闲资源被释放时,任务调度模304会将子任务按照先进先出的顺序,从任务队列依次取出任务并按需分配合适的算力资源传递给任务执行模块305进行任务的执行。当任务队列为空,及所有子任务都完成时,整个调度作业结束,并将最终处理结果返回。

在上述过程中,预置任务模板管理模块306用于将通用的子任务进行抽象,生成预置子任务模块,当有其他相似子任务的时候,可以直接选用和配置。另一方面,若干个关联子任务可以组合,生成工作流模板,工作流模板也可以进行按需选用。

在上述过程中,算力资源管理模块307用于统计当前算力中心的资源占用情况和任务调度情况。汇总收集各类型的剩余计算能力。并将剩余算力数据提供给任务调度单元304进行调度决策。

为进一步对本发明的技术方案进行说明,下面以具体的实例来说明一个任务拆分、编排过程。

考虑现有一段视频时长为50分钟的待处理视频,其视频编码格式为h.264,视频封装格式为mp4,视频宽高为1920*1024像素,需要在输入源视频的左上方距视频上边缘100像素和视频左边缘100像素的位置增加图片水印,并将其输出宽高为1280*960像素,包含hls和dash两种封装格式的两段视频。任务拆分模块在接收到上述任务信息之后,会将该任务拆分为以下几个子任务:

a)视频分片子任务。该子任务负责将源视频切均匀分成n个视频分片。每个分片的视频时长长度可以通过调整子任务的配置参数进行配置。视频切分的主要目的是为了并行处理每一个分片视频,加快任务处理速度。该任务的输入是源视频的存放路径,输出是多个视频分片的存放路径。

b)视频宽高调整子任务。该子任务负责将视频分片子任务的输出视频转换为期望的视频宽高。期望的视频宽高可以通过任务参数进行配置。该子任务的数量等同于视频分片数量n。

c)视频水印子任务。该子任务负责在视频的期望位置添加图片水印。期望的水印图片路径、水印纵坐标、横坐标可以通过任务参数进行配置。该子任务的数量等同于视频分片数量n。

d)视频hls封装子任务。该子任务负责将多段视频分片采用hls格式封装进行合成,生成hls格式需要的m3u8文件。可以通过子任务的配置参数调整最终视频的文件名称、生成路径、封装格式和码率等必要参数。

e)视频dash封装子任务。该子任务负责将多段视频分片采用dash格式封装进行合成,生成dash格式需要的mpd文件。可以通过子任务的配置参数调整最终视频的文件名称、生成路径、封装格式和码率等必要参数。

任务编排子模块基于上述创建的子任务,将子任务的输入输出的进行关联绑定,确定子任务的依赖关系和执行顺序,生成任务工作流。一个任务工作流可以通过dag(有向无环图)进行描述。对于上述例子,视频分片子任务的输入是源视频文件的存放路径p1,输出参数是切片后的一组视频切片存放路径{sp1,sp2,…,spn}。对于其中每个视频切片spn,分别作为一个视频宽高调整子任务的输入参数,视频宽高调整子任务的输出是调整宽高后的视频切片文件的存放路径opn。同样的,对于其中每个视频切片opn,分别作为视频水印子任务的输入参数,输出参数是增加水印后的视频切片文件的存放路径lpn。对于视频hls封装子任务,该子任务的输入参数是一组增加水印后的视频切片文件的存放路径{lp1,lp2,…,lpn},输出参数为m3u8文件路径和一组转封装后的ts文件路径{m1,ts1,ts2,…,tsn}。同理,对于视频dash封装子任务,该子任务的输入参数是一组增加水印后的视频切片文件的存放路径{lp1,lp2,…,lpn},输出参数为mpd文件路径和一组转封装后的mp4文件路径{m1,mp1,mp2,…,mpn}。

需要特别指出的是,子任务的依赖关系和执行顺序可以在一定范围内进行自由调整顺序、组合和嵌套,比如上述实例中视频宽高调整子任务和视频水印子任务的先后关系可以互换或者组合成一个子任务。本发明这种自由拆分任务、编排和组合子任务的特性,可以满足多样化的业务需求和媒体处理场景,以适应多变的用户需求和产品需求。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1