首页> 中国专利> 基于视频DAG的视频处理方法和稿件处理方法

基于视频DAG的视频处理方法和稿件处理方法

摘要

本申请实施例提供了一种基于视频DAG的视频处理方法,用于执行器中,所述方法包括:通过视频提交单元新建视频资源并将视频资源提交给第一平台以进行转码操作;通过视频一转单元获取所述第一平台对所述视频资源的第一转码操作的回调消息;通过视频审核单元在第二平台上创建视频审核任务;通过视频二转单元获取所述第一平台对所述视频资源的第二转码操作的回调消息;通过视频分发单元获取所述第一平台分发所述第二转码操作的视频内容的回调消息;通过视频开放单元确定是否将所述第二转码操作得到的视频内容标记为开放状态。本申请实施例提供的视频处理的DAG配置方法可以有效地提高视频的审核速度和视频的平均处理速度。

著录项

  • 公开/公告号CN115604504A

    专利类型发明专利

  • 公开/公告日2023-01-13

    原文格式PDF

  • 申请/专利权人 上海哔哩哔哩科技有限公司;

    申请/专利号CN202110776470.7

  • 发明设计人 沈岑;董琦;白天兴;

    申请日2021-07-09

  • 分类号H04N21/234(2011.01);H04N21/2343(2011.01);H04N21/254(2011.01);H04N21/24(2011.01);

  • 代理机构北京英特普罗知识产权代理有限公司 11015;北京英特普罗知识产权代理有限公司 11015;

  • 代理人王勇;邓小玲

  • 地址 200433 上海市杨浦区政立路485号国正中心3号楼

  • 入库时间 2023-06-19 18:19:26

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-07

    实质审查的生效 IPC(主分类):H04N21/234 专利申请号:2021107764707 申请日:20210709

    实质审查的生效

  • 2023-01-13

    公开

    发明专利申请公布

说明书

技术领域

本申请实施例涉及计算机技术领域,尤其涉及一种基于视频DAG的视频处理方法和稿件处理方法。

背景技术

随着视频平台的发展,视频加工主要以DATABUS消息和HTTP/RPC接口为主要通信方式,业务逻辑分散在不同的服务端之间,其中视频加工包括视频转码和审核等,涉及消息多,流程复杂。本发明人所了解到的是,通常情形下,视频加工往往要涉及到对大量的处理功能(处理逻辑)进行调度,但是现有的视频处理流程效率低下,从而在一定程度上影响了用户使用体验。

发明内容

本申请实施例的目的是提供一种基于视频DAG的视频处理方法、装置、计算机设备以及存储介质,和稿件处理方法,用于解决以下问题:现有的视频处理流程效率低下,在一定程度上影响了用户使用体验。

本申请实施例的一个方面又提供了一种基于视频DAG的视频处理方法,用于执行器中,所述方法包括:

通过视频提交单元新建视频资源并将视频资源提交给第一平台以进行转码操作;

通过视频一转单元获取所述第一平台对所述视频资源的第一转码操作的回调消息;

通过视频审核单元在第二平台上创建视频审核任务,所述视频审核任务用于审核所述第一转码操作得到的视频内容;

通过视频二转单元获取所述第一平台对所述视频资源的第二转码操作的回调消息;其中,所述第一转码操作得到的视频内容的清晰度低于所述第二转码操作得到的视频内容的清晰度;

通过视频分发单元获取所述第一平台分发所述第二转码操作的视频内容的回调消息;

通过视频开放单元根据所述视频审核单元的视频审核单元完成状态和所述视频分发单元的视频分发单元完成状态,确定是否将所述第二转码操作得到的视频内容标记为开放状态。

可选的,所述视频提交单元被配置为同步模式的处理单元;所述视频提交单元在进行所述执行器执行之前的单元状态为就绪状态;

所述通过视频提交单元新建视频资源并将视频资源提交给第一平台以进行转码操作,包括:

将所述视频提交单元的单元状态由所述就绪状态更新为运行状态;

若所述视频提交单元的单元状态被更新为所述运行状态,则执行以下操作:调用接口发布视频提交消息,以通知第一平台进行转码;及

若所述操作执行完成,则将所述视频提交单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频一转单元被配置为异步模式的处理单元;所述视频一转单元在调用前的单元状态为等待状态并在调用之后为就绪状态;

所述通过视频一转单元获取所述第一平台对所述视频资源的第一转码操作的回调消息,包括:

将所述视频一转单元的单元状态由所述就绪状态更新为运行状态;

若所述视频一转单元的单元状态被更新为所述运行状态,则执行以下操作:根据所述第一转码操作的回调消息更新视频信息;及

若所述操作执行完成,则将所述视频一转单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频审核单元被配置为标准模式的处理单元,所述视频审核单元包括同步处理部分和异步处理部分;所述通过视频审核单元在第二平台上创建视频审核任务,包括:

将所述视频审核单元的单元状态由预先设置的就绪状态更新为运行状态;

若所述视频审核单元的单元状态由所述就绪状态更新为运行状态,则执行所述同步处理部分:调用接口在第二平台上创建视频审核任务,以使所述第二平台进行内容审核并返回回调消息;

若所述同步处理部分执行完成,则将所述视频审核单元的单元状态由所述运行状态更新为等待状态;若监听到所述第二平台的回调消息,所述视频审核单元的单元状态由所述等待状态更新为就绪状态;

将所述视频审核单元的单元状态由所述就绪状态更新为所述运行状态;

若所述视频审核单元的单元状态由所述就绪状态更新为运行状态,则执行所述异步处理部分:根据第二平台的回调消息并更新视频的审核状态;

若所述异步处理部分执行完成,则将所述视频审核单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频二转单元被配置为异步模式的处理单元;所述视频二转单元在调用前的单元状态为等待状态并在调用之后为就绪状态;

所述通过视频二转单元获取所述第一平台对所述视频资源的第二转码操作的回调消息,包括:

将所述视频二转单元的单元状态由所述就绪状态更新为运行状态;

若所述视频二转单元的单元状态由所述就绪状态更新为运行状态,则执行以下操作:根据所述第二转码操作的回调消息更新视频信息;

若所述操作执行完成,则将所述视频二转单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频分发单元被配置为异步模式的处理单元;所述视频分发单元在调用前的单元状态为等待状态并在调用之后为就绪状态;

所述通过视频分发单元获取所述第一平台分发所述第二转码操作的视频内容的回调消息,包括;

将所述视频分发单元的单元状态由所述就绪状态更新为运行状态;

若所述视频分发单元的单元状态由所述就绪状态更新为运行状态,则执行以下操作:根据所述分发操作的回调消息,调用接口更新视频信息;

若所述操作执行完成,则将所述视频分发单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频开放单元被配置为同步模式的处理单元;所述视频开放单元在进行所述执行器执行之前的单元状态为就绪状态;

所述通过视频开放单元根据所述视频审核单元的视频审核单元完成状态和所述视频分发单元的视频分发单元完成状态,确定是否将所述第二转码操作得到的视频内容标记为开放状态,包括:

将所述视频开放单元的单元状态由所述就绪状态更新为运行状态;

若所述视频开放单元的单元状态由所述就绪状态更新为运行状态,则执行以下操作:将所述第二转码操作得到的视频内容标记为开放状态;

若所述操作执行完成,则将所述视频开放单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频提交单元为所述视频DAG中的起始节点,所述视频一转单元为所述视频提交单元的下游节点,所述视频审核单元和所述视频二转单元并列为所述视频一转单元的下游节点,所述视频分发单元为所述视频二转单元的下游节点,所述视频开放单元为所述视频审核单元的下游节点和所述视频分发单元的下游节点,且所述视频开放单元为所述视频DAG中的结束节点。

本申请实施例的一个方面又提供了一种一种基于视频DAG的视频处理装置,用于执行器中,所述装置包括:

视频提交模块,用于通过视频提交单元新建视频资源并将视频资源提交给第一平台以进行转码操作;

视频一转模块,用于通过视频一转单元获取所述第一平台对所述视频资源的第一转码操作的回调消息;

视频审核模块,用于通过视频审核单元在第二平台上创建视频审核任务,所述视频审核任务用于审核所述第一转码操作得到的视频内容;

视频二转模块,用于通过视频二转单元获取所述第一平台对所述视频资源的第二转码操作的回调消息;其中,所述第一转码操作得到的视频内容的清晰度低于所述第二转码操作得到的视频内容的清晰度;

视频分发模块,用于通过视频分发单元获取所述第一平台分发所述第二转码操作的视频内容的回调消息;

视频开放模块,用于通过视频开放单元根据所述视频审核单元的视频审核单元完成状态和所述视频分发单元的视频分发单元完成状态,确定是否将所述第二转码操作得到的视频内容标记为开放状态。

本申请实施例的一个方面又提供了一种基于DAG的稿件处理方法,用于执行器中,所述稿件包括多个视频;所述方法包括:

通过稿件DAG中的稿件提交单元新建所述稿件;及

通过所述稿件DAG中的稿件聚合单元关联各个视频DAG,并根据各个视频DAG确定是否开放所述稿件;其中,每个视频对应一个视频DAG,每个视频DAG表示处理相应视频的处理流程。

可选的,所述各个视频DAG均包括视频审核单元和视频开放单元;

所述根据各个视频DAG确定是否开放所述稿件,包括:

根据所述各个视频DAG中的视频审核单元的回调消息和视频开放单元的回调消息确定是否开放所述稿件。

可选的,所述根据各个视频DAG确定是否开放所述稿件,包括:

若一个目标DAG中的目标视频审核单元的回调消息为审核失败,则退回所述稿件;或

若一个目标DAG中的目标视频开放单元的回调消息为所述目标视频为开放状态,则根据所述目标DAG获取所述多个视频中的其他视频的开放状态,若所述其他视频均为所述开放状态,则开放所述稿件。

可选的,所述根据各个视频DAG确定是否开放所述稿件,包括:

若一个目标DAG中的目标视频审核单元的回调消息为审核失败,则退回与所述目标DAG对应的目标视频。

可选的,视频DAG的处理流程包括上述基于视频DAG的视频处理方法的步骤。

本申请实施例的一个方面又提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。

本申请实施例的一个方面又提供了一种计算机可读存储介质,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。

本申请实施例提供的基于视频DAG的视频处理方法、装置、计算机设备以及计算机可读存储介质,通过在所述视频一转单元下游并行连接用于创建视频审核任务的视频审核单元和触发高清晰度转码的视频二转单元、视频分发单元,可以有效地提高视频的审核速度和视频的平均处理速度。

附图说明

图1示意性示出了根据本申请实施例的调度系统的系统架构图;

图2示意性示出了根据本申请实施例的调度系统的操作过程图;

图3示意性示出了根据本申请实施例的调度系统的另一操作过程图;

图4示意性示出了对应于标准模式的处理单元的内部结构图;

图5示意性示出了对应于标准模式的处理单元的状态流转图;

图6示意性示出了对应于异步模式的处理单元的内部结构图;

图7示意性示出了对应于异步模式的处理单元的状态流转图;

图8示意性示出了对应于同步模式的处理单元的内部结构图;

图9示意性示出了对应于同步模式的处理单元的状态流转图;

图10示意性示出了一个DAG的示意图;

图11(A)~(E)示意性示出了DAG调度服务端在自动调度模式的调度流程图;

图12(A)~(B)示意性示出了DAG调度服务端在被动调度模式的调度流程图;

图13示意性示出了视频加工方案的视频DAG;

图14示意性示出了视频DAG中的视频提交单元的处理流程图;

图15示意性示出了视频DAG中的视频一转单元的处理流程图;

图16示意性示出了视频DAG中的视频审核单元的处理流程图;

图17示意性示出了视频DAG中的视频二转单元的处理流程图;

图18示意性示出了视频DAG中的视频分发单元的处理流程图;

图19示意性示出了视频DAG中的视频开放单元的处理流程图;

图20示意性示出了稿件的处理流程图;

图21示意性示出了稿件的另一处理流程图;

图22示意性示出了根据本申请实施例一的基于视频DAG的视频处理方法的流程图;

图23为图22中的步骤S2200的子流程图;

图24为图22中的步骤S2202的子流程图;

图25为图22中的步骤S2204的子流程图;

图26为图22中的步骤S2206的子流程图;

图27为图22中的步骤S2208的子流程图;

图28为图22中的步骤S2210的子流程图;

图29示意性示出了根据本申请实施例二的基于DAG的稿件处理方法的流程图;

图30示意性示出了根据本申请实施例三的视频DAG的视频处理装置的框图;及

图31示意性示出了根据本申请实施例四的适于实现调度方法的计算机设备的硬件架构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

本发明人了解到:视频加工主要以databus消息和http/rpc接口为主要通信方式,业务逻辑分散在不同的服务端之间,其中视频加工最主要的就是视频的转码和审核,其中涉及消息多,流程复杂。对于复杂多流程的业务开发往往需要和多个对接方进行多次交互,导致分散、复杂、难以调控。

本申请旨在提供调度系统,其按照DAG进行处理,将分散在不同服务之间的业务逻辑有序地整合在处理单元中,由内容平台的监听和调度服务统一处理,实现将分散的逻辑做成统一的调度。

以下为本申请的术语解释:

有向无环图(directed acyclic graph,DAG),DAG中各个边的方向是统一的,即均朝向同一方向,全部边都是从下游指向上游,或者都是从上游指向下游。一般来说,为了便于观察,DAG中的边统一采用从上游指向下游的方向的方式,来展示各个处理单元之间的依赖关系。依赖关系是具有方向性,边的方向表示了依赖关系的方向性。例如,在处理单元A到处理单元B之间,存在一条由处理单元A指向处理单元B的边,那么说明处理单元B依赖于处理单元A。

稿件(Archive),为多个视频的集合。

入度,是图论算法中重要的概念之一,它通常指有向图中某点作为图中边的终点的次数之和。

图1示出了本申请的用于内容处理的调度系统的系统架构。所述调度系统为对来自不同业务端的不同类型的资源进行生产和加工处理,以满足日趋丰富的资源需求。所述调度系统可以为包括视频、专栏、MV、漫画、音乐在内的各种业务提供统一的处理方案与复杂流程顺序的管理能力,方便新业务快速搭建与已有业务升级迭代。在本调度系统中,可以通过将业务逻辑抽象为DAG的方式来把分散的业务逻辑有序地整合在处理单元中,使用DAG来组织数据的处理流程,实现逻辑依赖的抽象化管理。即,根据资源的处理顺序提炼DAG中的节点关系,以降低业务搭建成本和管理/处理效率,从而降低业务开发成本,收敛资源的处理过程。

所述调度系统包括:监听服务端10、DAG调度服务端20、DAG管理服务端30、DAG状态服务端40和执行器50。

(一)监听服务端10,监听并接收来自系统内部和外部的消息。

监听服务端10可以接收来自外部业务模块提供的调度消息,如通过投稿事件消息队列、视频云消息队列提供的调度消息。

监听服务端10还可以接收所述调度系统内部提供的消息,如统一处理资源状态变化消息和回调消息,在解析消息、校验消息之后发起调度请求。示例性的,若资源发生变化,资源模块会生成资源变化,并通过数据同步系统(内容事件消息队列)将生成的资源变化传递给监听服务端10。

(二)DAG调度服务端20,用于根据DAG、单元状态确定待执行的处理单元。

DAG包括多个处理单元和处理序列,该处理序列表示DAG中各个处理单元的执行顺序和依赖关系等。

DAG调度服务端20,可以根据监听服务端10提供的调度请求触发调度。示例性的,若资源发生变化,资源模块会生成资源变化,并将生成的资源变化传递给监听服务端10。监听服务端10根据资源变化生成调度请求,并将所述调度请求发送给DAG调度服务端20。

DAG调度服务端20,可以请求DAG状态服务端40提供所述待执行的处理单元的单元状态以及设置所述待执行的处理单元的单元状态,并通知执行器50执行所述待执行的处理单元。

所述调度可以包括自动调度和手动指派。自动调度是调度系统内部自动触发,可以由资源添加、编辑、删除、处理完成等操作自动触发。手动指派是外部内容管理指定处理单元执行,用于特殊情况数据修复。

(三)DAG管理服务端30,负责管理DAG和DAG中的处理单元,包括创建,编辑,图形组织等操作。

DAG可以存储于DAG DB(DAG数据库)中,处理单元可以存储于Processor DB(处理单元数据库)中。

DAG管理服务端30可以用于创建/编辑处理单元和DAG等。示例性的,可以向一个DAG添加处理单元,可以改变DAG中各个处理单元的关系。其中,DAG包括多个处理单元(又称“节点”)和连接在处理单元之间的线,处理单元是具体处理逻辑的抽象,线是处理单元之间处理顺序的抽象。处理单元分为通用处理单元和自定义处理单元,通用处理单元可以在多个DAG中使用,其中定义了一些例如转存图片、资源送审等在各个业务中常用到的处理逻辑。自定义处理单元是由开发人员根据具体业务需求定制开发,各个处理单元之间可以功能各异。每一个处理单元,可以对应多个状态。每一个处理单元可以包括异步处理部分逻辑和/或同步处理部分逻辑。

(四)DAG状态服务端40,用于提供查询、更新和删除单元状态。

所述单元状态表示处理单元的当前状态。

示例性的,如表1所示,单元状态可以包括但不限于以下几种状态:取消、注册、就绪、运行、完成、等待(回调)、执行失败、执行错误、回调失败、回调错误、取消失败、取消错误。

表1

以某个处理单元A为例:(1)资源删除后,处理单元A则被设置为取消状态,即“取消”;(2)注册,用于等待调度的默认状态;(3)被调度准备执行时,处理单元A则被设置为就绪状态,即“就绪”;(4)执行器50开始执行前会设置处理单元A为运行状态,即“处理中”;(5)处理单元A全部执行结束,则被设置为完成状态,即“完成”;(6)如果执行时出现预期内的问题,处理单元A则被设置为执行失败状态,即“执行失败”;(7)如果出现预期外的问题,处理单元A则被设置为执行错误状态,即“执行错误”;(8)处理单元A等待外部消息时会被设置为等待状态,即“等待(回调)”;(9)如果在回调时出现预期内的问题,处理单元A则被设置为回调失败状态,即“回调失败”;(10)如果出现预期外的问题,处理单元A则被设置为回调错误状态,即“回调错误”;(11)如果在取消时出现预期内的问题,处理单元A则被设置为取消失败状态,即“取消失败”;(12)如果出现预期外的问题,处理单元A则被设置为取消错误状态,即“取消错误”。

(五)执行器50,用于具体执行各个处理单元。

执行器50接收DAG调度服务端20传递的处理单元调度消息,并根据所述处理单元调度消息进行处理操作。为了保障处理单元的有序性,执行器50设置有处理单元调度消息队列,用于确保处理单元调度消息能够有序入列出列,从而保障待执行的处理单元有序地执行处理操作。

以上通过各个设备,实现统一监听、统一调度、统一DAG和处理单元管理、统一状态管理,使得本调度系统可以高效地且集中地各种复杂业务、复杂交互,增加调控的管理效率降低业务开发成本,收敛资源的处理过程。另外,通过为处理单元设置各种状态和各个状态的流转,及各种在DAG服务端40的集中管理,有效提高处理单元的使用效率,降低处理单元的使用冲突。

以上介绍了所述调度系统的整体架构,如图2所示,所述调度系统的调度过程大致包括以下几个阶段:S200,DAG调度服务端20以RPC请求的方式从DAG管理服务端30获取DAG信息;S202,DAG调度服务端20以RPC请求的方式从DAG状态服务端40获取单元状态信息;S204,DAG调度服务端20根据DAG中各个处理单元的依赖关系计算下一个处理单元;S206,DAG调度服务端20以RPC请求的方式将单元状态设置为就绪状态;S208,DAG调度服务端2通过处理单元调度消息队列(可以为异步队列)通知执行器50执行计算出的下一个处理单元。

从处理单元调度消息队列接收到通知消息以后,执行器50从DAG状态服务端40获取处理单元的状态,并校验其是否为就绪状态,校验通过以后会把该处理单元设置为运行状态,然后根据通知消息选择执行处理单元的同步或异步处理部分,并执行之后根据具体情况将向DAG状态服务端40发送RPC请求,将处理单元更新为完成或失败状态。DAG状态服务端40返回更新结果。监听服务端10监听服务DAG状态服务端40发送处理单元执行完成消息,以进行调度循环。

以下提供的所述调度系统的一个操作过程图,如图3所示,所述操作过程如下:

S300,监听服务端10监听调度消息以发起调度请求,该调度请求可以是RPC请求;

S302,DAG调度服务端20向DAG管理服务端30请求DAG信息;

S304,DAG管理服务端30返回DAG信息给DAG调度服务端20;

S306,DAG调度服务端20向DAG状态服务端40请求DAG中各个处理单元的单元状态信息;

S308,DAG状态服务端40返回DAG中各个处理单元的单元状态信息给DAG调度服务端20;

S310,DAG调度服务端20根据DAG信息计算出接下来要处理的处理单元;

S312,DAG调度服务端20通过RPC请求DAG状态服务端40设置该处理单元的单元状态为就绪状态;

S314,DAG状态服务端40设置该处理单元的单元状态为就绪状态,并返回信息给DAG调度服务端20;

S316,DAG调度服务端20通过消息队列(处理单元消息调度队列)通知执行器50执行该处理单元;

