CN105451031B - 一种视频转码方法和系统 - Google Patents
一种视频转码方法和系统 Download PDFInfo
- Publication number
- CN105451031B CN105451031B CN201510793856.3A CN201510793856A CN105451031B CN 105451031 B CN105451031 B CN 105451031B CN 201510793856 A CN201510793856 A CN 201510793856A CN 105451031 B CN105451031 B CN 105451031B
- Authority
- CN
- China
- Prior art keywords
- video
- transcoding
- transcoded
- blocks
- node
- 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 31
- 230000011218 segmentation Effects 0.000 claims description 32
- 230000002159 abnormal effect Effects 0.000 claims description 14
- 239000000284 extract Substances 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 2
- 238000004364 calculation method Methods 0.000 description 9
- 238000005192 partition Methods 0.000 description 7
- 230000005856 abnormality Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004806 packaging method and process Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000003287 optical effect Effects 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/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
- H04N21/234309—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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- 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
- H04N21/234318—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 by decomposing into objects, e.g. MPEG-4 objects
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明实施例公开了一种视频转码方法和系统;本发明实施例采用将待转码的视频文件分割成多个视频块,然后,对所述多个视频块进行并行转码,以得到多个转码后的视频块,对多个转码后的视频块进行合并,以得到转码后的视频文件;由于该方案将视频文件分割成多个视频块,并采用并行的方式对视频块进行转码,因此,大大提高了转码效率;利用该方案对用户上传的视频文件进行转码,还可以提高用户分享视频的效率,减少用户分享视频的等待时间。
Description
技术领域
本发明涉及视频技术领域,具体涉及一种视频转码方法和系统。
背景技术
随着网络带宽、终端设备的发展,网络视频用户在快速增长,目前观看网络视频已经成为越来越多用户休闲娱乐的首选。为了争夺视频观看用户,各大视频网站都在增加网站内容吸引视频用户。但是,由于网络环境、终端类型、上传的视频内容格式的不同,视频网站的视频在上线投放前都要进行转码处理,以适应各种网络和终端环境的需要。
特别是最近几年,随着移动网络环境的不断升级、移动设备性能的持续提高,越来越多的用户选择在手机上观看视频。手机已经成为大家每天必不可少的电子设备,在上班路上、吃饭的时候,总能看到很多人都在使用手机看视频。了满足用户分享视频的需求、提高视频网站的用户黏着度,几乎所有的视频网站都支持用户上传视频分享的功能。而视频网站实现用户上传视频并分享的功能时,首先需要接收完用户上传的视频文件,然后需要对该视频文件进行转码处理,最后才能在线分享。
由上可知,对于视频网站自己提供的或者用户上传的视频均需要进行转码处理;现有视频转码处理方案都是基于编解码服务器,以整个视频文件为单位,把整个视频的转码计算完全分配到某个编解码服务器上进行转码处理,也即需要将待转码的视频文件逐个发送至编解码服务器,由编解码服务器逐个对视频文件进行转码处理。然而由于单台编解码服务器的计算能力较低,会导致视频文件的转码效率比较低;尤其在视频文件的数量较多、视频文件比较大、视频文件格式不规范的情况下,表现的更为明显。
发明内容
本发明实施例提供一种视频转码方法和系统,可以解决现有视频转码处理方案的转码效率比较低的技术问题。
本发明实施例提供一种视频转码方法,包括:
将待转码的视频文件分割成多个视频块;
对所述多个视频块进行并行转码,以得到多个转码后的视频块;
对所述多个转码后的视频块进行合并,以得到转码后的视频文件。
相应的,本发明实施例还提供一种视频转码系统,包括:
分割单元,用于将待转码的视频文件分割成多个视频块;
转码单元,用于对所述多个视频块进行并行转码,以得到多个转码后的视频块;
合并单元,用于对所述多个转码后的视频块进行合并,以得到转码后的视频文件。
本发明实施例采用将待转码的视频文件分割成多个视频块,然后,对所述多个视频块进行并行转码,以得到多个转码后的视频块,对所述多个转码后的视频块进行合并,以得到转码后的视频文件;由于该方案将视频文件分割成多个视频块,并采用并行的方式对视频块进行转码,因此,大大提高了转码效率;利用该方案对用户上传的视频文件进行转码,还可以提高用户分享视频的效率,减少用户分享视频的等待时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种视频转码方法的流程示意图;
图2是本发明实施例二提供的一种视频转码方法的流程示意图;
图3是本发明实施例三提供的一种视频转码系统的结构示意图;
图4a是本发明实施例四提供的第一种视频转码系统的结构示意图;
图4b是本发明实施例四提供的第二种视频转码系统的结构示意图;
图4c是本发明实施例四提供的第三种视频转码系统的结构示意图;
图4d是本发明实施例四提供的第四种视频转码系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种视频转码方法和系统。以下将分别进行详细说明。
实施例一、
请参阅图1,为本发明实施例一提供的一种视频转码方法的流程示意图。该视频转码方法,包括:
步骤101,将待转码的视频文件分割成多个视频块。
具体地,分割服务器将待转码的视频文件分割成多个视频块,例如将视频文件分割成多个预设大小的视频块,视频块的数量可根据实际需求进行设定。
在实际应用中,可以将待转码的视频文件都存入到“待转码视频文件队列”中,分割服务器可以按照预设顺序从该队列中提取对应的待转码的视频文件,并将其分割成预定数量的视频块;比如按照视频文件在队列中的位置顺序从队列中提取对应的视频文件,或者按照视频文件存入到队列的时间顺序提取对应的视频文件等等。
为了保证各个视频块可以转码成功或者正常转码,优选地,视频块之间的编解码相对独立,也就是说,将视频文件分割成多个独立的视频块,视频块与视频块之间的编解码相对独立,没有直接的关联性。
为了均衡转码负载,提高转码效率,在切割时尽可能将一个视频文件切割成多个大小相等的视频块。
本实施例中将视频文件分割成多个编解码相对独立的视频块的方式有多种,比如可以先根据视频文件的大小和需要分割的块数来确定大概的分割位置,然后在根据确定的分割位置对视频文件进行分割;该种分割方式可以提高分割效率,减少分割时间;也即上述步骤101可以包括:
根据视频文件的大小以及视频文件所需分割的块数确定分割位置;
根据分割位置对视频文件进行分割,以得到多个视频块。
在确定了分割位置之后,根据分割位置进行分割得到编解码相对独立的多个视频块的方式有多种,比如,在切割位置附近查找Close-GOP,即查找编解码相对独立的图像组,然后在该Close-GOP之前的位置对视频文件进行分割;也即步骤“根据分割位置对视频文件进行分割”可以具体包括:
在分割位置附近读取视频文件的视频码流;
判断该视频码流的图像组(GOP)是否为编解码相对独立的图像组,也即判断该GOP是否为Close-GOP;
若是,在该Close-GOP之前的位置对视频文件进行分割。
比如,在确定了视频文件的多个分割位置之后,对于每个分割位置,首先读取该分割位置附近的视频码流,然后对该视频码流的GOP进行判断,如果为Open-GOP,则丢弃,读取分割位置附近的其他GOP继续判断,直至找到Close-GOP为止;如果该GOP为Close-GOP,则在该GOP之前的位置切分,以此类推,直到遍历所有的分割位置,即完成分割得到预设数量的视频块。
需要解释的是:GOP为编码后的视频流的图像组,一个GOP就是一组连续的画面。Open-GOP为开放图像组,其会依赖其前面的GOP序列信息,解码时需要依赖其前面的GOP内的图像帧,在Open-GOP前切分,会导致无法正常转码。Close-GOP是闭合图像组,其是一种相对独立的完整视频图像组,可以在Close-GOP前切分,切分后的视频片段能够正常编码。
本实施例中,在读取的图像组为编解码相对独立的图像组时,可以在该图像中查找I帧(即帧内编码图像帧),然后在I帧之前的位置对视频文件进行切割;也即步骤“在图像组之前的位置对视频文件进行分割”可以具体包括:
在所述图像组内部查找帧内编码图像帧;
在所述帧内编码图像帧之前的位置对所述视频文件进行分割。
一般图像组包含I帧、P帧、B帧,其中I帧是基础帧,编码时独立于其他帧;P帧是前向预测帧,B帧是双向内插帧。I帧包含了一个GOP基本视频场景信息,P、B帧仅仅是运动的补偿,P帧和B帧需要参考I帧;所以视频切割需要根据I帧位置来进行切割,从而可以得到编解码相对独立的视频块。
优选地,为方便管理视频块,本实施例在得到多个视频块之后,可以将该多个视频块加入到“视频块队列”中。
步骤102,对多个视频块进行并行转码,以得到多个转码后的视频块。
具体地,通过多个编解码服务器对多个视频块进行并行转码处理,一个编解码服务器对应一个视频块;比如有n个视频块,那么此时,可以采用n个编解码服务器对n个视频块进行并行转码,其中一个编码服务器对一个对应的视频块进行转码。
在实际应用中,可以由分配服务器从“视频块队列”中提取视频块然后发送给对应的编解码服务器,以使多个编解码进行并行转码。
本实施例中视频转码即视频转换编码,是指视频从一种编码或封装格式到另一种编码或封装格式的转换;其中所指的格式包括:码率、帧率、空间分辨率、封装视频的容器类型、以及所用的编码算法。
本实施例中对视频块转码指的是:先对视频块解码,然后再对视频块编码。具体地,编解码服务器会首先读取视频流片段,然后调用视频解码器对视频块进行解码,得到未编码的视频块,再调用视频编码器对视频块进行编码处理,即可得到转码后的视频块,也就是将视频块的编码或者格式转换到另一种编码或者封装格式。
步骤103,对多个转码后的视频块进行合并,以得到转码后的视频文件。
具体地,合并服务器对多个转码后的视频进行合并,比如在通过多个编码服务器进行并行转码后,将各种转码后的视频块发送给合并服务器,合并服务器将会对接收到的多个转码后的视频块进行合并。
可选地,本实施例可以根据视频块对应的视频时间信息,对多个转码后的视频块进行合并。比如,根据视频块开头的时间戳对多个转码后的视频块进行合并。
为了提高合并效率,本实施例中可以先对转码后的视频块进行排序,然后在合并,也即步骤“根据每个转码后的视频块对应的视频时间信息,对述多个转码后的视频块进行合并”可以具体包括:
根据所述转换后的视频对应的视频时间信息,对多个所述转码后的视频块进行排序;
对经过排序后的多个视频块进行合并。
当然,也可以按照视频块的视频时间信息逐步读取对应的视频块,并逐步进行合并,比如,按照视频块开头的时间戳,先读取视频块1,然后读取视频2,将视频块1和视频块2进行合并得到合并视频块1,再读取视频块3,将视频块3与合并视频块1合并得到合并视频块2……读取视频块n,将视频块与合并合并视频n-1合并。
由上可知,本实施例采用将待转码的视频文件分割成多个视频块,然后,对所述多个视频块进行并行转码,以得到多个转码后的视频块,对所述多个转码后的视频块进行合并,以得到转码后的视频文件;由于该方案将视频文件分割成多个视频块,并采用并行的方式对视频块进行转码,因此,大大提高了转码效率;利用该方案对用户上传的视频文件进行转码,还可以提高用户分享视频的效率,减少用户分享视频的等待时间,提升了用户体验。
实施例二、
根据上述对本发明的方法的描述,本实施例在实施例一的基础上,对本发明的方法将进一步描述。
请参阅图2,为本发明实施例二提供的一种视频转码方法的流程示意图。该视频转码方法,包括:
步骤201,将待转码的视频文件分割成i个视频块,i≥2,i为正整数。
具体地,分割服务器从“待转码视频文件队列”中提取一个视频文件,并将该视频文件分割成多个编解码相对独立的视频块,然后将视频块放入视频块队列中。具体的分割方式可以参考上述对步骤101的描述,此处不再赘述。
步骤202,根据转码单元中n个计算子单元的资源占用信息,从n个计算子单元中选取需要进行转码的i个计算子单元,i≤n,n为正整数。
具体地,可以设置一个主节点,用于对转码进行调度管理。该主节点可以为服务器等具有处理能力的网络设备。
本实施例中转码单元可以由多个计算子单元组成,本实施例计算子单元可以作为一个独立的实体来实现,比如其可以为计算节点,其中计算节点可以为服务器等具体计算处理能力的网络设备。
在实际应用中,转码单元可由n个计算节点组成,主节点可以与各计算节点进行信息交换,以获取各计算节点转码情况和资源占用情况,为保证对视频块的转码可以正常进行,本实施例方法在进行转码之前,还需要主节点根据n个计算节点的资源占用信息,从n个计算节点中选取需要进行转码的i个计算节点,比如有10个视频块,此时,需要按照各计算节点的资源占用率大小从100个计算节点中10个计算节点进行转码。
在主节点选取i个计算节点之后,还可以将选取结果,比如选取的i个计算节点对应的标识发送给分配节点,由分配节点将视频块发送给对应的计算节点,以进行并行转码。
步骤203,通过转码单元中i个计算子单元对i个视频块进行并行转码,其中一个所述计算子单元对应一个所述视频块。
具体地,分配节点接收主节点发送的调度指令,该调度指令携带i个计算节点对应的标识,分配节点根据计算节点对应的标识从视频块队列中提取视频块发送给对应的计算节点,此时i个计算节点分别会接收到一个视频块,然后对各自接收到的视频块进行转码,并在转码完成后,将转码后的视频块发送给合并服务器,由合并服务器进行视频块合并。
步骤204,根据转码后的视频块对应的视频时间信息对i个转码后的视频块进行合并,以得到转码后的视频文件。
具体地,合并服务器会根据各个转码后的视频块即视频片段开头的时间戳信息,将i各转码后的视频块进行合并,最终合并成一个完成的视频文件,该视频文件即为转码后的视频文件。
为了提高转码系统的容错性和健壮性,本实施例方法还可以包括:在计算子单元发生转码异常时,通过转码单元中其他计算子单元中对该计算子单元对应的视频块进行转码。其中,该“其他计算子单元”指的是:转码单元中除了该发生转码异常的计算子单元中的计算单元。
本实施例中可以周期地检测i个计算子单元是否发生转码异常;比如,主节点周期地分别与i个计算节点进行信息交互,以检测i个计算节点是否发生转码异常;当主节点与计算节点无法连接的次数达到预设次数时,则认为该计算节点发生转码异常,当主节点检测到计算节点对视频块转码失败时,则认为该计算节点发生转码异常等等。
在主节点检测到计算节点发生转码异常时,会把该节点上出错的视频转码任务转给其他的计算节点重新对该视频块进行转码处理;如果仍然转码失败,则提示视频文件转码出错。具体地,主节点下发视频块重新转码指令给分配节点,该指令携带转码失败的视频块的标识,分配节点将与该标识对应的视频块发送给其他计算节点处理,比如,发送给转码单元中比较空闲的计算节点处理。
由上可知,本实施例采用将待转码的视频文件分割成i个视频块,然后,通过转码单元中i个计算子单元对多个视频块进行并行转码,根据转码后的视频块对应的视频时间信息对i个转码后的视频块进行合并,以得到转码后的视频文件;由于该方案将视频文件分割成多个视频块,并采用并行的方式对视频块进行转码,因此,大大提高了转码效率;利用该方案对用户上传的视频文件进行转码,还可以提高用户分享视频的效率,减少用户分享视频的等待时间。
另外,该方案还可以在计算子单元转码发生异常时,通过转码单元中其他计算子单元对与该计算子单元对应的视频块进行转码;提高了转码错误处理效率,转码系统的容错性和健壮性,进一步加速视频的编码速度,减少了用户分享视频的等待时间,提高了用户体验。
实施例三、
根据实施例一和二所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以如3所示的视频转码系统来执行本发明的视频转码方法为例进行描述。参考图3,该视频转码系统包括:分割节点301、分配节点302、i个计算节点303(计算节点1、计算节点2……计算节点i)、合并节点304以及主节点305;本实施例中节点可以服务器等具有计算处理能力的网络设备,其中i≥2,且为正整数。
图3所示的视频转码系统实现转码的过程包括:
(1)、分割节点301从“待转码视频文件队列”中提取待转码的视频文件,并对将该视频文件分割成预设数量的编解码相对独立的视频块(比如i个视频块),并将视频块加入到“视频块队列”中。
具体地,视频分割服务器按照先后顺序从“待转码视频文件队列”中取出等待时间较久的视频文件,按照编解码的特点对视频文件进行切分处理,切分出的视频块都是独立的、能够正常转码,并把切分出的视频块加入到系统的“视频块队列”中。
(2)、主节点305根据n个计算节点303的资源占用情况,从n个计算节点303选取需要转码的i个计算节点303,并下发转码任务给分配节点302,该转码任务包括:选取结果,比如,i个计算节点303的标识信息等,2≤i≤n。
(3)、分配节点302从“视频块队列”中提取视频块,并将视频块发送给对应的选取的计算节点303;具体地,根据标识信息将视频块发送给对应的计算节点303。
(4)、i个计算节点303分别接收到分配节点302发送的视频块,每个计算节点303对各自接收到的视频块进行转码处理,并将转换后的视频块发送给合并节点304。
具体地,在计算节点303完成转码后,首先通知主节点305已转码完成,并把转码后的视频块输出到合并节点304,此时,主节点305可以向该计算节点分配新的转码任务。
(5)、合并节点304在接收到i个计算节点303发送的转码后的视频块之后,根据视频块对应的视频时间信息对i个视频块进行合并,最终合并成转码后的视频文件。
具体地,合并视频的服务器在接收到各转码后的视频片段后,会按照各视频片段开头的时间戳先后顺序合并分段视频,最终合并成一个完整的视频文件,输出即可。
本实施例中,主节点305还会定时检测计算节点303是否发生转码异常,若是,则将该节点上未完成的视频转码任务分配给其他正常的计算节点,具体地,通知分配节点302将该发生转码异常的计算节点303对应的视频块发送给其他正常或者空闲的计算节点处理。
本实施例能够可以将一个视频文件按照编解码的特点切分成很多个能够独立转码视频片段(即视频块),分配给多个视频编解码服务器同时进行转码处理;当某个视频编解码服务器出现错误时,只需将该服务器对应的视频片段分配给其他的视频服务器重新进行转码;该方案本质上就是把一个视频文件的转码任务切分成多个子任务,分配到不同的计算节点上同时进行转码处理,最后把转码结果汇总,从而提高了转码系统的容错性和健壮性,加速视频的编码速度,减少了用户分享视频的等待时间,提高了用户体验。
实施例四、
为了更好地实施以上方案,本发明实施例还提供一种视频转码系统,如图4a所示,该视频转码系统可以包括:分割单元401、转码单元402和合并单元403;
其中,分割单元401,用于将待转码的视频文件分割成多个视频块;
转码单元402,用于对该多个视频块进行并行转码,以得到多个转码后的视频块;
合并单元403,用于对所述多个转码后的视频块进行合并,以得到转码后的视频文件。
如图4b所示,优选地,该分割单元401可以具体包括:确定子单元4011和分割子单元4012;
其中,确定子单元4011,用于根据该视频文件的大小以及该视频文件所需分割的块数,确定分割位置;
分割子单元4012,用于根据分割位置对该视频文件进行分割,以得到多个视频块。
优选地,该分割子单元4012,可以具体用于:
在所述分割位置附近读取视频文件的视频码流;
判断所述视频码流的图像组是否为编解码相对独立的图像组;
若是,则在所述图像组之前的位置对所述视频进文件行分割。
优选地,该合并单元403,具体用于根据所述转码后的视频块对应的时间信息对所述多个转码后的视频块进行合并。比如,参考图4c,该合并单元403可以包括排序子单元4031和合并子单元4032;
其中,排序子单元4031,用于根据所述转换后的视频对应的时间信息对多个所述转码后的视频块进行排序;
合并子单元4032,用于对经过排序后的多个视频块进行合并。
优选地,参考图4d,该转码单元402具体可以包括:分配子单元4021和i个计算子单元4022,即计算子单元1(4022)、计算子单元2(4022)……计算子单元i(4022),i≥2,i为正整数;
其中,分配子单元4021,用于将所述多个视频块分别发送给i个计算子单元,其中一个所述视频块对应一个计算子单元;
各计算子单元4022,用于对其接收到的视频块进行转码,以实现对多个视频块进行并行转码。优选地,为提高转码成功率以及均衡负载;在上述视频转码系统的基础上,还可以包括:选取单元;
该选取单元,用于在所述切割单元401将待转码的第一视频文件分割成多个视频块之后,所述转码单元402进行并行转码之前,根据所述转码单元402中n个计算子单元的资源占用信息,从n个计算子单元中选取需要进行转码的i个计算子单元,i≤n,n为正整数。
优选地,为了能够提高系统的错误转码处理效率,该分配子单元4021,还用于在计算子单元4022发生转码异常时,将与该计算子单元4022对应的视频块发送给所述转码单元中的其他计算子单元,以通过其他计算子单元对该视频块进行转码。
具体实施时,以上各个单元可以由独立的实体来实现,也可以进行任意组合,由同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
比如,分割单元401由独立的实体实现时,该分割单元401可以为分割节点或者分割服务器;分配子单元401由独立的实体实现时,该分配子单元4021可以为分配节点或者分配服务器;计算子单元4022由独立的实体实现时,计算子单元4022可以计算节点或者编解码服务器;合并单元403由独立实体实现时,该合并单元403可以为合并节点或者视频合并服务器,选取单元由独立实体实现时,该选取单元可以主节点或者任务调度服务器等。
由上可知,本实施例视频转码系统中的分割单元401将待转码的视频文件分割成多个视频块,然后,由转码单元402对多个视频块进行并行转码,以得到多个转码后的视频块,由合并单元403对多个转码后的视频块进行合并,以得到转码后的视频文件;由于该方案将视频文件分割成多个视频块,并采用并行的方式对视频块进行转码,因此,大大提高了转码效率;利用该方案对用户上传的视频文件进行转码,还可以提高用户分享视频的效率,减少用户分享视频的等待时间。
另外,该方案还可以在计算子单元转码发生异常时,通过转码单元402中其他计算子单元对与该计算子单元对应的视频块进行转码;提高了转码错误处理效率,转码系统的容错性和健壮性,进一步加速视频的编码速度,减少了用户分享视频的等待时间,提高了用户体验。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种视频转码方法和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (5)
1.一种视频转码方法,其特征在于,包括:
按照预设顺序从待转码视频文件队列中提取待转码的视频文件;
根据视频文件的大小以及视频文件所需分割的块数确定分割位置;
遍历分割位置,在所述分割位置附近读取视频文件的视频码流;
判断所述视频码流的图像组是否为编解码相对独立的闭合图像组;所述闭合图像组为一组连续的画面;
若为开放图像组,则丢弃,读取所述分割位置附近的其他图像组继续判断是否为闭合图像组,直至找到闭合图像组为止;
若为闭合图像组时,则在所述闭合图像组内部查找帧内编码图像帧;在所述帧内编码图像帧之前的位置对所述视频文件进行分割,直至遍历所有分割位置,以得到多个视频块,所述视频块之间的编解码相对独立,且没有直接关联性;并将多个视频块加入到视频块队列中;
从所述视频块队列中提取视频块,根据转码单元中n个计算节点的资源占用信息,从n个计算节点中选取需要进行转码的i个计算节点;分配节点接收主节点发送的调度指令,该调度指令携带i个计算节点对应的标识,分配节点根据计算节点对应的标识从视频块队列中提取视频块发送给对应的计算节点,以通过转码单元中i个计算节点对所述多个视频块进行并行转码,其中一个所述计算节点对应一个所述视频块,以得到多个转码后的视频块,i≥2,i为正整数,i≤n,n为正整数;
其中,在转码过程中,主节点周期地分别与i个计算节点进行信息交互,以检测i个计算节点是否发生转码异常;在主节点检测到计算节点发生转码异常时,将异常节点上出错的视频转码任务转给其他的计算节点重新对视频块进行转码处理;如果仍然转码失败,则提示视频文件转码出错;具体地,当主节点与计算节点无法连接的次数达到预设次数时,则认为计算节点发生转码异常,当主节点检测到计算节点对视频块转码失败时,则认为计算节点发生转码异常;
根据所述转码后的视频块对应的视频时间信息,对所述多个转码后的视频块进行合并,以得到转码后的视频文件,其中,所述视频时间信息包括所述视频块开头的时间戳。
2.如权利要求1所述的视频转码方法,其特征在于,所述根据所述转码后的视频块对应的视频时间信息,对所述多个转码后的视频块进行合并的步骤包括:
根据所述转码后的视频块对应的视频时间信息,对所述多个转码后的视频块进行排序;
对经过排序后的多个视频块进行合并。
3.一种视频转码系统,其特征在于,包括:
分割单元,包括:
确定子单元,用于按照预设顺序从待转码视频文件队列中提取待转码的视频文件,根据视频文件的大小以及所述视频文件所需分割的块数,确定分割位置;
分割子单元,用于遍历分割位置,在所述分割位置附近读取视频文件的视频码流;判断所述视频码流的图像组是否为编解码相对独立的闭合图像组;若为开放图像组,则丢弃,读取所述分割位置附近的其他图像组继续判断是否为闭合图像组,直至找到闭合图像组为止;若为闭合图像组,则在所述闭合图像组内部查找帧内编码图像帧;在所述帧内编码图像帧之前的位置对所述视频文件进行分割,直至遍历所有分割位置,以得到多个视频块,所述视频块之间的编解码相对独立且没有直接关联;所述图像组为一组连续的画面,并将多个视频块加入到视频块队列中;
转码单元,用于从所述视频块队列中提取视频块,根据转码单元中n个计算节点的资源占用信息,从n个计算节点中选取需要进行转码的i个计算节点;分配节点接收主节点发送的调度指令,该调度指令携带i个计算节点对应的标识,分配节点根据计算节点对应的标识从视频块队列中提取视频块发送给对应的计算节点,以通过转码单元中i个计算节点对所述多个视频块进行并行转码,其中一个所述计算节点对应一个所述视频块,以得到多个转码后的视频块,i≥2,i为正整数,i≤n,n为正整数;其中,在转码过程中,主节点周期地分别与i个计算节点进行信息交互,以检测i个计算节点是否发生转码异常;在主节点检测到计算节点发生转码异常时,将异常节点上出错的视频转码任务转给其他的计算节点重新对视频块进行转码处理;如果仍然转码失败,则提示视频文件转码出错;具体地,当主节点与计算节点无法连接的次数达到预设次数时,则认为计算节点发生转码异常,当主节点检测到计算节点对视频块转码失败时,则认为计算节点发生转码异常;
合并单元,用于根据所述转码后的视频块对应的视频时间信息,对所述多个转码后的视频块进行合并,以得到转码后的视频文件,其中,所述视频时间信息包括所述视频块开头的时间戳。
4.如权利要求3所述的视频转码系统,其特征在于,所述合并单元包括:
排序子单元,用于根据所述转码后的视频块对应的视频时间信息对所述多个转码后的视频块进行排序;
合并子单元,用于对经过排序后的多个视频块进行合并。
5.一种计算机可读存储介质,其存储有用于视频转码的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-2任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510793856.3A CN105451031B (zh) | 2015-11-18 | 2015-11-18 | 一种视频转码方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510793856.3A CN105451031B (zh) | 2015-11-18 | 2015-11-18 | 一种视频转码方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105451031A CN105451031A (zh) | 2016-03-30 |
CN105451031B true CN105451031B (zh) | 2021-11-30 |
Family
ID=55560750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510793856.3A Active CN105451031B (zh) | 2015-11-18 | 2015-11-18 | 一种视频转码方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105451031B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915910B (zh) * | 2016-06-08 | 2019-02-12 | 上海增容数据科技有限公司 | 一种基于云平台的视频转码方法和装置 |
CN106713944A (zh) * | 2016-12-30 | 2017-05-24 | 北京奇虎科技有限公司 | 一种流数据任务的处理方法和装置 |
CN106878735A (zh) * | 2017-01-18 | 2017-06-20 | 环球智达科技(北京)有限公司 | 一种视频压缩编码的屏幕保护系统 |
CN108989885B (zh) * | 2017-06-05 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 视频文件转码系统、分割方法、转码方法及装置 |
CN107277650B (zh) * | 2017-07-25 | 2020-01-21 | 中国华戎科技集团有限公司 | 视频文件切割方法及装置 |
CN108510702B (zh) * | 2018-04-27 | 2020-08-04 | 太原工业学院 | 火灾检测方法及系统 |
CN108830706A (zh) * | 2018-05-31 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置和电子设备 |
CN108848384A (zh) * | 2018-06-19 | 2018-11-20 | 复旦大学 | 一种面向多核平台的高效并行转码方法 |
CN109640115A (zh) * | 2018-12-17 | 2019-04-16 | 视联动力信息技术股份有限公司 | 一种流媒体文件转码方法和装置 |
CN109769142B (zh) * | 2019-01-28 | 2021-02-09 | 深圳市睿智物联科技有限公司 | 一种城市媒体墙灯光秀的视频切割方法及系统 |
CN110062278A (zh) * | 2019-04-12 | 2019-07-26 | 北京字节跳动网络技术有限公司 | 视频数据发布方法、装置、电子设备和存储介质 |
CN111314735A (zh) * | 2020-03-06 | 2020-06-19 | 新华智云科技有限公司 | 视频处理方法、系统及存储介质 |
CN114257839A (zh) * | 2020-09-23 | 2022-03-29 | 京东方科技集团股份有限公司 | 视频编码装置及解码装置、播放系统及方法 |
CN112423024A (zh) * | 2020-11-18 | 2021-02-26 | 北京乐学帮网络技术有限公司 | 一种视频转码方法、装置、计算机设备和存储介质 |
CN112543373B (zh) * | 2020-11-30 | 2022-04-22 | 联想(北京)有限公司 | 一种转码控制方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010287110A (ja) * | 2009-06-12 | 2010-12-24 | Nec Personal Products Co Ltd | 情報処理装置、情報処理方法、プログラム及び記録媒体 |
CN103024605A (zh) * | 2012-12-31 | 2013-04-03 | 传聚互动(北京)科技有限公司 | 视频文件的云转码方法和系统 |
CN103686206A (zh) * | 2014-01-02 | 2014-03-26 | 中安消技术有限公司 | 一种云环境下的视频转码方法和系统 |
CN104159127A (zh) * | 2014-08-21 | 2014-11-19 | 北京奇艺世纪科技有限公司 | 一种视频转码方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070091928A1 (en) * | 2005-10-21 | 2007-04-26 | Wee Susie J | Serial and parallel processing of data using information about the data and information about a streaming network |
CN102510499A (zh) * | 2011-10-19 | 2012-06-20 | 清华大学 | 一种云环境中基于图像组的视频转码方法 |
CN103379364B (zh) * | 2012-04-26 | 2018-08-03 | 腾讯科技(深圳)有限公司 | 视频文件的处理方法、装置、视频服务器和系统 |
CN103607594A (zh) * | 2013-11-13 | 2014-02-26 | 天脉聚源(北京)传媒科技有限公司 | 一种实时视频转码的方法及装置 |
-
2015
- 2015-11-18 CN CN201510793856.3A patent/CN105451031B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010287110A (ja) * | 2009-06-12 | 2010-12-24 | Nec Personal Products Co Ltd | 情報処理装置、情報処理方法、プログラム及び記録媒体 |
CN103024605A (zh) * | 2012-12-31 | 2013-04-03 | 传聚互动(北京)科技有限公司 | 视频文件的云转码方法和系统 |
CN103686206A (zh) * | 2014-01-02 | 2014-03-26 | 中安消技术有限公司 | 一种云环境下的视频转码方法和系统 |
CN104159127A (zh) * | 2014-08-21 | 2014-11-19 | 北京奇艺世纪科技有限公司 | 一种视频转码方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105451031A (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105451031B (zh) | 一种视频转码方法和系统 | |
JP6665127B2 (ja) | メディアパケット復号装置及び復号方法 | |
US10924783B2 (en) | Video coding method, system and server | |
US9712835B2 (en) | Video encoding system and method | |
CN108650510B (zh) | 视频的编码方法和装置、存储介质、电子装置 | |
CN110213615B (zh) | 视频转码方法、装置、服务器以及存储介质 | |
KR101925681B1 (ko) | 멀티코어 시스템을 이용한 병렬 비디오 처리 | |
US10326996B2 (en) | Rate control for video splicing applications | |
CN102802022A (zh) | 编解码系统和方法 | |
CN104079975A (zh) | 图像处理设备、图像处理方法以及计算机程序 | |
CN113965751A (zh) | 屏幕内容编码方法、装置、设备及存储介质 | |
CN111163335B (zh) | 一种分布式服务器的视频处理方法及装置 | |
CN113906764A (zh) | 可中断视频转码 | |
CN114363703B (zh) | 视频处理方法、装置及系统 | |
TW201445989A (zh) | 分散式編解碼系統及方法 | |
CN110784731B (zh) | 一种数据流转码方法、装置、设备及介质 | |
US10944982B1 (en) | Rendition switch indicator | |
KR102296987B1 (ko) | 기계 학습 모델에 기초한 블록 체인을 이용한 hevc 분산형 복호화 방법, 장치 및 시스템 | |
US20170185455A1 (en) | Scheduler of computer processes for optimized offline video processing | |
CN116980662A (zh) | 流媒体播放方法、装置、电子设备、存储介质及程序产品 | |
CN111279694A (zh) | Gdr码流编码方法、终端设备、机器可读存储介质 | |
CN111953988B (zh) | 视频转码方法、计算机设备和存储介质 | |
US20220141469A1 (en) | Method and apparatus for constructing motion information list in video encoding and decoding and device | |
CN117880570A (zh) | 一种数据传输方法及装置 | |
CN116248884A (zh) | 一种基于会话复用的多路视频解码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |