CN115297328B - 面向分布式集群的多节点并行视频转码方法 - Google Patents
面向分布式集群的多节点并行视频转码方法 Download PDFInfo
- Publication number
- CN115297328B CN115297328B CN202211231042.7A CN202211231042A CN115297328B CN 115297328 B CN115297328 B CN 115297328B CN 202211231042 A CN202211231042 A CN 202211231042A CN 115297328 B CN115297328 B CN 115297328B
- Authority
- CN
- China
- Prior art keywords
- transcoding
- video
- frame number
- processes
- delta
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/505—Clust
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及视频处理技术领域,尤其涉及一种面向分布式集群的多节点并行视频转码方法,包括初始化进程数目和进程号,0号进程预处理输入视频,按照进程数目和视频总时长初始化视频划分时间数组,0号进程定位每个时间点的关键帧号,生成关键帧号数组,并通过MPI_Scatter操作将进程的起始帧号和结束帧号分发给各个进程,各个进程根据起始帧号和结束帧号完成对应视频帧序列的转码操作并将转码后的视频序列写入到临时文件,0号进程对每个进程的临时文件按序合并得到最终转码后的视频,若转码过程发生故障,则读取中间文件并恢复至故障前的状态,继续转码过程至结束,提高了转码效率。
Description
技术领域
本发明涉及视频处理技术领域,尤其涉及一种面向分布式集群的多节点并行视频转码方法。
背景技术
以FFmpeg为代表的视频处理软件仅支持多线程并行转码操作,通常按帧(frame)或按片(slice)并行,这些方法采用主从线程模式并行处理视频帧或片,因此只能利用单个节点的硬件资源,并且当线程数超过一定数目后,并行效率较低。分布式集群由大量节点组成,而传统的并行方法无法利用多节点,造成很大资源浪费。
中国专利申请公开号:CN112312164A公开了一种基于分布式转码服务器的视频转码系统,其公开的技术方案中包括终端设备、多媒体资源应用平台、Web服务器、资源管理服务器、转码调度服务器、Job Tracker服务器、分布式转码服务器和Reduce Task服务器。本发明的视频转码系统采用Hadoop框架,通过转码调度服务器实现视频转码系统内部的调度管理以及数据收集,利用JobTracker服务器、分布式转码服务器和ReduceTask服务器分别完成对待转码视频文件的分割、分片文件的并行转码以及转码完成后的分片文件的合并,提高了转码速度,使终端设备或者多媒体资源应用平台不会出现播放卡顿,为用户提供了良好的视频播放体验,非常适合大规模推广应用。
分布式集群由大量节点组成,因此仅通过单节点多线程的方式来进行视频转码(video transcoding)无法充分利用多节点资源,从而如何实现多节点并行视频转码是亟待解决的难题。本发明拟提出一种并行视频转码方法,充分利用多节点资源,实现高效地多节点并行视频转码操作。
发明内容
为此,本发明提供一种面向分布式集群的多节点并行视频转码方法,用以克服现有技术中视频转码效率低的问题。
为实现上述目的,本发明提供一种面向分布式集群的多节点并行视频转码方法,包括:
步骤S2,0号进程预处理输入视频,按照进程数目和视频总时长初始化视频划分时间数组;
步骤S3,0号进程定位每个时间点的关键帧号,生成关键帧号数组,并通过MPI_Scatter操作将进程的起始帧号和结束帧号分发给各个进程;
步骤S4,各个进程根据所述起始帧号和所述结束帧号完成对应视频帧序列的转码操作,并将转码后的视频序列写入到临时文件;
步骤S5,0号进程对每个进程的临时文件按序合并,得到最终转码后的视频;
在所述步骤S5中,等待所有进程转码结束时,计算所有进程平均转码时长Tp,根据平均转码时长Tp对进程划分快动进程域和慢动进程域,并将快动进程域和慢动进程域中的进程进行匹配;
以及,根据CPU运算速率V和数据传输速率X计算时间间隔参数R,并根据R确定两个匹配的进程间开启通信的时间差异度ΔTb',并根据ΔTb'判定在两个匹配的进程间是否开启通信;
步骤S6,若转码过程发生故障,则读取中间文件并恢复至故障前的状态,继续转码过程至结束。
进一步地,在所述步骤S2中,包括:
步骤S2-6,令i=i+1;
步骤S2-8,在状态文件中写入状态“time partition finished”。
进一步地,在所述步骤S3中,包括:
步骤S3-4,令i=i+1;
进一步地,在所述步骤S4中,每个进程可以并行地执行以下步骤:
步骤S4-1,打开输入视频流;
步骤S4-2,打开临时文件;
步骤S4-3,打开进度文件;
步骤S4-4,初始化j=0,其中j为帧号;
步骤S4-7,令j=j+1;
步骤S4-8,判断j是否大于,若是,则完成转码,若否,则返回步骤S4-5。
进一步地,在所述步骤S5中,调用MPI_Barrier操作,等待所有进程转码结束,0号进程依次读取每个进程的临时文件,按序合并,生成转码后的视频文件,若转码无误,则删除所有临时文件、状态文件及进度文件。
进一步地,在所述步骤S5中,等待所有进程转码结束时,对于任一进程,记录其转码时长Tk,计算所有进程平均转码时长Tp,
将转码时长Tk>Tp的进程划分为所述快动进程域,统计所述快动进程域中进程数量Q1,同时将转码时长Tk<Tp的进程划分为所述慢动进程域,统计所述慢动进程域中进程数量Q2,
将所述快动进程域中各进程的转码时长进行降序排列,按降序排列顺序对快动进程域中各进程进行身份标识Q1f,f的取值为1~Q1;
将所述慢动进程域中各进程的转码时长进行升序排列,按升序排列顺序对慢动进程域中各进程进行身份标识Q1p,p的取值为1~Q2;
当f=p时,将身份标识Q1f的进程和身份标识Q1p的进程进行匹配,直至所述慢动进程域中所有进程匹配完毕或所述快动进程域中所有进程匹配完毕。
进一步地,根据CPU运算速率V和数据传输速率X按照以下公式计算时间间隔参数R,设定
其中,V0为预设运算速率,X0为预设数据传输速率。
进一步地,当完成间间隔参数R的计算时,将时间间隔参数R与预设时间间隔对比参数进行比对以确定两个匹配的进程间开启通信的时间差异度,所述预设时间间隔对比参数包括第一预设时间间隔对比参数R1和第二预设时间间隔对比参数R2,其中R1<R2,
当R≥R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb-ΔTb0×α;
当R1<R≤R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb;
当R<R1时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb+ΔTb0×α;
其中,ΔTb为预设标准时间差异度,ΔTb0预设时间差异度调整值,α为调节系数,0.1<α<0.3。
进一步地,对于两个匹配后的进程,将身份标识Q1f的进程的转码时长记为T1,将身份标识Q1p的进程的转码时长记为T2,计算T1与T2的差值ΔT,设定ΔT=T2-T1,将ΔT与时间差异度ΔTb'进行对比,
当ΔT≤ΔTb'时,则不开启两个进程间通信;
当ΔT>ΔTb'时,则在下一次转码任务中当身份标识Q1f的进程完成转码时开启两个进程间通信。
进一步地,在所述步骤S6中,
步骤S6-1,0号进程打开并读取状态文件,获得故障前的状态;
步骤S6-2,若状态为“key frame number generated”,则从状态文件中读取关键
帧号数组,通过MPI_Scatter操作分起始帧号和结束帧号至其它进程,并执
行步骤S6-3,否则,执行步骤S6-6;
步骤S6-5,执行以上转码、合并两个过程,结束;
与现有技术相比,本发明的有益效果在于,本发明所述面向分布式集群的多节点并行视频转码方法能够完成多节点并行视频转码操作,且转码过程中发生故障可快速恢复至故障前的状态,继续转码,避免完全重新转码的开销,基于MPI实现多进程,充分利用多节点资源,显著提升视频转码性能。
进一步地,为适应不同网络带宽和端处理能力,通常需将已经压缩编码的视频码流转换成另一种视频码流,即视频转码。例如,在带宽有限的情况下,MPEG-2视频码流需较大的带宽,此时通常将其转码为占用带宽较小的H264编码。在当前互联网时代,视频转码被应用到PC端视频播放、视频监控等多种场景。视频转码运算量极大,需对视频流进行全解码、帧处理、再编码,在缺少硬件加速器的情况下,单个节点进行转码时间效率较低,此时,可通过分布式集群并行转码。分布式集群包含多个节点,其上部署了SLURM集群管理和调度系统,该系统会为任务队列合理分配资源,并监视作业至其完成,借助SLURM和消息传递接口(Message Passing Interface, MPI)可启动多进程并行任务,利用多节点资源,提高视频转码效率。
进一步地,通过对快动进程域和慢动进程域中的各进程的转码时长进行排序并按照排列顺序对各进程进行身份标识,并将快动进程域中转码速率最快的进程与慢动进程域中转码速率最慢的进程进行匹配,以此类推,全部完成快动进程域或慢动进程域中所有进程匹配,在判定是否开启进程通信时,以两匹配的进程为基础进行判断,以使转码速率最慢的进程能够与转码速率最快的进程共享资源,并以此类推,以实现提高转码速率的目的。
进一步地,在确定两个匹配的进程间开启通信的时间差异度时,CPU运算速率和数据传输速率为两个关键的影响因素,本发明引入间间隔参数R,其根据CPU运算速率和数据传输速率计算得出,对于确定时间差异度具有很好的表征性,当CPU运算速率和数据传输速率较快时,完成数据传输和视频转码的速度也较快,此时可将时间差异度调节为一个较小的值,当CPU运算速率和数据传输速率较慢时,完成数据传输和视频转码的速度也较慢,此时将时间差异度调节为一个较大的值,在适应CPU运算速率和数据传输速率的前提下,最大限度的提高转码效率。
进一步地,进程通信开启后,开启通信的进程会进行数据传输以实现资源共享,本发明通过设置标准时长差值判定两个匹配的进程间是否需要开启通信,当两个匹配的进程间转码时长相差较小时,由于进程间通信需要进行数据传输,增加运算量,此时若开启进程间通信反而会增加运算时间,可能会导致更长的转码时长,此时判定不开启两个进程间通信;当两个匹配的进程间转码时长相差较大时,此时开启两个进程间通信,且当身份标识Q1f的进程完成转码时开启两个进程间通信,由于进程通信后,进程之间的隔离被打破,相匹配的两进程之间实现资源共享,若两进程之间的转码任务均未完成,则会增加转码错误的风险,此时当身份标识Q1f的进程完成转码时开启两个进程间通信,避免了转码错误的风险,同时提高了转码效率。
附图说明
图1为本发明实施例面向分布式集群的多节点并行视频转码方法的流程图;
图2为本发明实施例步骤S4-6中发生故障后N个进程的进度文件示意图;
图3为本发明实施例步骤S6-3中视频帧删除后的结果示意图。
具体实施方式
为了使本发明的目的和优点更加清楚明白,下面结合实施例对本发明作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
请参阅图1所示,其为本发明实施例面向分布式集群的多节点并行视频转码方法的流程图,本发明所述面向分布式集群的多节点并行视频转码方法,包括:
步骤S2,0号进程预处理输入视频,按照进程数目和视频总时长初始化视频划分时间数组;
步骤S3,0号进程定位每个时间点的关键帧号,生成关键帧号数组,并通过MPI_Scatter操作将进程的起始帧号和结束帧号分发给各个进程;
步骤S4,各个进程根据所述起始帧号和所述结束帧号完成对应视频帧序列的转码操作,并将转码后的视频序列写入到临时文件;
步骤S5,0号进程对每个进程的临时文件按序合并,得到最终转码后的视频;
在所述步骤S5中,等待所有进程转码结束时,计算所有进程平均转码时长Tp,根据平均转码时长Tp对进程划分快动进程域和慢动进程域,并将快动进程域和慢动进程域中的进程进行匹配;
以及,根据CPU运算速率V和数据传输速率X计算时间间隔参数R,并根据R确定两个匹配的进程间开启通信的时间差异度ΔTb',并根据ΔTb'判定在两个匹配的进程间是否开启通信;
步骤S6,若转码过程发生故障,则读取中间文件并恢复至故障前的状态,继续转码过程至结束。
为适应不同网络带宽和端处理能力,通常需将已经压缩编码的视频码流转换成另一种视频码流,即视频转码。例如,在带宽有限的情况下,MPEG-2视频码流需较大的带宽,此时通常将其转码为占用带宽较小的H264编码。在当前互联网时代,视频转码被应用到PC端视频播放、视频监控等多种场景。视频转码运算量极大,需对视频流进行全解码、帧处理、再编码,在缺少硬件加速器的情况下,单个节点进行转码时间效率较低,此时,可通过分布式集群并行转码。分布式集群包含多个节点,其上部署了SLURM集群管理和调度系统,该系统会为任务队列合理分配资源,并监视作业至其完成,借助SLURM和消息传递接口(MessagePassing Interface, MPI)可启动多进程并行任务,利用多节点资源,提高视频转码效率。
具体而言,在所述步骤S2中,包括:
表1
0 | 3 | 6 | 9 | 12 | 14 | 16 | 18 |
步骤S2-6,令i=i+1;
步骤S2-8,在状态文件中写入状态“time partition finished”。
具体而言,在所述步骤S3中,包括:
步骤S3-4,令i=i+1;
MPI_Scatter操作为通过一个进程向同一个通信域的所有进程发送数据。
“time partition finished
0,100,201,302,389,475,569,689
key frame number generated”。
具体而言,在所述步骤S4中,每个进程可以并行地执行以下步骤:
步骤S4-1,打开输入视频流;
步骤S4-2,打开临时文件;
步骤S4-3,打开进度文件;
步骤S4-4,初始化j=0,其中j为帧号;
例如,发生故障后N个进程的进度文件如图2所示,每行表示一个进度文件,每个进度文件记录了故障前的最后一个关键帧号。
步骤S4-7,令j=j+1;
具体而言,在所述步骤S5中,调用MPI_Barrier操作,等待所有进程转码结束,0号进程依次读取每个进程的临时文件,按序合并,生成转码后的视频文件,若转码无误,则删除所有临时文件、状态文件及进度文件。
MPI_Barrier操作为同步执行命令,用于所有进程的同步。
具体而言,在所述步骤S5中,等待所有进程转码结束时,对于任一进程,记录其转码时长Tk,计算所有进程平均转码时长Tp,
将转码时长Tk>Tp的进程划分为所述快动进程域,统计所述快动进程域中进程数量Q1,同时将转码时长Tk<Tp的进程划分为所述慢动进程域,统计所述慢动进程域中进程数量Q2,
将所述快动进程域中各进程的转码时长进行降序排列,按降序排列顺序对快动进程域中各进程进行身份标识Q1f,f的取值为1~Q1;
将所述慢动进程域中各进程的转码时长进行升序排列,按升序排列顺序对慢动进程域中各进程进行身份标识Q1p,p的取值为1~Q2;
当f=p时,将身份标识Q1f的进程和身份标识Q1p的进程进行匹配,直至所述慢动进程域中所有进程匹配完毕或所述快动进程域中所有进程匹配完毕。
通过对快动进程域和慢动进程域中的各进程的转码时长进行排序并按照排列顺序对各进程进行身份标识,并将快动进程域中转码速率最快的进程与慢动进程域中转码速率最慢的进程进行匹配,以此类推,全部完成快动进程域或慢动进程域中所有进程匹配,在判定是否开启进程通信时,以两匹配的进程为基础进行判断,以使转码速率最慢的进程能够与转码速率最快的进程共享资源,并以此类推,以实现提高转码速率的目的。
具体而言,根据CPU运算速率V和数据传输速率X按照以下公式计算时间间隔参数R,设定
其中,V0为预设运算速率,X0为预设数据传输速率。
在确定两个匹配的进程间开启通信的时间差异度时,CPU运算速率和数据传输速率为两个关键的影响因素,本发明引入间间隔参数R,其根据CPU运算速率和数据传输速率计算得出,对于确定时间差异度具有很好的表征性,当CPU运算速率和数据传输速率较快时,完成数据传输和视频转码的速度也较快,此时可将时间差异度调节为一个较小的值,当CPU运算速率和数据传输速率较慢时,完成数据传输和视频转码的速度也较慢,此时将时间差异度调节为一个较大的值,在适应CPU运算速率和数据传输速率的前提下,最大限度的提高转码效率。
具体而言,当完成间间隔参数R的计算时,将时间间隔参数R与预设时间间隔对比参数进行比对以确定两个匹配的进程间开启通信的时间差异度,所述预设时间间隔对比参数包括第一预设时间间隔对比参数R1和第二预设时间间隔对比参数R2,其中R1<R2,
当R≥R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb-ΔTb0×α;
当R1<R≤R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb;
当R<R1时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb+ΔTb0×α;
其中,ΔTb为预设标准时间差异度,ΔTb0预设时间差异度调整值,α为调节系数,0.1<α<0.3。
具体而言,对于两个匹配后的进程,将身份标识Q1f的进程的转码时长记为T1,将身份标识Q1p的进程的转码时长记为T2,计算T1与T2的差值ΔT,设定ΔT=T2-T1,将ΔT与时间差异度ΔTb'进行对比,
当ΔT≤ΔTb'时,则不开启两个进程间通信;
当ΔT>ΔTb'时,则在下一次转码任务中当身份标识Q1f的进程完成转码时开启两个进程间通信。
进程通信开启后,开启通信的进程会进行数据传输以实现资源共享,本发明通过设置标准时长差值判定两个匹配的进程间是否需要开启通信,当两个匹配的进程间转码时长相差较小时,由于进程间通信需要进行数据传输,增加运算量,此时若开启进程间通信反而会增加运算时间,可能会导致更长的转码时长,此时判定不开启两个进程间通信;当两个匹配的进程间转码时长相差较大时,此时开启两个进程间通信,且当身份标识Q1f的进程完成转码时开启两个进程间通信,由于进程通信后,进程之间的隔离被打破,相匹配的两进程之间实现资源共享,若两进程之间的转码任务均未完成,则会增加转码错误的风险,此时当身份标识Q1f的进程完成转码时开启两个进程间通信,避免了转码错误的风险,同时提高了转码效率。
具体而言,在所述步骤S6中,
步骤S6-1,0号进程打开并读取状态文件,获得故障前的状态;
步骤S6-2,若状态为“key frame number generated”,则从状态文件中读取关键
帧号数组,通过MPI_Scatter操作分起始帧号和结束帧号至其它进程,并执
行步骤S6-3,否则,执行步骤S6-6;
例如,假设故障前1号进程的最后一个关键帧号为50,已转码至第53帧,将50-53号视频帧删除后的结果如图3所示。
步骤S6-5,执行以上转码、合并两个过程,结束;
本发明所述面向分布式集群的多节点并行视频转码方法能够完成多节点并行视频转码操作,且转码过程中发生故障可快速恢复至故障前的状态,继续转码,避免完全重新转码的开销,基于MPI实现多进程,充分利用多节点资源,显著提升视频转码性能。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种面向分布式集群的多节点并行视频转码方法,其特征在于,包括:
步骤S2,0号进程预处理输入视频,按照进程数目和视频总时长初始化视频划分时间数组;
步骤S3,0号进程定位每个时间点的关键帧号,生成关键帧号数组,并通过MPI_Scatter操作将进程的起始帧号和结束帧号分发给各个进程;
步骤S4,各个进程根据所述起始帧号和所述结束帧号完成对应视频帧序列的转码操作,并将转码后的视频序列写入到临时文件;
步骤S5,0号进程对每个进程的临时文件按序合并,得到最终转码后的视频;
在所述步骤S5中,等待所有进程转码结束时,计算所有进程平均转码时长Tp,根据平均转码时长Tp对进程划分快动进程域和慢动进程域,并将快动进程域和慢动进程域中的进程进行匹配;
以及,根据CPU运算速率V和数据传输速率X计算时间间隔参数R,并根据R确定两个匹配的进程间开启通信的时间差异度ΔTb',并根据ΔTb'判定在两个匹配的进程间是否开启通信;
步骤S6,若转码过程发生故障,则读取中间文件并恢复至故障前的状态,继续转码过程至结束。
2.根据权利要求1所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S2中,包括:
步骤S2-6,令i=i+1;
步骤S2-8,在状态文件中写入状态“time partition finished”。
3.根据权利要求2所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S3中,包括:
步骤S3-4,令i=i+1;
4.根据权利要求3所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S4中,每个进程可以并行地执行以下步骤:
步骤S4-1,打开输入视频流;
步骤S4-2,打开临时文件;
步骤S4-3,打开进度文件;
步骤S4-4,初始化j=0,其中j为帧号;
步骤S4-7,令j=j+1;
5.根据权利要求4所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S5中,调用MPI_Barrier操作,等待所有进程转码结束,0号进程依次读取每个进程的临时文件,按序合并,生成转码后的视频文件,若转码无误,则删除所有临时文件、状态文件及进度文件。
6.根据权利要求5所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S5中,等待所有进程转码结束时,对于任一进程,记录其转码时长Tk,计算所有进程平均转码时长Tp,
将转码时长Tk>Tp的进程划分为所述快动进程域,统计所述快动进程域中进程数量Q1,同时将转码时长Tk<Tp的进程划分为所述慢动进程域,统计所述慢动进程域中进程数量Q2,
将所述快动进程域中各进程的转码时长进行降序排列,按降序排列顺序对快动进程域中各进程进行身份标识Q1f,f的取值为1~Q1;
将所述慢动进程域中各进程的转码时长进行升序排列,按升序排列顺序对慢动进程域中各进程进行身份标识Q1p,p的取值为1~Q2;
当f=p时,将身份标识Q1f的进程和身份标识Q1p的进程进行匹配,直至所述慢动进程域中所有进程匹配完毕或所述快动进程域中所有进程匹配完毕。
8.根据权利要求7所述的面向分布式集群的多节点并行视频转码方法,其特征在于,当完成时间间隔参数R的计算时,将时间间隔参数R与预设时间间隔对比参数进行比对以确定两个匹配的进程间开启通信的时间差异度,所述预设时间间隔对比参数包括第一预设时间间隔对比参数R1和第二预设时间间隔对比参数R2,其中R1<R2,
当R≥R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb-ΔTb0×α;
当R1<R≤R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb;
当R<R1时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb+ΔTb0×α;
其中,ΔTb为预设标准时间差异度,ΔTb0预设时间差异度调整值,α为调节系数,0.1<α<0.3。
9.根据权利要求8所述的面向分布式集群的多节点并行视频转码方法,其特征在于,对于两个匹配后的进程,将身份标识Q1f的进程的转码时长记为T1,将身份标识Q1p的进程的转码时长记为T2,计算T1与T2的差值ΔT,设定ΔT=T2-T1,将ΔT与时间差异度ΔTb'进行对比,
当ΔT≤ΔTb'时,则不开启两个进程间通信;
当ΔT>ΔTb'时,则在下一次转码任务中当身份标识Q1f的进程完成转码时开启两个进程间通信。
10.根据权利要求3所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S6中,
步骤S6-1,0号进程打开并读取状态文件,获得故障前的状态;
步骤S6-2,若状态为“key frame number generated”,则从状态文件中读取关键帧号
数组,通过MPI_Scatter操作分起始帧号和结束帧号至其它进程,并执行步
骤S6-3,否则,执行步骤S6-6;
步骤S6-5,执行以上转码、合并两个过程,结束;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211231042.7A CN115297328B (zh) | 2022-10-10 | 2022-10-10 | 面向分布式集群的多节点并行视频转码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211231042.7A CN115297328B (zh) | 2022-10-10 | 2022-10-10 | 面向分布式集群的多节点并行视频转码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115297328A CN115297328A (zh) | 2022-11-04 |
CN115297328B true CN115297328B (zh) | 2023-01-20 |
Family
ID=83819456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211231042.7A Active CN115297328B (zh) | 2022-10-10 | 2022-10-10 | 面向分布式集群的多节点并行视频转码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115297328B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980752A (zh) * | 2015-06-11 | 2015-10-14 | 武汉大千信息技术有限公司 | 利用cpu和gpu实现多路自适应并行转码的方法及系统 |
CN108848384A (zh) * | 2018-06-19 | 2018-11-20 | 复旦大学 | 一种面向多核平台的高效并行转码方法 |
CN110830805A (zh) * | 2019-10-24 | 2020-02-21 | 上海网达软件股份有限公司 | 一种多分辨率输出的分布式文件转码方法及装置 |
CN112953944A (zh) * | 2021-02-23 | 2021-06-11 | 北京华宇信息技术有限公司 | 基于MapReduce的影音转码方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10375156B2 (en) * | 2015-09-11 | 2019-08-06 | Facebook, Inc. | Using worker nodes in a distributed video encoding system |
US10896253B2 (en) * | 2017-02-06 | 2021-01-19 | Huawei Technologies Co., Ltd. | Processor trace-based enforcement of control flow integrity of a computer system |
CN113992425B (zh) * | 2021-11-12 | 2022-09-23 | 北京天融信网络安全技术有限公司 | 一种收发网络数据包的方法、网络设备以及通信系统 |
-
2022
- 2022-10-10 CN CN202211231042.7A patent/CN115297328B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980752A (zh) * | 2015-06-11 | 2015-10-14 | 武汉大千信息技术有限公司 | 利用cpu和gpu实现多路自适应并行转码的方法及系统 |
CN108848384A (zh) * | 2018-06-19 | 2018-11-20 | 复旦大学 | 一种面向多核平台的高效并行转码方法 |
CN110830805A (zh) * | 2019-10-24 | 2020-02-21 | 上海网达软件股份有限公司 | 一种多分辨率输出的分布式文件转码方法及装置 |
CN112953944A (zh) * | 2021-02-23 | 2021-06-11 | 北京华宇信息技术有限公司 | 基于MapReduce的影音转码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115297328A (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mok et al. | A multiframe model for real-time tasks | |
US6751666B1 (en) | Ripple scheduling for end-to-end global resource management | |
Strosnider et al. | The deferrable server algorithm for enhanced aperiodic responsiveness in hard real-time environments | |
Huang et al. | Modeling and simulation of self-similar variable bit rate compressed video: A unified approach | |
TW201610703A (zh) | 雲端中之分散式串流處理 | |
CN110190991B (zh) | 一种多应用场景下的分布式流处理系统的容错方法 | |
CN116980569A (zh) | 一种基于云计算的安全监控系统及方法 | |
CN109189552B (zh) | 虚拟网络功能扩容与缩容方法及系统 | |
Kaur et al. | Dynamic resource allocation for big data streams based on data characteristics (5 V s) | |
Wang et al. | A cluster autoscaler based on multiple node types in kubernetes | |
Toma et al. | Computation offloading for real-time systems | |
CN115297328B (zh) | 面向分布式集群的多节点并行视频转码方法 | |
CN110516738B (zh) | 一种分布式比对聚类方法、装置、电子设备及存储介质 | |
CN108595250B (zh) | 一种面向IaaS云平台的资源调度效率优化方法及系统 | |
CN114281508A (zh) | 一种数据批流融合离线计算方法 | |
Ye et al. | Eco-FL: Adaptive federated learning with efficient edge collaborative pipeline training | |
Paun et al. | Incremental checkpoint schemes for Weibull failure distribution | |
Jiang et al. | Efficient admission control algorithms for multimedia servers | |
CN116627660A (zh) | 一种基于云数据中心的微服务资源配置方法 | |
CN113901141B (zh) | 一种分布式数据同步方法及系统 | |
Venkatasubramanian et al. | E ective load management for scalable video servers | |
Wang et al. | An adaptive elasticity policy for staging based in-situ processing | |
CN111158898A (zh) | 针对输变电工程场地布置标准化的bim数据处理方法及装置 | |
Teranishi et al. | A sensor data stream recovery scheme for event-driven IoT applications | |
CN115002514B (zh) | 基于云原生控制器的spark视频转码系统及视频转码方法 |
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 |