S318,执行器50从消息队列中取出该处理单元准备执行;

S320,执行器50通过RPC请求从DAG状态服务端40获取该处理单元的单元状态;

S322,DAG状态服务端40返回该处理单元的单元状态给执行器50;

S324,执行器50验证该处理单元的单元状态是否为就绪状态;

S326,执行器50通过RPC请求DAG状态服务端40设置该处理单元的单元状态为运行状态;

S328,DAG状态服务端40设置该处理单元的单元状态为运行状态,并返回信息给执行器50;

S330,执行器50执行处理单元的同步处理部分或异步处理部分;

S332,根据该处理单元的完成情况,执行器50通过RPC请求DAG状态服务端40设置单元状态为完成或失败状态;

S334,DAG状态服务端40设置该处理单元的单元状态为完成或失败状态,并返回信息给执行器50;

S336,DAG状态服务端40发送完成消息给监听服务端10,以使得监听服务端10发起下一个调度请求,实现循环调度。

从以上内容可知,所述调度系统涉及到处理单元,处理单元的状态流转、DAG等,以下对这几者进行示例性描述:

①关于处理单元和其状态流转:

处理单元可以包括同步处理部分、异步处理部分和取消处理部分。本申请人发现,不同的业务场景对处理单元的需求不同,例如,部分业务场景中处理单元需要异步执行,不需要同步执行。有鉴于此,可以将处理单元配置多模式,以适配不同的执行需求。三种模式可以包括标准模式、异步模式和同步模式。

其一,标准模式:

如图4所示,处理单元内部可以包括同步处理部分和异步处理部分。对于同步处理部分,处理单元会在调度时被设置为就绪状态,并在执行前被设置为运行状态,然后开始执行,例如启动长耗时任务,之后处理单元被设置为等待状态。对于异步处理部分,当对外监听服务接收到任务完成的消息时,DAG调度服务端20会发起调度,处理单元在被调度时亦会被先后设为就绪状态与运行状态,在执行完异步处理部分之后,处理单元被设置为完成状态,结束这个处理单元的任务。

如图5所示,在所述标准模式下的处理单元的状态流转如下:

状态一:当处理单元被调度时首先被设置为注册状态“register”;

状态二:当处理单元在调度中被设置为就绪状态“ready”;

状态三:当处理单元准备执行同步处理部分,被设置为运行状态“running”;

状态四:当处理单元执行完成之后,被设置为等待状态“waiting”。

如果在执行同步处理部分的过程中发生了预期之内的情况,处理单元则被设置为执行失败状态。而如果在执行同步处理部分的过程中发生了预期之外的情况或者调度服务本身的异常,处理单元则被设置为执行错误状态。

状态五:当接收到回调消息之后,处理单元会再次被设置为就绪状态“ready”;

状态六:处理单元在执行异步处理部分之前被设置为运行状态“running”,并在异步处理完成之后被设置为完成状态“finish”。

如果在执行异步处理部分的过程中发生了预期之内的情况,处理单元则被设置为回调失败状态。如果在执行异步处理部分的过程中发生了预期之外的情况或者调度服务本身的异常,处理单元则被设置为回调错误状态。

其二,异步模式:

异步模式是标准模式的简化形式,适用于只有回调的业务场景。图6是异步模式的处理单元的内部结构。图7是异步模式处理单元的状态流转图。当处理单元被调度的时候首先被设置为注册状态,如果DAG调度服务端20检查到处理单元属于异步模式,则直接将其设置为等待状态。当接收到回调消息之后处理单元会再次被设置为就绪状态,并在执行异步处理部分之前被设置为运行状态,并在执行异步处理完成之后被设置为完成状态。如果在执行异步处理部分的过程中发生预期之内的情况,处理单元则会被设置为回调失败状态。如果在执行异步处理部分的过程中发生了预期之外的情况或者调度服务本身的异常,处理单元则被设置为回调错误状态。

其三,同步模式:

同步模式是标准模式的简化形式,处理单元只有同步处理部分,适用于没有回调的业务场景。图8是同步模式处理单元的内部结构。图9是同步模式处理单元的状态流转图。当处理单元被调度的时候首先被设置为注册状态,并在调度中被设置为就绪状态。在准备执行同步处理部分时,处理单元被设置为运行状态,并在执行完成之后被设置为完成状态,结束这个处理单元的运行。

在处理单元没有区分各种模式的情况下,每一个处理单元均包括同步处理部分、异步处理部分和取消处理部分三个部分。但是有些业务的某些处理单元不需要同步处理部分,如果按照之前的方式,DAG调度服务端20仍然会通知执行器50执行处理单元的同步处理部分,在不执行任何具体业务代码的条件下将处理单元设置为等待状态,这种情况相当于DAG调度服务端20和执行器50服务空转一次。在本实施例中,将处理单元分为以上三种模式优势如下:如果某个业务的某些处理单元不需要同步处理部分,DAG调度服务端20可以对将该处理单元直接设置为等待状态。因此,节省了一次执行器50的空转执行的步骤,也节省了DAG调度服务端50和执行器50在空转时的由于单元状态校验导致的数据库交互,进而从整体上提升了调度系统的运转和处理效率。

即,通过同步模式和异步模式,使得处理单元更贴切具体的业务场景,更有效节省调度资源,减少执行器50的工作负载,减少和数据库的交互次数,有效提高整个调度系统的运转和处理效率。

②关于DAG:

图10是一个DAG的示意图。在该DAG包括处理单元1~6以及各个处理单元之间的依赖关系与执行顺序。需要说明的是,每个处理单元在执行前都会自动检查上游的所有处理单元的状态,所有上游处理都处于完成状态时,当前处理单元才会执行。另外,每个处理单元在变为完成状态时会自动尝试触发下游处理单元。不同的业务、不同的逻辑对应于不同的DAG。在所述调度系统运行过程中,DAG调度服务端20可以以广度优先遍历的方式获取DAG的节点(即处理单元)。

根据DAG、DAG中的处理单元的单元状态可以实施调度,即决定哪一个处理单元为待执行的处理单元(即,接下来要处理的处理单元)。所述调度可以根据资源变化和处理单元执行完成被触发。所述触发方式可以包括以下几种:

第一种:资源添加;

第二种:资源更新;

第三种:资源删除;

第四种:资源回调;

第五种:处理单元从运行状态变为完成状态。

监听服务端10根据不同的触发方式向DAG调度服务端20的RPC调度接口发送不同的请求参数,触发方式根据调度类型字段确定。DAG调度服务端20根据不同的请求参数选择不同的调度策略。

所述调度可以包括自动调度模式和被动调度模式。

以下列举几种自动调度模式下的调度过程:

如图11(A)所示,当调度的触发方式为资源添加,DAG调度服务端20可以执行以下操作:步骤S1100A,获取对应资源的DAG;步骤S1102A,计算DAG中所有入度为0的处理单元;步骤S1104A,将入度为0的处理单元设置为就绪状态;步骤S1106A,通知执行器50执行所有入度为0的处理单元的同步处理部分。需要说明的是,该调度过程中没有“获取单元状态”的步骤。

