CN110769278B - 一种分布式视频转码方法及系统 - Google Patents
一种分布式视频转码方法及系统 Download PDFInfo
- Publication number
- CN110769278B CN110769278B CN201911038001.4A CN201911038001A CN110769278B CN 110769278 B CN110769278 B CN 110769278B CN 201911038001 A CN201911038001 A CN 201911038001A CN 110769278 B CN110769278 B CN 110769278B
- Authority
- CN
- China
- Prior art keywords
- transcoding
- task
- source video
- source
- video
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000007726 management method Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013467 fragmentation Methods 0.000 description 4
- 238000006062 fragmentation reaction Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 3
- 101100518501 Mus musculus Spp1 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种分布式视频转码方法及系统,所述方法包括获取待转码任务的源文件信息以及目标文件信息;根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段;将所有源视频段分配至转码服务器集群,通过转码服务器集群对其对应的源视频段进行转码;将转码得到的各目标视频文件段合并,以得到所述源视频文件对应的目标视频文件。本发明通过根据源文件信息和目标文件信息将源文件划分为若干源视频段,并为每个源视频段分别计算资源,以提高集群系统资源的利用率和源视频文件的转码效率。
Description
技术领域
本发明涉及转码技术领域,特别涉及一种分布式视频转码方法及系统。
背景技术
随着视频行业的发展和移动智能终端的流行,视频内容供应商需要进行大量的视频转码工作来适应多终端环境需要。在三网融合的环境下,一云多屏正成为视频行业重点布局发展的方向,从而在传统广电、互联网视频网站、远程教育以及视频社交等领域对视频转码都有着巨大的需求。
目前普遍采用的视频转码系统的工作节点部署繁琐,无法自动伸缩,而在实际应用环境中,视频转码系统需要应对某些时间段的高并发访问需要扩容集群资源,而其他时间则访问量小需要收缩集群资源,达到节省集群开销的目的,这就使得如果按最大访问部署,则造成资源浪费,如果按正常访问量部署,无法满足高并发场景。此外,传统的音视频转码系统一般采用静态资源分配,无法在创建转码任务时根据转码任务的实际资源需求为其分配系统资源。当转码任务需求计算资源多时,转码效率低,当转码任务需求计算资源少时,造成计算资源浪费。
因而现有技术还有待改进和提高。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种分布式视频转码方法及系统。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种分布式视频转码方法,其包括:
获取待转码任务的源文件信息以及目标文件信息;
根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段;
将所有源视频段分配至转码服务器集群,通过转码服务器集群对其对应的源视频段进行转码;
将转码得到的各目标视频文件段合并,以得到所述源视频文件对应的目标视频文件。
所述分布式视频转码方法,其中,所述获取待转码任务的源文件信息以及目标文件信息之前包括:
接收转码任务请求,根据所述转码任务请求生成待转码任务;
将所述待转码任务保存在预设的任务队列中,其中,所述任务队列中的转码任务请求按照转码任务优选级排序。
所述分布式视频转码方法,其中,所述根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
获取转码服务器集群的系统资源状态信息,并根据系统资源状态信息为所述源视频文件分配系统资源;
根据所述系统资源以及所述源视频格式和目标视频格式将所述待转码任务对应的源视频文件划分为若干源视频段。
所述分布式视频转码方法,其中,所述根据系统资源状态信息以及所述源视频格式和目标视频格式将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
根据所述系统资源状态信息确定所述源视频文件对应的视频编码码率;
根据所述视频编码码率以及所述源文件信息以及目标文件信息确定所述源视频文件的转码时长;
根据所述转码时长将所述待转码任务对应的源视频文件划分为若干源视频段。
所述分布式视频转码方法,其中,所述根据所述转码时长将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
获取所述待转码任务对应的服务质量参数;
根据所述服务质量参数以及所述转码时长将所述待转码任务对于的源视频文件划分为若干源视频段。
所述分布式视频转码方法,其中,所述源文件信息包括源视频时长、源视频码率、源视频格式以及源视频分辨率;所述目标文件信息包括目标视频码率、目标视频格式以及目标视频分辨率。
所述分布式视频转码方法,其中,所述将所有源视频段分配至转码服务器集群,通过转码服务器集群对其对应的源视频段进行转码具体包括:
将所有源视频段分配至转码服务器集群的管理节点,通过所述管理节点确定各源视频段对应的转码服务器节点;
通过各转码服务器节点对各源视频文件进行转码。
所述分布式视频转码方法,其中,所述方法还包括:
获取转码服务器集群的使用资源信息以及空闲资源信息;
当使用资源信息超过第一预设阈值时,获取转码服务器集群中处于禁用状态的转码服务器设置为启用状态;
当空闲资源信息超过第二预设阈值时,将部分处于空闲状态的转码服务器设置为禁用状态。
一种分布式视频转码系统,所述系统包括调度器和转码服务器集群;
所述调度器用于获取待转码任务的源文件信息以及目标文件信息,根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段,以及将所有源视频段分配至转码服务器集群;
所述转码集群服务器用于对其对应的源视频段进行转码,并将转码得到的各目标视频文件段合并,以得到所述源视频文件对应的目标视频文件。
所述分布式视频转码系统,其中,所述系统还包括Web服务器,所述 Web服务器用于接收转码任务请求,根据所述转码任务请求生成待转码任务,并将所述待转码任务保存在预设的任务队列中,其中,所述任务队列中的转码任务请求按照转码任务优选级排序。
有益效果:与现有技术相比,本发明提供了一种分布式视频转码方法及系统,所述方法包括获取待转码任务的源文件信息以及目标文件信息;根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段;将所有源视频段分配至转码服务器集群,通过转码服务器集群对其对应的源视频段进行转码;将转码得到的各目标视频文件段合并,以得到所述源视频文件对应的目标视频文件。本发明通过根据源文件信息和目标文件信息将源文件划分为若干源视频段,并为每个源视频段分别计算资源,提高了分布式集群系统资源的利用率和源视频文件的转码效率。
附图说明
图1为本发明提供的分布式视频转码方法的流程图。
图2为本发明提供的分布式视频转码系统的结构示意图。
图3为本发明提供的分布式视频转码系统的工作流程图。
图4为本发明提供的分布式视频转码系统中调度器的结构示意图。
具体实施方式
本发明提供一种分布式视频转码方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语 (包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
本实施提供了一种分布式视频转码方法,如图1所示,所述方法包括:
S10、获取待转码任务的源文件信息以及目标文件信息。
具体地,所述待转码任务可以根据转码请求生成的,所述转码任务携带转码服务质量,源文件路径、源文件名称、转码输出路径和转码模板,以便于根据所述转码任务可以确定转码任务对应的源文件信息以及目标文件信息。所述源文件信息包括源视频时长、源视频码率、源视频格式以及源视频分辨率,所述源文件信息可以根据源文件路径和源文件名称确定。所述目标文件信息包括目标视频码率、目标视频格式以及目标视频分辨率,所述目标文件信息是根据转码模板确定,所述转码模板携带有转码得到的目标视频文件的目标视频码率、目标视频格式以及目标视频分辨率,其中,所述转码模块可以存储于数据库内。此外,在本实施例的一个可能实现方式中,所述源文件信息的获取过程可以为:获取转码任务携带的源文件路径和源文件名称,根据所述源文件路径和源文件名称查找到源视频文件,再根据源视频文件确定转码任务对应的源文件信息。其中,所述源文件信息是在获取到源视频文件后,对所述源视频文件进行分析获取的,例如,在获取到源视频文件后,可以读取所述源视频文件的视频时长,源视频码率、视频编码格式以及视频分辨率。
进一步,在本实施例的一个实现方式中,所述待转码任务可以是根据转码请求生成的,并存储在任务队列中,在执行该待转码任务时,可以在任务队列中读取该转码任务。相应的,所述获取待转码任务的源文件信息以及目标文件信息之前包括:
接收转码任务请求,根据所述转码任务请求生成待转码任务;
将所述待转码任务保存在预设的任务队列中,其中,所述任务队列中的转码任务请求按照转码任务优选级排序。
具体地,所述转码任务请求可以是用户提交的,也开始是外部设备发送的,也可以是根据接收到控制指令生成。所述转码任务请求携带有优先级标识,根据所述优先级标识可以确定转码任务请求生成的转码任务的优先级,其中,所述优选级用于表示转码任务被执行的先后顺序,优先级高的转码任务的执行顺序先于优先级低的转码任务;而当优先级相同时,可以按照转码任务的生成时间的先后顺序作为转码任务被执行的先后顺序。当然,在实际应用中,在获取待转码任务时,在所述任务队列中按照优先级的先后训练来获取待转码任务。
进一步,在本实施例的一个实现方式中,如图2所示,所述转码任务请求可以是通过Web服务接收到,所述Web服务用于为用户提供可视化操作界面,显示转码集群以及转码任务的状态和信息,提供用户与分布式转码系统之间的交互接口。这样所述Web服务可以接收并且处理用户提交的转码任务请求,根据所述转码任务请求生成转码任务,并确定各转码任务的优先级,最后按照优先级将转码任务存入任务队列,以便于调度器可以获取到转码任务。
进一步,为了便于提高调度器调取转码任务,所述任务队列可以包括若干优先级消息队列,每个优先级消息队列对应一个优先级,当根据转码任务请求信息生成转码任务后,可以根据转码任务的优先级来确定转码任务对应的优先级消息队列,并将该转码任务存入该优先级消息队列,其中,各优先级消息队列中的转码任务按照存入优先级消息队列的时间顺序排序,先存入级消息队列中的转码任务排在后存入级消息队列中的转码任务之前。例如,如图2所示,Web服务接收用户创建的一转码任务,并接收该转码任务对应的转码任务参数,将接收到转码任务参数提交的转码任务参数存储到数据库,并监听提交开始转码请求;当监听到提交开始转码请求时,创建开始转码任务的消息,并将转码任务存入其优先级对应的优先级消息队列内,其中,转码任务参数可以包括转码服务质量,源文件路径、源文件名称、转码输出路径和转码模板等。此外,在接收到转码任务请求后,将转码任务请求对应的源视频文件存储于分布式文件系统内,所述分布式文件系统用于存储所有视频文件,包括所有源视频文件,转码临时视频文件,转码合并后视频文件;并且当转码任务运行时,会自动挂载到源视频段在分布式文件系统的路径。
S20、根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段。
具体地,所述将待转码任务对应的源视频文件划分为若干源视频段指的是源视频文件的视频时长按照划分为若干源视频段,并记录各源视频段的时长和起始时间,而并不执行将源视频文件切分为若干源视频段的实际操作,其中,各源视频段的时长和等于源视频文件的视频时长。
进一步,在本实施例的一个实现方式中,所述根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
S21、获取转码服务器集群的系统资源状态信息,并根据系统资源状态信息为所述源视频文件分配系统资源;
S22、根据所述系统资源以及所述源视频格式和目标视频格式将所述待转码任务对应的源视频文件划分为若干源视频段。
具体地,所述转码服务器集群的系统资源状态信息指的是转码服务器集群剩余资源值,在获取到剩余资源值后,根据所述剩余资源值为源视频文件分配系统资源。在本实施例中,所述转码服务器集群包含的各转码服务器节点均为多核CPU,并各转码服务器节点包含的CPU个数划分为若干个数区间,在确定剩余资源值后,根据剩余资源值与个数区间的对应关系确定源视频文件分配的CPU个数(即分配的系统资源),其中,所述剩余资源值与CPU个数的对应关系可以预先建立,以使得在获取到剩余资源值后,可以快速确定源视频文件对应的CPU个数。例如,当剩余资源值小于预设资源阈值时,为源视频文件分配最大CPU个数等。本实施例通过根据剩余资源值确定使用CPU数量,可以避免防止浪费CPU资源,这是因为在使用多CPU服务器进行转码时,由于受视频转码模块本身性能的限制,并不是分配的CPU核数越多转码效率就越高,从而根据剩余资源值确定使用CPU 资源,可以防止浪费CPU资源,从而提高转码服务器集群的工作效率。
举例说明:转码服务器节点包含为24核服务器(即转码服务器节点包含有24个CPU),那么将该转码服务器节点包含的CPU进行划分,将1-6核分为第一个区间,7-12核分为第二个区间,13-18核分为第三个区间,19-24 核分为第四个区间。同时,在将转码服务器节点的CPU划分区间后,分别计算出每个区间单个CPU转码效率最高的CPU个数。假设第一个区间中,使用4个CPU,转码效率最高,记为η1;第二个区间使用8个CPU,转码效率最高,记为η2;第三个区间使用16个CPU,转码效率最高,记为η3;第四个区间使用24个CPU转码效率最高,记为η4。那么各转码服务器节的转码能力可以表示为:An=k*η,其中k为CPU数目,η为其对应的转码效率。也就是说,第一个区间对应的转码能力为A1=4*η1,第二各区间对应的转码能力为A2=8*η2;第三个区间对应的转码能力为A3=16*η3;第四个区间对应的转码能力为A4=24*η4。
进一步,在本实施例的一个实现方式中,所述根据系统资源状态信息以及所述源视频格式和目标视频格式将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
S221、根据所述系统资源状态信息确定所述源视频文件对应的视频编码码率;
S222、根据所述视频编码码率以及所述源文件信息以及目标文件信息确定所述源视频文件的转码时长;
S223、根据所述转码时长将所述待转码任务对应的源视频文件划分为若干源视频段。
具体地,所述视频编码码率为系统资源对源视频文件进行转码的转码能力,所述转码时长指的是在所述转码能力下,转码该源视频文件所需要的时长。所述转码时长是根据视频编码码率、源文件信息以及目标文件信息确定。此外,所述转码过程为解码再编码过程,而不同视频格式的解码和编码所需时长也不相同。从而在分配的系统资源相同的情况,对于不同源视频文件的源视频格式和目标视频文件的目标视频格式,源视频格式转码到目标视频文件格式所需的转码时长也不同。
进一步,在本实施例的一个实现方式中,所述源视频格式可以包括H264 和H265视频编码格式,所述目标视频格式也可以包括H264和H265视频编码格式,所述源视频格式和目标视频格式的对应关系可以包括:H264→ H264,H264→H265,H265→H264以及H265→H265,那么分别可以建立H264 →H264,H264→H265,H265→H264以及H265→H265四种转码情况下,转码时长与视频编码码率的对应关系。这里以分配的系统资源相同(即转码服务器节点分配的用于转码的CPU的个数一致)为例,视频文件的转码时长和视频编码码率关系如下公式所示:T=(M+N*logR)*t,其中,t为源视频文件的时长,R为视频转码率,T为视频转码时间,M和N是为系数,为已知量,并且对于不同的转码情况,M和N是为系数的值不同,例如,H264→H264 对应的关系式为T=(M1+N1*logR)*t;H264→H265对应的关系式为 T=(M2+N2*logR)*t;H265→H264对应的关系式为T=(M3+N3*logR)*t;H265 →H265对应的关系式为T=(M4+N4*logR)*t。
进一步,在本实施例的一个实现方式中,可以需要设置转码时长与分辨率的对应关系,以及转码时长与分辨率和视频编码码率的对应关系,并且各转码关系对应不同的对应关系的系数不同。例如,所述源视频格式和目标视频格式的对应关系可以包括:H264→H264,H264→H265,H265→H264 以及H265→H265;各对应关系对应的转码时长与分辨率的对应关系的系数和转码时长与分辨率和视频编码码率的对应关系均不同,这样可以准确确定各所述源视频格式和目标视频格式的对应关系在不同视频转码频率和/ 或分辨率下所需要的转码时长。
进一步,在本实施例的一个实现方式中,所述根据所述转码时长将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
获取所述待转码任务对应的服务质量参数;
根据所述服务质量参数以及所述转码时长将所述待转码任务对于的源视频文件划分为若干源视频段。
具体地,所述服务指令参数为预先设置,并与所述待转码任务相对应,即在获取到待转码任务时,可以读取所述待转码任务对应的服务质量参数。例如,源视频编码格式为H264,目标视频编码格式为H264,源视频分辨率与目标视频分辨率相同,各源视频段对应的转码任务分配的系统资源均为8 个CPU,那么在源视频编码码率与目标视频编码码率不同,所述源视频段的数量与所述服务质量参数以及转码时长的对应关系可以为:
其中,Q为转码任务的服务质量参数,a为当前系统资源对应的服务质量系数,其中,a越小,分片数N越大,a越大,分片数N越小。因为对于一个转码文件,并不是分片数越多转码效率越高。同时,由于云转码集群的系统资源是有限的,需要用系数a和服务质量Q来控制分片数量。当然,当源视频编码格式和/或目标视频编码格式改变时,可以改变M1和N1的值。而在分辨率改变时,可以选取分辨率对应的转码时长公式。
S30、将所有源视频段分配至转码服务器集群,通过转码服务器集群对其对应的源视频段进行转码。
具体地,如图2所示,所述转码服务器集群包括转码服务器管理节点 (记为转码集群master节点)和转码服务器节点集群(记为转码worker 集群),所述转码服务器节点集群包括若干转码服务器节点(记为worker 节点),所述转码集群管理节点用于管理整个转码服务器集群,当有新的转码服务器节点加入集群,需要先向转码集群管理节点进行注册,然后转码服务器节点上报自身的资源和状态信息给转码集群管理节点。转码集群管理节点用于实时监控所有转码服务器节点的资源信息和状态,当创建转码任务时,转码集群管理节点接收调度器的转码任务配置文件,动态为转码任务分配指定的系统资源,并根据内部的调度规则将转码任务调度到转码集群中最合适的转码服务器节点运行。
所述转码服务器节点为实际运行转码任务的工作节点,当转码服务器节点加入转码服务器集群时,先向转码集群管理节点注册,然后上报自身的资源和状态信息给管理节点;当转码集群管理节点调度一个任务到转码服务器节点时,转码服务器节点会拉取运行任务对应的镜像,根据任务的资源限制创建运行任务容器,并且转码服务器节点实时更新自身的资源信息和状态给转码集群管理节点。
进一步,在本实施例的一个实现方式中,所述将所有源视频段分配至转码服务器集群,通过转码服务器集群对其对应的源视频段进行转码具体包括:
S31、将所有源视频段分配至转码服务器集群的管理节点,通过所述管理节点确定各源视频段对应的转码服务器节点;
S32、通过各转码服务器节点对各源视频文件进行转码。
具体地,各转码服务器节点对其对应的源视频段进行转换,并将转码得到的目标视频段存储在分布式文件系统中,以便于根据转码得到的目标视频文件段合成目标视频文件。
S40、将转码得到的各目标视频文件段合并,以得到所述源视频文件对应的目标视频文件。
具体地,所述目标视频文件为各目标视频文件段按照其对应的源视频文件段的起始时间的先后顺序拼接得到,以使得所述目标视频文件包含的各视频帧的帧顺序与其对应的源视频文件中对应视频帧的帧顺序相同。
进一步,在实施例的一个实现方式中,所述方法还包括:
获取转码服务器集群的使用资源信息以及空闲资源信息;
当使用资源信息超过第一预设阈值时,获取转码服务器集群中处于禁用状态的转码服务器设置为启用状态;
当空闲资源信息超过第二预设阈值时,将部分处于空闲状态的转码服务器设置为禁用状态。
具体地,如图2所示,所述获取转码服务器集群的使用资源信息以及空闲资源信息是由调度器获取,调度器会实时获取当前转码服务器集群(例如,所述转码服务器集群为分布式转码服务器集群)的资源信息,当转码服务器集群的资源压力超出正常阈值,且当前转码服务器集群中还有服务器未加入转码工作集群中,调度器通知转码服务器管理节点为转码服务器集群,如果转码工作集群的空闲资源超过设定阈值,且没有更多的转码任务需要处理,调度器会通知转码服务器管理节点为转码服务器集群缩容,节省云转码系统开销。
基于上述分布式视频转码方法,本实施例还提供了一种分布式视频转码系统,所述系统包括调度器和转码服务器集群;所述调度器用于获取待转码任务的源文件信息以及目标文件信息,根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段,以及将所有源视频段分配至转码服务器集群;所述转码集群服务器用于对其对应的源视频段进行转码,并将转码得到的各视频文件段合并,以得到所述源视频文件对应的目标视频文件。
进一步,如图2所示,所述分布式文件系统和数据库,所述分布式文件系统用于存储所有视频文件,包括所有源视频文件,转码临时视频文件,转码合并后视频文件,并且当转码任务运行时,会自动挂载到待处理视频文件在分布式文件系统的路径。所述数据库用于存储系统需要保存的数据,包括用户数据,转码模板信息,转码任务信息,视频文件信息以及统计信息等。
进一步,所述分布式视频转码系统还包括Web服务器,所述Web服务器用于接收转换任务请求,根据所述转换任务请求生成待转换任务,并将所述待转换任务保存在预设的存储列队中,所述存储列队中的转换任务请求按照转换任务优选级排序。此外,所述Web服务器为用户提供可视化操作界面,显示转换服务器集群和转码任务的状态和信息,提供用户与分布式视频转码系统之间的交互接口,接收处理用户提交的不同请求,并存入对应的优先级消息队列给调度器处理。
举例说明,如图3所示,所述分布式视频转码系统的工作过程可以包括:
1a、用户创建一个转码任务;
2a、Web服务其将用户提交的转码任务参数存储到数据库;
3a、用户提交开始转码请求,Web服务器创建开始转码任务的消息,并将其存入优先级消息队列;
4a、调度器从优先级队列中取出开始转码任务的消息;
5a、调度器从数据库中获取该转码任务的转码模板,以得到转码参数;
6a、调度器为经过根据预设分片模型将源视频文件划分为多个分片,并为各分配创建对应的子转码任务,以及将各子转码任务提交到转码服务器管理节点;
7a、转码转码服务器管理节点将每个分片对应的转码任务按调度到最合适的转码服务器节点运行;
8a、转码服务器节点中的转码任务成功启动后,将自身状态通过http 协议回调给调度器;
9a、调度器将转码任务的状态更新到数据库中。
进一步,如图4所示,所述调度器可以包括消息处理模块、智能分配模块、任务管理模块以及任务状态监控模块,所述调度器工作过程可以包括:
1、消息处理模块从优先级队列中取出当前优先级最高的转码请求消息;
2、消息处理模块从数据库中获取当前转码请求对应的转码模板;
3、消息处理模块将转码请求参数和转码模板参数传给智能分片模块;
4、智能分片模块获取转码集群当前的资源信息;
5、智能分片模块首先根据输入文件的路径和名称找到源视频文件,分析源视频文件视频编码格式,码率,分辨率,然后根据消息处理模块发送的转码模板参数中目标文件的视频编码格式,码率,分辨率,以及转码集群当前系统资源信息匹配对应的分片计算模板得到各源视频段,为每个源视频段创建相应的转码任务和合并任务存入任务队列,所述转码任务和合并任务参数中包含任务本身的资源限制参数;
6、任务管理模块从任务队列中取出转码任务;
7、任务管理模板将转码任务提交到转码集群管理节点;
8、转码集群管理节点将转码任务调度到集群中转码服务器节点运行;
9、任务状态监控模块监控所有转码任务的状态;
10、如果某个转码任务运行成功,任务状态监控模块将该转码任务的状态更新到数据库中,如果某个任务运行失败,任务状态监控模块将该转码任务重新放入任务队列中,等待下次被重新调度。
此外,上述系统中Web服务器、调度器以及转码服务器集群的功能以及执行过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种分布式视频转码方法,其特征在于,其包括:
获取待转码任务的源文件信息以及目标文件信息;
根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段;
将所有源视频段分配至转码服务器集群,通过转码服务器集群对其对应的源视频段进行转码;
将转码得到的各目标视频文件段合并,以得到所述源视频文件对应的目标视频文件;
其中,所述根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
获取转码服务器集群的系统资源状态信息,并根据系统资源状态信息为所述源视频文件分配系统资源;
根据所述系统资源以及源视频格式和目标视频格式将所述待转码任务对应的源视频文件划分为若干源视频段;
其中,所述根据系统资源以及源视频格式和目标视频格式将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
根据所述系统资源确定所述源视频文件对应的视频编码码率;
根据所述视频编码码率以及所述源文件信息以及目标文件信息确定所述源视频文件的转码时长;
根据所述转码时长将所述待转码任务对应的源视频文件划分为若干源视频段。
2.根据权利要求1所述分布式视频转码方法,其特征在于,所述获取待转码任务的源文件信息以及目标文件信息之前包括:
接收转码任务请求,根据所述转码任务请求生成待转码任务;
将所述待转码任务保存在预设的任务队列中,其中,所述任务队列中的转码任务请求按照转码任务优先级排序。
3.根据权利要求1所述分布式视频转码方法,其特征在于,所述根据所述转码时长将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
获取所述待转码任务对应的服务质量参数;
根据所述服务质量参数以及所述转码时长将所述待转码任务对于的源视频文件划分为若干源视频段。
4.根据权利要求1-3任一所述分布式视频转码方法,其特征在于,所述源文件信息包括源视频时长、源视频码率、源视频格式以及源视频分辨率;所述目标文件信息包括目标视频码率、目标视频格式以及目标视频分辨率。
5.根据权利要求1所述分布式视频转码方法,其特征在于,所述将所有源视频段分配至转码服务器集群,通过转码服务器集群对其对应的源视频段进行转码具体包括:
将所有源视频段分配至转码服务器集群的管理节点,通过所述管理节点确定各源视频段对应的转码服务器节点;
通过各转码服务器节点对各源视频文件进行转码。
6.根据权利要求1所述分布式视频转码方法,其特征在于,所述方法还包括:获取转码服务器集群的使用资源信息以及空闲资源信息;
当使用资源信息超过第一预设阈值时,获取转码服务器集群中处于禁用状态的转码服务器设置为启用状态;
当空闲资源信息超过第二预设阈值时,将部分处于空闲状态的转码服务器设置为禁用状态。
7.一种分布式视频转码系统,其特征在于,所述系统包括调度器和转码服务器集群;
所述调度器用于获取待转码任务的源文件信息以及目标文件信息,根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段,以及将所有源视频段分配至转码服务器集群;
所述转码服务器集群用于对其对应的源视频段进行转码,并将转码得到的各目标视频文件段合并,以得到所述源视频文件对应的目标视频文件;
其中,所述调度器用于根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
获取转码服务器集群的系统资源状态信息,并根据系统资源状态信息为所述源视频文件分配系统资源;
根据所述系统资源以及源视频格式和目标视频格式将所述待转码任务对应的源视频文件划分为若干源视频段;
其中,所述根据系统资源以及源视频格式和目标视频格式将所述待转码任务对应的源视频文件划分为若干源视频段具体包括:
根据所述系统资源确定所述源视频文件对应的视频编码码率;
根据所述视频编码码率以及所述源文件信息以及目标文件信息确定所述源视频文件的转码时长;
根据所述转码时长将所述待转码任务对应的源视频文件划分为若干源视频段。
8.根据权利要求7所述分布式视频转码系统,其特征在于,所述系统还包括Web服务器,所述Web服务器用于接收转码任务请求,根据所述转码任务请求生成待转码任务,并将所述待转码任务保存在预设的任务队列中,其中,所述任务队列中的转码任务请求按照转码任务优先级排序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911038001.4A CN110769278B (zh) | 2019-10-29 | 2019-10-29 | 一种分布式视频转码方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911038001.4A CN110769278B (zh) | 2019-10-29 | 2019-10-29 | 一种分布式视频转码方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110769278A CN110769278A (zh) | 2020-02-07 |
CN110769278B true CN110769278B (zh) | 2022-02-08 |
Family
ID=69334151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911038001.4A Active CN110769278B (zh) | 2019-10-29 | 2019-10-29 | 一种分布式视频转码方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110769278B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510743B (zh) * | 2020-04-21 | 2022-04-05 | 广州市百果园信息技术有限公司 | 转码资源的调度方法、装置、系统、设备和存储介质 |
CN111757118B (zh) * | 2020-06-29 | 2023-04-21 | 北京百度网讯科技有限公司 | 视频转码处理方法、装置、设备和介质 |
CN112035405B (zh) * | 2020-08-29 | 2023-10-13 | 平安科技(深圳)有限公司 | 一种文档转码方法、装置、调度服务器和存储介质 |
CN112312164A (zh) * | 2020-10-16 | 2021-02-02 | 安擎(天津)计算机有限公司 | 一种基于分布式转码服务器的视频转码系统 |
CN112395061A (zh) * | 2020-11-17 | 2021-02-23 | 广东电科院能源技术有限责任公司 | 一种计算任务调度装置及方法 |
CN112953944A (zh) * | 2021-02-23 | 2021-06-11 | 北京华宇信息技术有限公司 | 基于MapReduce的影音转码方法 |
CN112765253A (zh) * | 2021-02-27 | 2021-05-07 | 中电万维信息技术有限责任公司 | 一种基于数据库的ffmpeg转码任务参数调度方法 |
CN113055680B (zh) * | 2021-03-16 | 2021-12-21 | 西南科技大学 | 一种分布式转码方法 |
CN113938681B (zh) * | 2021-09-26 | 2024-08-27 | 浪潮云信息技术股份公司 | 一种多模式控制视频码率的系统及方法 |
CN114024973B (zh) * | 2021-11-01 | 2023-11-24 | 上海绚显科技有限公司 | 直播云转码的资源调度方法、装置、服务器及系统 |
CN114710680B (zh) * | 2022-03-16 | 2024-09-06 | 中星电子股份有限公司 | 用于视频编解码的分布式服务器集群 |
CN114745601B (zh) * | 2022-04-01 | 2024-04-19 | 暨南大学 | 一种分布式音视频转码系统及其方法 |
CN115002514B (zh) * | 2022-05-27 | 2023-07-21 | 浙江大学 | 基于云原生控制器的spark视频转码系统及视频转码方法 |
CN115174578B (zh) * | 2022-07-25 | 2023-10-20 | 上海网达软件股份有限公司 | 一种基于Kubernetes的点播并行转码方法、装置及存储介质 |
CN115297334B (zh) * | 2022-10-09 | 2023-01-03 | 卓望数码技术(深圳)有限公司 | 基于云边协同转码实现窄带传输视频的系统、方法和设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102123279A (zh) * | 2010-12-28 | 2011-07-13 | 乐视网信息技术(北京)股份有限公司 | 一种分布式实时转码方法与系统 |
CN103309946A (zh) * | 2013-05-16 | 2013-09-18 | 华为技术有限公司 | 多媒体文件处理方法、装置及系统 |
CN103686206A (zh) * | 2014-01-02 | 2014-03-26 | 中安消技术有限公司 | 一种云环境下的视频转码方法和系统 |
CN104378665A (zh) * | 2014-11-24 | 2015-02-25 | 深圳市天威视讯股份有限公司 | 一种基于数字电视的分布式转码系统及方法 |
CN104469370A (zh) * | 2013-09-17 | 2015-03-25 | 中国普天信息产业股份有限公司 | 一种视频转码的方法和装置 |
CN106851336A (zh) * | 2017-02-07 | 2017-06-13 | 上海网达软件股份有限公司 | 一种动态资源分配的音视频文件转码方法及系统 |
CN109788315A (zh) * | 2019-01-31 | 2019-05-21 | 湖南快乐阳光互动娱乐传媒有限公司 | 视频转码方法、装置及系统 |
CN110856018A (zh) * | 2019-11-14 | 2020-02-28 | 武汉珞佳伟业科技有限公司 | 一种基于云计算的监控系统中的快速转码方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100526189B1 (ko) * | 2004-02-14 | 2005-11-03 | 삼성전자주식회사 | 트랜스코딩 전후에 타이밍 파라미터를 일정하게유지시키는 트랜스코딩 시스템 및 방법 |
-
2019
- 2019-10-29 CN CN201911038001.4A patent/CN110769278B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102123279A (zh) * | 2010-12-28 | 2011-07-13 | 乐视网信息技术(北京)股份有限公司 | 一种分布式实时转码方法与系统 |
CN103309946A (zh) * | 2013-05-16 | 2013-09-18 | 华为技术有限公司 | 多媒体文件处理方法、装置及系统 |
CN104469370A (zh) * | 2013-09-17 | 2015-03-25 | 中国普天信息产业股份有限公司 | 一种视频转码的方法和装置 |
CN103686206A (zh) * | 2014-01-02 | 2014-03-26 | 中安消技术有限公司 | 一种云环境下的视频转码方法和系统 |
CN104378665A (zh) * | 2014-11-24 | 2015-02-25 | 深圳市天威视讯股份有限公司 | 一种基于数字电视的分布式转码系统及方法 |
CN106851336A (zh) * | 2017-02-07 | 2017-06-13 | 上海网达软件股份有限公司 | 一种动态资源分配的音视频文件转码方法及系统 |
CN109788315A (zh) * | 2019-01-31 | 2019-05-21 | 湖南快乐阳光互动娱乐传媒有限公司 | 视频转码方法、装置及系统 |
CN110856018A (zh) * | 2019-11-14 | 2020-02-28 | 武汉珞佳伟业科技有限公司 | 一种基于云计算的监控系统中的快速转码方法及系统 |
Non-Patent Citations (1)
Title |
---|
分布式视频转码系统的设计与实现;分布式;《中国优秀硕士学位论文全文数据库信息科技辑,2015年第6期》;20160615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110769278A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110769278B (zh) | 一种分布式视频转码方法及系统 | |
CN107045456B (zh) | 一种资源分配方法及资源管理器 | |
US8402466B2 (en) | Practical contention-free distributed weighted fair-share scheduler | |
CN1198210C (zh) | 微调度方法和包含操作系统内核的计算装置 | |
CN111294647B (zh) | 一种视频处理方法、装置及设备、存储介质 | |
CN109788315A (zh) | 视频转码方法、装置及系统 | |
CN103838779A (zh) | 复用空闲计算资源的云转码方法及系统、分布式文件装置 | |
Reddy et al. | Qos-Aware Video Streaming Based Admission Control And Scheduling For Video Transcoding In Cloud Computing | |
JP2007041720A (ja) | ジョブステップ実行プログラムおよびジョブステップ実行方法 | |
JP2014525619A (ja) | データ処理システム | |
CN112286698B (zh) | 远程过程调用方法、装置以及远程过程调用执行方法 | |
US11290777B2 (en) | High-speed parallel engine for processing file-based high-resolution images | |
CN112543354B (zh) | 业务感知的分布式视频集群高效伸缩方法和系统 | |
CN111290841A (zh) | 任务调度方法、装置、计算设备及存储介质 | |
CN104598311A (zh) | 一种面向Hadoop的实时作业公平调度的方法和装置 | |
CN116450353A (zh) | 处理器核匹配方法、装置、电子设备及存储介质 | |
CN112637634A (zh) | 一种多进程共享数据的高并发视频处理方法及系统 | |
CN109388501B (zh) | 基于人脸识别请求的通信匹配方法、装置、设备及介质 | |
US20220052922A1 (en) | System and method for optimizing deployment of a processing function in a media production workflow | |
WO2021036784A1 (zh) | 一种媒体数据处理方法、装置、媒体服务器及计算机可读存储介质 | |
CN105915910B (zh) | 一种基于云平台的视频转码方法和装置 | |
CN111190731A (zh) | 基于权重的集群任务调度系统 | |
WO2022111466A1 (zh) | 任务调度方法、控制方法、电子设备、计算机可读介质 | |
CN103347059B (zh) | 实现用户配置参数传递的方法、客户端和系统 | |
US20100242046A1 (en) | Multicore processor system, scheduling method, and computer program product |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |