分布式转码方法和系统与流程

文档序号:11235107阅读:447来源:国知局
分布式转码方法和系统与流程

本发明涉及互联网技术领域,特别涉及分布式转码方法和系统。



背景技术:

在互联网高速发展的今天,媒体资源十分丰富,许多门户网站、社交网站每天都要有大量的视频需要转码,更不用说互联网或广电视频运营商了,几十到几百pb的源数据就会导致存储任务重、转码耗cpu资源高、持续时间长、高级编码算法(hevc)下一般配置服务器无法实时作业等问题,因此需要专门的架构来快速处理各种不同的转码任务,同时支持高并发、高可用的服务。

现在的视频内容是在不同的网络之间传输,并且在不同的终端之上播放,其数据来源和输出均为多样化,例如可能是ftp、http和unc等,同时转码节目的分辨率、码率和封装格式各不相同,因此要求系统能够满足客户不同的业务需求。对于新闻快速上线这类实时性较强的转码应用,其业务存在持续性,即“边转边播边看”,因此对系统实时性、可用性和稳定性要求很高。同时用户希望在多终端上都能看到最新的视频内容,因此转码系统必须为多平台发布提供适宜的节目源,确保满足不同终端的观看需求。

然而,现有的转码系统只能处理单一类型的转码请求,比如单纯的直播转码或者点播转码,不支持各种不同业务的转码任务,比如录制、截图和点播转码混用,现有的转码系统不支持多元的数据输入输出,无法满足复杂多变的用户需求。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了分布式转码方法和系统。所述技术方案如下:

一方面,分布式转码方法,包括以下步骤:

接收各种不同的转码请求,并转发到对应的业务转码集群;

不同的业务转码集群将各自接收到的所述转码请求进行解析,并根据转码请求对应的调度策略将所述转码请求转发到具体的转码机器单元;

所述转码机器单元在接收到所述转码请求后进行转码操作。

进一步的,所述接收各种不同的转码请求,并转发到对应的业务转码集群的步骤具体包括:

接收所述各种不同的转码请求,并判断所述转码请求的业务类型,将不同业务类型的所述转码请求转发到所述对应的业务转码集群。

进一步的,所述分布式转码方法还包括以下步骤:

对各个业务转码集群进行探测,并采用资源调度的方式确保各个相同业务转码集群的负载均衡。

进一步的,所述不同的业务转码集群将各自接收到的所述转码请求进行解析,并根据所述转码请求对应的调度策略将所述转码请求转发到具体的转码机器单元的步骤具体包括:

所述不同的业务转码集群将各自接收到的所述转码请求进行解析,将相关的请求参数对应存入数据库中,以供外部查询任务执行结果;

收集各自业务转码集群内所有的转码机器单元的资源情况,并根据所述资源情况采用相应的调度策略;

根据所述相应的调度策略将所述转码请求转发到所述具体的转码机器单元。

进一步的,所述转码机器单元在接收到请求后进行转码操作的步骤具体包括:

所述转码机器单元在接收到所述转码请求后进行解析,并根据解析出来的转码参数进行所述转码操作;

在执行转码任务过程中,实时向对应的业务转码集群的集群资源调度组件汇报任务的执行情况、进度信息以及资源状况;

将转码完成的文件或数据流上传或推送到对应的目标地址以完成对应的转码任务。

进一步的,所述转码机器单元为一个或多个,并根据所述对应的调度策略选择同时或先后进行所述转码操作。

另一方面,分布式转码系统,其中,所述分布式转码系统包括业务类型调度组件、一个或多个集群资源调度组件以及一个或多个转码机器单元,其中,

所述业务类型调度组件,用于接收各种不同的转码请求,并转发到对应的集群资源调度组件;

所述集群资源调度组件,用于将接收到的所述转码请求进行解析,并根据所述请求对应的调度策略将所述转码请求转发到具体的转码机器单元;以及

所述转码机器单元,用于在接收到所述转码请求后进行转码操作。

进一步的,所述业务类型调度组件,具体用于:

接收各种不同的转码请求,并判断所述转码请求的业务类型,将不同业务类型的所述转码请求转发到所述对应的集群资源调度组件。

进一步的,所述业务类型调度组件,还用于对各个集群资源调度组件进行探测,并采用资源调度的方式确保各个集群资源调度组件的负载均衡。

进一步的,所述集群资源调度组件,具体用于:

将接收到的所述转码请求进行解析,将相关的请求参数对应存入数据库中,以供外部查询任务执行结果;

收集各自集群资源调度组件内所有的转码机器单元的资源情况,并根据所述资源情况采用相应的调度策略;

根据所述相应的调度策略将所述转码请求转发到所述具体的转码机器单元。

进一步的,所述转码机器单元,具体用于:

在接收到所述转码请求后进行解析,并根据解析出来的转码参数进行所述转码操作;

在执行转码任务过程中,实时向所述对应的集群资源调度组件汇报任务的执行情况、进度信息以及资源状况;

将转码完成的文件或数据流上传或推送到对应的目标地址以完成对应的所述转码任务。

进一步的,采用所述多个转码机器单元时,所述集群资源调度组件选择将所述转码请求同时或先后转发至所述多个转码机器单元,并且所述多个转码机器单元同时或先后执行所述转码操作。

本发明实施例提供的技术方案带来的有益效果是:本发明通过设置业务类型调度组件、集群资源调度组件和转码机器单元三个不同的组件分别负责不同的功能,支持多种不同转码业务混合使用,支持多元的数据输入输出,灵活处理不同的业务场景,进而能满足更加复杂多变的用户需求。本发明针对不同的转码业务,采取了不同的监控策略和备份策略,进而确保各种不同业务对实时性和可靠性的不同要求。

附图说明

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

图1为本发明一实施方式中分布式转码方法流程图;

图2为本发明一实施方式中图1所示的步骤s2的具体流程图;

图3为本发明一实施方式中图1所示的步骤s3的具体流程图;

图4为本发明一实施方式中分布式转码系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下将对本发明所提供的一种分布式转码方法进行详细说明。

请参阅图1,为本发明一实施方式中分布式转码方法流程图。

在本实施方式中,该分布式转码方法应用于分布式转码系统,其中,该分布式转码系统包括业务类型调度组件(即switch)、一个或多个集群资源调度组件(即master)以及一个或多个转码机器单元(即worker),其中,业务类型调度组件、集群资源调度组件和转码机器单元这三个不同的组件分别负责不同的功能。

在步骤s1中,接收各种不同的转码请求,并转发到对应的业务转码集群。

在本实施方式中,所述接收各种不同的转码请求,并转发到对应的业务转码集群的步骤具体包括:

接收各种不同的转码请求,并判断转码请求的业务类型,将不同业务类型的转码请求转发到对应的业务转码集群。

在本实施方式中,客户端发起各种不同业务类型的转码请求,并将不同业务类型的转码请求发送至业务类型调度组件(即switch)。

在本实施方式中,业务类型调度组件(即switch)是整个系统的请求统一入口,负责接收各种不同的转码请求,并根据请求相关参数判断是哪种业务类型的转码请求,从而发到对应的业务转码集群(即集群资源调度组件master),进行相应的转码。在本实施方式中,集群资源调度组件master作为每个独立转码业务的资源管理和调度中心,负责资源管理、任务管理和转码执行单元的存活监控、转码请求的调度策略、转码请求的信息存储和任务执行信息的查询。

在本实施方式中,业务类型调度组件(即switch)通过解析转码请求中所包括的相关参数来确定其转码业务类型,其中,该业务类型包括点播业务、直播业务和录制业务等等。

在本实施方式中,该分布式转码方法还包括以下步骤:

对各个业务转码集群进行探测,并采用资源调度的方式确保各个相同业务转码集群的负载均衡。

业务类型调度组件(即switch)在将所接收到的各种不同的转码请求转发到对应的业务转码集群(即集群资源调度组件master)的同时,对各个业务转码集群进行探测,并采用资源调度的方式确保各个相同业务转码集群的负载均衡。负载均衡策略可以举例如下:解析转码请求的相关输入参数,根据输入参数,找到与待转码文件或者待转码输入流距离最近的转码业务集群,作为目标转码集群,以此减少网络传输和带宽,增强稳定性。业务类型调度组件(即switch)接收到转码请求时,会根据转码请求中所包括的相关参数判断是哪种业务类型的转码请求,从而发到对应的转码业务集群,例如点播转码业务集群、直播转码业务集群和录制转码业务集群等等,其中每一个转码业务集群就是由一个集群资源调度组件master和若干台转码单元worker组成,从而完成不同的转码业务。具体可以为,在目标转码集群中,集群资源调度组件master根据各个转码单元的负载状态信息、任务执行成功率、机器故障率等资源情况和负载情况,采取一定的调度策略,选择两个用于执行转码任务或用于处理待分配转码任务的转码单元,作为一主一备,将转码请求发送到对应的转码单元来执行转码任务。转码单元worker则负责具体的转码任务,将接收到的请求进行解析,根据解析出来的转码参数执行对应的转码任务,并将任务执行情况和机器资源状况上报给集群资源调度组件master。

在步骤s2中,不同的业务转码集群将各自接收到的转码请求进行解析,并根据转码请求对应的调度策略将转码请求转发到具体的转码机器单元。

在本实施方式中,步骤s2具体包括s21-s23这三个子步骤,如图2所示。

请参阅图2,为本发明一实施方式中图1所示的步骤s2的具体流程图。

在步骤s21中,不同的业务转码集群将各自接收到的转码请求进行解析,将相关的请求参数对应存入数据库中,以供外部查询任务执行结果。每个转码任务在执行过程中,数据库都会更新其对应的状态信息或进度信息,可供外部查询该任务的执行状态和执行进度等执行情况。

在本实施方式中,集群资源调度组件master在接收到请求时,进行解析并将相关的请求参数对应存入mysql数据库中,供外部查询,一旦有外部查询请求到集群资源调度组件master,集群资源调度组件master会根据查询请求查询mysql数据库中的相关数据,并返回对应的查询结果。

在步骤s22中,收集各自业务转码集群内所有的转码机器单元的资源情况,并根据资源情况采用相应的调度策略。

在本实施方式中,集群资源调度组件master收集本业务转码集群内所有的转码机器单元的资源情况,并根据资源情况采用相应的调度策略。如果是对可靠性要求很高的录制请求,例如直播录制的请求,会同时下发两个同样的请求到不同的转码机器单元作为一主一备进行同时录制,进行双备份,确保录制成功;或者可以先后发两个同样的请求到不同的转码机器单元作为一主一备进行录制,主的机器单元先开启转码任务,调度组件master实时监控转码任务,一旦出现主的机器单元执行任务异常,调度组件master立即通知备的机器单元开启执行任务,进行切换,确保服务不中断,数据不丢失。当然,具体使用的转码机器单元的数量也可以只为一个,根据实际使用情况而定。如果是对实时性要求不是特别高的请求,例如点播转码的请求,会定时检测任务执行情况和转码进度;假设任务执行过程中,出现异常或者转码机器出现故障,会对转码任务进行重调度,确保任务重新正常执行。

在本实施方式中,集群资源调度组件master会同时监测本业务转码集群内所有的转码机器单元的执行情况,做到在出现故障时能及时切换。

在步骤s23中,根据相应的调度策略将转码请求转发到具体的转码机器单元。

请继续参阅图1,在步骤s3中,转码机器单元在接收到转码请求后进行转码操作。

在本实施方式中,转码机器单元是作为实际的转码单元,步骤s3具体包括s31-s33这三个子步骤,如图3所示。

请参阅图3,为本发明一实施方式中图1所示的步骤s3的具体流程图。

在步骤s31中,转码机器单元在接收到转码请求后进行解析,并根据解析出来的转码参数进行转码操作。

在本实施方式中,如果是点播转码业务集群内的转码机器单元,则在接收到请求后进行解析,并根据解析出来的转码参数进行点播转码;如果是直播转码业务集群内的转码机器单元,则在接收到请求后进行解析,并根据解析出来的转码参数进行直播转码;如果是录制转码业务集群内的转码机器单元,则在接收到请求后进行解析,并根据解析出来的转码参数进行录制转码;当然还有其它方式的转码业务,在此不一一例举。

在步骤s32中,在执行转码任务过程中,实时向对应的业务转码集群的集群资源调度组件汇报任务的执行情况、进度信息以及资源状况。

在本实施方式中,转码机器单元会对每个转码任务进行监控,在执行转码任务过程中,实时向对应的业务转码集群的集群资源调度组件汇报任务的执行情况、进度信息以及资源状况,这些汇报的内容作为集群资源调度组件master实施资源调度的参考依据。

在步骤s33中,将转码完成的文件或数据流上传或推送到对应的目标地址以完成对应的转码任务。

本发明提供的两种分布式转码方法,通过设置业务类型调度组件、集群资源调度组件和转码机器单元三个不同的组件分别负责不同的功能,支持多种不同转码业务混合使用,支持多元的数据输入输出,灵活处理不同的业务场景,进而能满足更加复杂多变的用户需求。本发明针对不同的转码业务,采取了不同的监控策略和备份策略,进而确保各种不同业务对实时性和可靠性的不同要求。

以下将对本发明所提供的一种分布式转码系统进行详细说明。

请参阅图4,所示为本发明一实施方式中分布式转码系统的结构示意图。

在本实施方式中,所述分布式转码系统10包括业务类型调度组件11、一个或多个集群资源调度组件(例如121、122和/或123等等)、一个或多个转码机器单元(例如131、132、133、134、135和/或136等等),其中,业务类型调度组件、集群资源调度组件和转码机器单元这三个不同的组件分别负责不同的功能。

在本实施方式中,集群资源调度组件121、122和/或123分别表示负责不同业务类型的业务转码集群,例如,集群资源调度组件121表示负责点播转码业务的业务转码集群,集群资源调度组件122表示负责直播转码业务的业务转码集群,集群资源调度组件123表示负责录制转码业务的业务转码集群,如果还有其它的转码业务,则分布式转码系统10还会包括其它的集群资源调度组件,例如集群资源调度组件124、集群资源调度组件125等等,在此不做限定。

当然,如果转码业务单一,分布式转码系统10也可以只包括单个的集群资源调度组件,例如只包括集群资源调度组件121、或者只包括集群资源调度组件122、或者只包括集群资源调度组件123,在此不做限定。

在本实施方式中,业务类型调度组件11,用于接收各种不同的转码请求,并转发到对应的集群资源调度组件(如121、122和/或123等等)。

其中,业务类型调度组件11,具体用于:

接收各种不同的转码请求,并判断转码请求的业务类型,将不同业务类型的转码请求转发到对应的集群资源调度组件。

其中,业务类型调度组件11,还用于:

对各个集群资源调度组件进行探测,并采用资源调度的方式确保各个集群资源调度组件的负载均衡。

在本实施方式中,业务类型调度组件11中的各种调度方法如前述步骤s1中的相关描述,在此不做重复叙述。

在本实施方式中,集群资源调度组件(如121、122和/或123等等),用于将接收到的请求进行解析,并根据请求对应的调度策略将请求转发到具体的转码机器单元。

其中,所述集群资源调度组件,具体用于:

将接收到的转码请求进行解析,将相关的请求参数对应存入数据库中,以供外部查询任务执行结果;

收集本集群资源调度组件内所有的转码机器单元的资源情况,并根据资源情况采用相应的调度策略;以及

根据相应的调度策略将转码请求转发到具体的转码机器单元。

在本实施方式中,集群资源调度组件中的各种调度方法如前述步骤s2中的相关描述,在此不做重复叙述。

在本实施方式中,转码机器单元(如131、132、133、134、135和/或136等等),用于在接收到请求后进行转码操作。

其中,所述转码机器单元,具体用于:

在接收到转码请求后进行解析,并根据解析出来的转码参数进行转码操作;

在执行转码任务过程中,实时向对应的业务转码集群的集群资源调度组件汇报任务的执行情况、进度信息以及资源状况;以及

将转码完成的文件或数据流上传或推送到对应的目标地址以完成对应的转码任务。

在本实施方式中,转码机器单元中的转码方法如前述步骤s3中的相关描述,在此不做重复叙述。

本发明提供的一种分布式转码系统10,通过设置业务类型调度组件、集群资源调度组件和转码机器单元三个不同的组件分别负责不同的功能,支持多种不同转码业务混合使用,支持多元的数据输入输出,灵活处理不同的业务场景,进而能满足更加复杂多变的用户需求。本发明针对不同的转码业务,采取了不同的监控策略和备份策略,进而确保各种不同业务对实时性和可靠性的不同要求。并且不同的转码业务集群,对执行的转码业务,进行不同的监控策略和备份策略。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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