如图11(B)所示,当调度的触发方式为资源更新,调度服务端20可以执行以下操作:步骤S1100B,获取对应资源的DAG;步骤S1102B,根据DAG确定待执行的处理单元;步骤S1104B,获取所述待执行的处理单元的单元状态(用于校验是否可以被调用);步骤S1106B,将该待执行的处理单元设置为就绪状态,并将位于该待执行的处理单元下游的所有处理单元重新设置为注册状态,以等待后续调度;步骤S1108B,通知执行器50执行该待执行的处理单元的同步处理部分。

如图11(C)所示,当调度的触发方式为资源删除,DAG调度服务端20可以执行以下操作:步骤S1100C,获取对应资源的DAG;步骤S1102C,计算出DAG中的所有处理单元;步骤S1104C,将DAG中的所有处理单元分别设置为就绪状态;步骤S1106C,通知执行器50执行DAG中的各个处理单元中的取消处理部分。需要说明的是,该调度过程中没有“获取单元状态”的步骤。

如图11(D)所示,当调度的触发方式为资源回调,DAG调度服务端20可以执行以下操作:步骤S1100D,获取对应资源的DAG;步骤S1102D,根据DAG和回调消息找到待执行的处理单元;步骤S1102D,获取所述待执行的处理单元的单元状态(用于校验是否可以被调用);步骤S1106D,将该处理单元设置为就绪状态;步骤S1108D,通知执行器50执行该处理单元的异步处理部分。

如图11(E)所示,当调度的触发方式为处理单元的完成消息,DAG调度服务端20可以执行以下操作:步骤1100E,获取对应资源的DAG;步骤1102E,根据DAG找到该完成状态处理单元的下游处理单元;步骤1104E,将下游处理单元设置为就绪状态或等待状态;步骤1106E,通知执行器50执行下游处理单元的异步处理部分。需要说明的是,该调度过程中没有“获取单元状态”的步骤。

上面描述了自动调度。自动调度是根据资源的新增、更新、删除以及回调消息等自动触发。但是在业务开发迭代过程中有时会遇到诸如洗数据等特殊情况,需要重新执行处理单元,为了适应这些情况,调度系统在自动调度的基础上扩展的手动指派的调度方式来手动操作以执行处理单元。

以下列举几种被动调度模式(手动调度模式)下的调度过程:

如图12(A)所示,若需要重新执行DAG中的所有处理单元,DAG调度服务端20执行以下操作:步骤S1200A,获取当前资源的DAG;步骤S1202A,根据DAG计算出入度为0的处理单元;步骤S1204A,将入度为0的处理单元设置为就绪状态,将DAG中的其他的处理单元设置为注册状态;步骤S1206A,通知执行器50开始执行。需要说明的是,该调度过程中可以没有“获取单元状态”的步骤。

如图12(B)所示,若需要重新执行DAG中的某一个指定处理单元,DAG调度服务端20执行以下操作:步骤S1200B,获取当前资源的DAG;步骤S1202B,根据DAG按照广度优先遍历的方式计算出指定处理单元的所有下游处理单元;步骤S1204B,将指定处理单元设置为就绪状态,将下游的处理单元设置为注册状态;步骤S1206B,通知执行器50开始执行。需要说明的是,该调度过程中可以没有“获取单元状态”的步骤。

上述调度过程有效扩展了调度系统的能力,可以有效应对特殊业务需求,在重洗数据、异常纠错等方面使系统更加灵活。

所述调度系统可以应用多种场景中,例如视频加工场景中。下文将介绍基于所述调度系统的视频加工方案。

在本实施例中,视频加工方案可以配置如图13所示的视频DAG。该视频DAG包括多个处理单元且多个处理单元的依赖关系如下:

视频提交单元A1为起始节点,视频一转单元A2为视频提交单元A1的下游节点,视频审核单元A3和视频二转单元A4并列并均为视频一转单元A2的下游节点,视频分发单元A5为视频二转单元A4的下游节点,视频开放单元A6为视频审核单元A3和视频分发单元A5的下游节点。在本实施例中,视频DAG在视频一转单元A2之后可以并行创建将对应于视频审核单元A3的视频审核任务和对应于视频二转单元A4的高清晰度转码任务,并通过视频开放单元A6聚合视频审核单元A3和视频分发单元A5。当视频审核单元A3和视频分发单元A5均完成时,视频开放单元A6被触发进入运行状态,以开放视频。上述并行结果可以提高视频的处理速度,提升用户体验。据统计采用上述并行设置,视频的平均处理时间,从610秒下降到530秒,下降13%。

视频提交单元A1,为同步模式的处理单元,用于视频资源新建并将视频资源提交给视频云转码平台以开启转码。

如图14所示,用户通过投稿服务将视频上传到内容资源端,数据同步系统将内容资源端的视频新增消息提供给监听服务端10。响应于该视频新增消息,监听服务端10向DAG调度服务端20发送调度请求。响应于该调度请求,DAG调度服务端20通过队列通知执行器50执行视频提交单元A1:(1)准备执行:请求DAG状态服务端40更新视频处理单元A1的单元状态为运行状态;(2)执行:调用接口发布视频提交消息,以通知视频云转码平台开始转码服务;(3)执行完成:请求DAG状态服务端40更新视频处理单元A1的单元状态为完成状态。DAG状态服务端40生成“视频提交完成消息”,并将该“视频提交完成消息”提交给监听服务端10。

视频一转单元A2,为异步模式的处理单元。视频一转在视频云转码平台中实施,在于将用户上传的视频先被转码为清晰度较低视频,该清晰度较低视频可以用于视频内容审核流程,速度快,耗时短。

如图15所示,当视频一转单元A2被调度的时候被设置为注册状态,如果DAG调度服务端20检查到视频一转单元A2属于异步模式,则直接将其设置为等待状态。当接收到来自视频云转码平台的回调消息(“视频一转成功消息”)之后,视频一转单元A2会再次被设置为就绪状态,并通过队列通知执行器50执行如下操作:(1)准备执行:将视频一转单元A2的单元状态设置为运行状态;(2)执行:根据回调消息调用接口更新视频信息;(3)执行完成:请求DAG状态服务端40更新视频一转单元A2的单元状态为完成状态。需要说明的是,将视频一转单元A2的单元状态为完成状态后,DAG状态服务端40生成“视频一转完成消息”,并将该“视频一转完成消息”提交给监听服务端10。

视频审核单元A3,为标准模式的处理单元,用于在审核平台上创建视频审核任务。审核平台会将审核结果通过异步消息队列传递给视频审核单元A3。视频审核单元A3的异步处理部分会接收到该审核结果。审核结果包括审核通过和审核不通过。若审核不通过,则视频需要用户重新编辑。

如图16所示,监听服务端10接收“视频一转完成消息”。响应于该“视频一转完成消息”,监听服务端10向DAG调度服务端20发送调度请求。响应于该调度请求,DAG调度服务端20通过队列通知执行器50执行视频审核单元A3。视频审核单元A3包括同步处理部分和异步处理部分。其中,同步处理部分包括:(1)准备执行:请求DAG状态服务端40更新视频审核单元A3的单元状态为运行状态;(2)执行:调用接口在审核平台上创建视频审核任务;(3)执行完成:请求DAG状态服务端40更新视频审核单元A3的单元状态为等待状态。异步处理部分为回调处理,包括:当接收到来自审核平台的回调消息(“审核消息”)之后,视频审核单元A3会再次被设置为就绪状态,并通过队列通知执行器50执行如下操作:(1)准备执行:将视频审核单元A3的单元状态设置为运行状态;(2)执行:根据审核平台的回调消息,并更新视频的审核状态;(3)执行完成;请求DAG状态服务端40更新视频审核单元A3的单元状态为完成状态。更新为完成状态后,DAG状态服务端40生成“视频审核完成消息”,并将该“视频审核完成消息”提交给监听服务端10。

视频二转单元A4,为异步模式的处理单元。视频二转在视频云转码平台中实施,在于将用户上传的视频先被转码为清晰度较高视频,该清晰度较高视频可为面向用户的视频,格式统一。

如图17所示,当视频二转单元A4被调度的时候被设置为注册状态,如果DAG调度服务端20检查到视频二转单元A4属于异步模式,则直接将其设置为等待状态。当接收到来自视频云转码平台的回调消息(“视频二转消息”)之后,视频二转单元A4会再次被设置为就绪状态,并通过队列通知执行器50执行如下操作:(1)准备执行:将视频二转单元A4的单元状态设置为运行状态;(2)执行:根据视频云转码平台返回的回调消息调用接口更新视频信息;(3)执行完成:请求DAG状态服务端40更新视频二转单元A4的单元状态为完成状态。需要说明的是,更新为完成状态后,DAG状态服务端40生成“视频二转完成消息”,并将该“视频二转完成消息”提交给监听服务端10。

视频云转码平台对视频二转之后,会给二转之后的视频分发到CDN(ContentDelivery Network,内容分发网络)上,以便用户快速获取视频。视频分发单元A5在分发完成后接收分发完成的消息。

视频分发单元A5,为异步模式的处理单元。

如图18所示,当视频分发单元A5被调度的时候被设置为注册状态,如果DAG调度服务端20检查到视频分发单元A5属于异步模式,则直接将其设置为等待状态。当接收到来自视频云转码平台的回调消息(“视频分发消息”)之后,视频分发单元A5会再次被设置为就绪状态,并通过队列通知执行器50执行如下操作:(1)准备执行:将视频二转单元A4的单元状态设置为运行状态;(2)执行:根据视频云转码平台的分发消息,调用接口视频信息;(3)执行完成;请求DAG状态服务端40更新视频分发单元A5的单元状态为完成状态。更新为完成状态后,DAG状态服务端40生成“视频分发完成消息”,并将该“视频分发完成消息”提交给监听服务端10。

视频开放单元A6,为同步模式的处理单元。

如图19所示,监听服务端10接收“视频二转完成消息”和“视频审核完成消息”。响应于该“视频二转完成消息”和“视频审核完成消息”,监听服务端10向DAG调度服务端20发送调度请求。响应于该调度请求,DAG调度服务端20将视频开放单元A6设置为就绪状态,并通过队列通知执行器50执行:(1)准备执行:将视频开放单元A6的单元状态设置为运行状态(处理中);(2)执行:调用接口更新视频信息,将视频标记为开放状态;(3)执行完成;请求DAG状态服务端40更新视频开放单元A6的单元状态为完成状态。更新为完成状态后,DAG状态服务端40生成“视频开放完成消息”,并将该“视频分发完成消息”提交给监听服务端10,调度结束。

上面介绍了视频加工方案,下面将介绍稿件加工方案,稿件为多个视频的集合。

稿件DAG可以包括以下两个处理单元:稿件提交单元和稿件聚合单元。

稿件提交单元,表示用户投稿一个稿件,会对应的执行通知下游投稿事件、记录投稿日志等等操作。

稿件聚合单元,将根据稿件资源下面的所有视频资源的状态决定稿件资源的状态。如果一个稿件资源下面的所有视频处理完成,稿件聚合单元则会把稿件设置为开放状态,并对用户开放。

在本实施例中,为了丰富资源之间的关系,调度系统提供内容关系服务,如父子-从属、兄弟-副本等。例如,稿件和视频的关系为从属关系。资源之间的关系建立可以关联各自资源的处理单元,即可以实现DAG之间的联动,以稿件和视频为例,一个稿件可以包括多个视频。在所述调用系统中,稿件为父资源,视频是子资源。视频DAG的处理过程中会触发稿件DAG的处理。

下面结合图20,介绍调度系统对一个稿件的处理流程。

该稿件包括第一视频和第二视频。如图20所示,调度系统新建2个视频处理资源和一个稿件处理资源。这三个资源可以通过父子关系关联,稿件作为2个视频的父资源,视频作为稿件的子资源。

稿件对应稿件DAG,包括稿件提交单元C1和稿件聚合单元C2。

第一视频对应第一视频DAG,第一视频DAG包括视频提交单元A1、视频一转单元A2、视频审核单元A3、视频二转单元A4、视频分发单元A5、视频开放单元A6。

第二视频对应第二视频DAG,第二视频DAG包括视频提交单元B1、视频一转单元B2、视频审核单元B3、视频二转单元B4、视频分发单元B5、视频开放单元B6。

以第一视频DAG为例,视频提交单元A1会触发视频云转码平台的视频转码操作(视频一转),视频一转单元A2是一个异步模式的处理单元,视频一转单元A2在视频提交单元A1完成之后被设置为等待状态,等待并接收来自视频云转码平台的低清晰度视频转码成功或失败消息。如果转码成功,视频一转单元A2被设置为完成状态。所述调度系统根据第一视频DAG确定下一个处理单元,即视频审核单元A3、视频二转单元A4。视频审核单元A3和视频二转单元A4并行执行。视频审核单元A3是一个标准模式的处理单元,视频审核单元A3在同步处理部分去审核平台上创建视频审核任务,并通过异步处理部分等待审核消息。视频二转单元A4也是异步模式的处理单元,会被设置为等待状态并等待接收高清转码成功或失败的消息。视频分发单元A5也是一个异步模式的处理单元,在视频云转码平台将视频分发到CDN之后,该视频分发单元A5会接收到分发完成的消息。所述调度系统在调度视频开放单元A6之前会检查视频审核和视频分发处理单元是否都已完成,若都已经完成所述调度系统会调度视频开放单元A6。视频开放单元A6是一个同步模式的处理单元,视频开放单元A6会在同步执行部分将视频资源状态设置为开放。

稿件DAG和第一视频DAG、第二视频DAG具有关联关系。该关联关系可以包括:关联处理、联动时机和联动结果中。在稿件DAG中,稿件提交单元C1是一个同步模式的处理单元。稿件提交单元C1会通知其他业务方有新的稿件进入、记录稿件提交日志等。稿件聚合单元C2是一个异步模式的处理单元,异步处理部分接收来自第一视频DAG和第二视频DAG的联动操作。

视频审核单元A3/B3和视频开放单元A6/B6会触发稿件聚合单元C2。示例性的,如果第一视频被审核退回,视频审核单元A3会生成回调消息通知稿件聚合单元C2,稿件聚合单元C2接收到表示退回的回调消息后会直接退回该稿件,并通知用户,而不继续等待其他视频(第二视频)的处理。如果第一视频审核通过,视频开放单元A6通过回调消息通知稿件聚合单元C2。稿件聚合单元C2接收到审核通过消息以后会根据内容关系找到所有视频子资源,然后检查所有视频的状态。如果其他视频(第二视频)处于待审状态,稿件聚合单元C2就继续等待。如果第一视频和第二视频均处于开放状态,该稿件将会开放,然后给用户发送稿件开放通知。

以上为稿件和视频的联合处理过程。下面讲特殊审核情况的讨论:

示例性的,如果第一视频被审核退回,视频审核单元A3会生成回调消息通知稿件聚合单元,稿件聚合单元接收到表示退回的回调退回消息后会直接退回该稿件,并通知用户,而其他视频(第二视频)继续处理直至进入视频开放状态。经过修改后,如果第一视频审核通过,视频开放单元A6通过回调消息通知稿件聚合单元稿件聚合单元接收到审核通过消息以后会根据内容关系找到所有视频子资源,然后检查所有视频的状态。如果其他视频(第二视频)审核通过,且果第一视频和其他视频(第二视频)且处于开放状态。该稿件将会开放,然后给用户发送稿件开放通知。如图21所示,第一视频经过两次视频处理流程,第二视频经过一次视频处理流程。

实施例一

本实施例以执行器50为执行主体进行描述,技术细节和效果可参考上文。

图22示意性示出了根据本申请实施例一的基于视频DAG的视频处理方法的流程图。

如图22所示,该基于视频DAG的视频处理方法可以包括步骤S2200~2210,其中:

步骤S2200,通过视频提交单元新建视频资源并将视频资源提交给第一平台(如视频云转码平台)以进行转码操作;

步骤S2202,通过视频一转单元获取所述第一平台对所述视频资源的第一转码操作的回调消息;

步骤S2204,通过视频审核单元在第二平台(如审核平台)上创建视频审核任务,所述视频审核任务用于审核所述第一转码操作得到的视频内容;

步骤S2206,通过视频二转单元获取所述第一平台对所述视频资源的第二转码操作的回调消息;其中,所述第一转码操作得到的视频内容的清晰度低于所述第二转码操作得到的视频内容的清晰度;

步骤S2208,通过视频分发单元获取所述第一平台分发所述第二转码操作的视频内容的回调消息;

步骤S2210,通过视频开放单元根据所述视频审核单元的视频审核单元完成状态和所述视频分发单元的视频分发单元完成状态,确定是否将所述第二转码操作得到的视频内容标记为开放状态。

作为示例,所述视频提交单元被配置为同步模式的处理单元;所述视频提交单元在进行所述执行器执行之前的单元状态为就绪状态。如图23所示,所述步骤S2200可以步骤S2300~S2304,其中:

步骤S2300,将所述视频提交单元的单元状态由所述就绪状态更新为运行状态;

步骤S2302,若所述视频提交单元的单元状态被更新为所述运行状态,则执行以下操作:调用接口发布视频提交消息,以通知第一平台进行转码;及

步骤S2304,若所述操作执行完成,则将所述视频提交单元的单元状态由所述运行状态更新为完成状态。

作为示例,所述视频一转单元被配置为异步模式的处理单元;所述视频一转单元在调用前的单元状态为等待状态并在调用之后为就绪状态。如图24所示,所述步骤S2202可以步骤S2400~S2404,其中:

步骤S2400,将所述视频一转单元的单元状态由所述就绪状态更新为运行状态;

步骤S2402,若所述视频一转单元的单元状态被更新为所述运行状态,则执行以下操作:根据所述第一转码操作的回调消息更新视频信息;及

步骤S2404,若所述操作执行完成,则将所述视频一转单元的单元状态由所述运行状态更新为完成状态。

作为示例,所述视频审核单元被配置为标准模式的处理单元,所述视频审核单元包括同步处理部分和异步处理部分。如图25所示,所述步骤S2204可以步骤S2500~S2510,其中:

步骤S2500,将所述视频审核单元的单元状态由预先设置的就绪状态更新为运行状态;

步骤S2502,若所述视频审核单元的单元状态由所述就绪状态更新为运行状态,则执行所述同步处理部分:调用接口在第二平台上创建视频审核任务,以使所述第二平台进行内容审核并返回回调消息;

步骤S2504,若所述同步处理部分执行完成,则将所述视频审核单元的单元状态由所述运行状态更新为等待状态;若监听到所述第二平台的回调消息,所述视频审核单元的单元状态由所述等待状态更新为就绪状态;

步骤S2506,将所述视频审核单元的单元状态由所述就绪状态更新为所述运行状态;

步骤S2508,若所述视频审核单元的单元状态由所述就绪状态更新为运行状态,则执行所述异步处理部分:根据第二平台的回调消息并更新视频的审核状态;

步骤S2510,若所述异步处理部分执行完成,则将所述视频审核单元的单元状态由所述运行状态更新为完成状态。

作为示例,所述视频二转单元被配置为异步模式的处理单元;所述视频二转单元在调用前的单元状态为等待状态并在调用之后为就绪状态。如图26所示,所述步骤S2206可以步骤S2600~S2604,其中:

步骤S2600,将所述视频二转单元的单元状态由所述就绪状态更新为运行状态;

步骤S2602,若所述视频二转单元的单元状态由所述就绪状态更新为运行状态,则执行以下操作:根据所述第二转码操作的回调消息更新视频信息;

步骤S2604,若所述操作执行完成,则将所述视频二转单元的单元状态由所述运行状态更新为完成状态。

作为示例,所述视频分发单元被配置为异步模式的处理单元;所述视频分发单元在调用前的单元状态为等待状态并在调用之后为就绪状态。如图27所示,所述步骤S2208可以步骤S2700~S2704,其中:

步骤S2700,将所述视频分发单元的单元状态由所述就绪状态更新为运行状态;

步骤S2702,若所述视频分发单元的单元状态由所述就绪状态更新为运行状态,则执行以下操作:根据所述分发操作的回调消息,调用接口更新视频信息;

步骤S2704,若所述操作执行完成,则将所述视频分发单元的单元状态由所述运行状态更新为完成状态。

作为示例,所述视频开放单元被配置为同步模式的处理单元;所述视频开放单元在进行所述执行器执行之前的单元状态为就绪状态。如图28所示,所述步骤S2210可以步骤S2800~S2804,其中:

步骤S2800,将所述视频开放单元的单元状态由所述就绪状态更新为运行状态;

步骤S2802,若所述视频开放单元的单元状态由所述就绪状态更新为运行状态,则执行以下操作:将所述第二转码操作得到的视频内容标记为开放状态;

步骤S2804,若所述操作执行完成,则将所述视频开放单元的单元状态由所述运行状态更新为完成状态。

作为示例,所述视频提交单元为所述视频DAG中的起始节点,所述视频一转单元为所述视频提交单元的下游节点,所述视频审核单元和所述视频二转单元并列为所述视频一转单元的下游节点,所述视频分发单元为所述视频二转单元的下游节点,所述视频开放单元为所述视频审核单元的下游节点和所述视频分发单元的下游节点,且所述视频开放单元为所述视频DAG中的结束节点。

实施例二

本实施例以执行器50为执行主体进行描述,技术细节和效果可参考上文。

图29示意性示出了根据本申请实施例二的基于DAG的稿件处理方法的流程图。所述稿件包括多个视频。如图29所示,该基于DAG的稿件处理方法可以包括步骤S2900~S2902,其中:

步骤S2900,通过稿件DAG中的稿件提交单元新建所述稿件;及

步骤S2902,通过所述稿件DAG中的稿件聚合单元关联各个视频DAG,并根据各个视频DAG确定是否开放所述稿件;其中,每个视频对应一个视频DAG,每个视频DAG表示处理相应视频的处理流程。

作为示例,所述各个视频DAG均包括视频审核单元和视频开放单元;

所述根据各个视频DAG确定是否开放所述稿件,包括:

根据所述各个视频DAG中的视频审核单元的回调消息和视频开放单元的回调消息确定是否开放所述稿件。

作为示例,所述根据各个视频DAG确定是否开放所述稿件,包括:

若一个目标DAG中的目标视频审核单元的回调消息为审核失败,则退回所述稿件;或

若一个目标DAG中的目标视频开放单元的回调消息为所述目标视频为开放状态,则根据所述目标DAG获取所述多个视频中的其他视频的开放状态,若所述其他视频均为所述开放状态,则开放所述稿件。

作为示例,所述根据各个视频DAG确定是否开放所述稿件,包括:

若一个目标DAG中的目标视频审核单元的回调消息为审核失败,则退回与所述目标DAG对应的目标视频。

作为示例,视频DAG的处理流程包括实施例一所述方法的步骤。即,各个视频DAG的实施细节可参照实施例一。

实施例三

图30示意性示出了根据本申请实施例三的基于视频DAG的视频处理装置的框图,该基于视频DAG的视频处理装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。

如图30所示,该用于基于视频DAG的视频处理装置3000可以包括:

视频提交模块3010,用于通过视频提交单元新建视频资源并将视频资源提交给第一平台以进行转码操作;

视频一转模块3020,用于通过视频一转单元获取所述第一平台对所述视频资源的第一转码操作的回调消息;

视频审核模块3030,用于通过视频审核单元在第二平台上创建视频审核任务,所述视频审核任务用于审核所述第一转码操作得到的视频内容;

视频二转模块3040,用于通过视频二转单元获取所述第一平台对所述视频资源的第二转码操作的回调消息;其中,所述第一转码操作得到的视频内容的清晰度低于所述第二转码操作得到的视频内容的清晰度;

视频分发模块3050,用于通过视频分发单元获取所述第一平台分发所述第二转码操作的视频内容的回调消息;

视频开放模块3060,用于通过视频开放单元根据所述视频审核单元的视频审核单元完成状态和所述视频分发单元的视频分发单元完成状态,确定是否将所述第二转码操作得到的视频内容标记为开放状态。

可选的,所述视频提交单元被配置为同步模式的处理单元;所述视频提交单元在进行所述执行器执行之前的单元状态为就绪状态;

作为示例,所述视频提交模块3010,还用于:

将所述视频提交单元的单元状态由所述就绪状态更新为运行状态;

若所述视频提交单元的单元状态被更新为所述运行状态,则执行以下操作:调用接口发布视频提交消息,以通知第一平台进行转码;及

若所述操作执行完成,则将所述视频提交单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频一转单元被配置为异步模式的处理单元;所述视频一转单元在调用前的单元状态为等待状态并在调用之后为就绪状态;

作为示例,所述视频一转模块3020,还用于:

将所述视频一转单元的单元状态由所述就绪状态更新为运行状态;

若所述视频一转单元的单元状态被更新为所述运行状态,则执行以下操作:根据所述第一转码操作的回调消息更新视频信息;及

若所述操作执行完成,则将所述视频一转单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频审核单元被配置为标准模式的处理单元,所述视频审核单元包括同步处理部分和异步处理部分;

作为示例,所述视频审核模块3030,还用于:

将所述视频审核单元的单元状态由预先设置的就绪状态更新为运行状态;

若所述视频审核单元的单元状态由所述就绪状态更新为运行状态,则执行所述同步处理部分:调用接口在第二平台上创建视频审核任务,以使所述第二平台进行内容审核并返回回调消息;

若所述同步处理部分执行完成,则将所述视频审核单元的单元状态由所述运行状态更新为等待状态;若监听到所述第二平台的回调消息,所述视频审核单元的单元状态由所述等待状态更新为就绪状态;

将所述视频审核单元的单元状态由所述就绪状态更新为所述运行状态;

若所述视频审核单元的单元状态由所述就绪状态更新为运行状态,则执行所述异步处理部分:根据第二平台的回调消息并更新视频的审核状态;

若所述异步处理部分执行完成,则将所述视频审核单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频二转单元被配置为异步模式的处理单元;所述视频二转单元在调用前的单元状态为等待状态并在调用之后为就绪状态;

作为示例,所述视频二转模块3040,还用于:

将所述视频二转单元的单元状态由所述就绪状态更新为运行状态;

若所述视频二转单元的单元状态由所述就绪状态更新为运行状态,则执行以下操作:根据所述第二转码操作的回调消息更新视频信息;

若所述操作执行完成,则将所述视频二转单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频分发单元被配置为异步模式的处理单元;所述视频分发单元在调用前的单元状态为等待状态并在调用之后为就绪状态;

作为示例,所述视频分发模块3050,还用于:

将所述视频分发单元的单元状态由所述就绪状态更新为运行状态;

若所述视频分发单元的单元状态由所述就绪状态更新为运行状态,则执行以下操作:根据所述分发操作的回调消息,调用接口更新视频信息;

若所述操作执行完成,则将所述视频分发单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频开放单元被配置为同步模式的处理单元;所述视频开放单元在进行所述执行器执行之前的单元状态为就绪状态;

作为示例,所述视频开放模块3060,还用于:

将所述视频开放单元的单元状态由所述就绪状态更新为运行状态;

若所述视频开放单元的单元状态由所述就绪状态更新为运行状态,则执行以下操作:将所述第二转码操作得到的视频内容标记为开放状态;

若所述操作执行完成,则将所述视频开放单元的单元状态由所述运行状态更新为完成状态。

可选的,所述视频提交单元为所述视频DAG中的起始节点,所述视频一转单元为所述视频提交单元的下游节点,所述视频审核单元和所述视频二转单元并列为所述视频一转单元的下游节点,所述视频分发单元为所述视频二转单元的下游节点,所述视频开放单元为所述视频审核单元的下游节点和所述视频分发单元的下游节点,且所述视频开放单元为所述视频DAG中的结束节点。

实施例四

图31示意性示出了根据本申请实施例四的适于实现调度方法的计算机设备10000的硬件架构示意图。本实施例中,计算机设备10000可以作为监听服务端10、DAG调度服务端20、DAG管理服务端30、DAG状态服务端40、执行器50或作为它们中任意个设备的一部分。在本实施例中,计算机设备10000是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图31所示,计算机设备10000至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:

存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如;SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如调度方法、用于视频处理的用于稿件处理的基于DAG的稿件处理方法或基于视频DAG的视频处理方等的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。

网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。

需要指出的是,图31仅示出了具有部件10010-10030的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。

在本实施例中,存储于存储器10010中的调度方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本申请实施例。

实施例五

本申请还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的调度方法的步骤。

本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如;SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中调度方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。

显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号