CN105578205A - 一种视频转码方法和系统 - Google Patents
一种视频转码方法和系统 Download PDFInfo
- Publication number
- CN105578205A CN105578205A CN201410584834.1A CN201410584834A CN105578205A CN 105578205 A CN105578205 A CN 105578205A CN 201410584834 A CN201410584834 A CN 201410584834A CN 105578205 A CN105578205 A CN 105578205A
- Authority
- CN
- China
- Prior art keywords
- transcoding
- video
- subfile
- task
- operator
- 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.)
- Pending
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供的视频转码方法和系统,为不同类别的视频赋予均等的转码机会,具体地,可将运营商ID作为视频分类依据,并为不同运营商赋予同等的转码机会,在每轮转码中,确保各个运营商有被访问且仅被访问一次,并在访问每个运营商时,仅对该运营商中当前请求时间最早的转码任务进行转码,且本发明可对多个运营商的多个任务进行并行处理,实现了多运营商对转码过程中各处理环节(切片、转码、合片)的资源共享,各处理环节在将当前运营商任务交由下一环节后,无需闲置等待,可开始下一个运营商的相应任务处理。可见,本发明实现了多运营商多任务的并行处理,各运营商无需等待当前运营商的转码流程结束后才开始转码,提高了各运营商的转码效率。
Description
技术领域
本发明属于视频、流媒体技术领域,尤其涉及一种视频转码方法和系统。
背景技术
随着网络基础设施和视频技术的完善,流媒体应用在互联网应用中的比重越来越大。转码在流媒体应用中起着非常重要的作用,其能够将视频流转换成同一种格式在流媒体上发布,使之适应不同的网络环境和播放设备。
目前,无线网络快速崛起,大量异构的移动客户端介入流媒体服务,随之,对视频转码功能提出了速度更快、支持格式更高的需求,基于此,提高视频转码性能成为流媒体技术的重要课题。现有的视频转码方法仅支持多任务(每个任务对应一个视频源文件的转码需求)的串行处理,即在对当前转码任务进行切分、转码、合并的整个转码处理流程结束之后,才能够开始下一个转码任务的处理过程,从而,在有多个运营商的多个任务同时需要转码时,只能对当前某运营商的某个任务进行转码处理,即只有一个运营商进行转码,其他各运营商的转码任务需排队等候,从而,影响了其他运营商的转码效率。
综上,亟需提供一种能够对不同类别(例如,以运营商ID作为分类依据)的视频进行并行转码的视频转码方法或系统,以使各运营商的转码任务无需排队等候即可进行转码,提高运营商的转码效率。
发明内容
有鉴于此,本发明的目的在于提供一种视频转码方法和系统,用于解决现有技术由于采用多任务的串行处理,而导致在对多运营商的多任务进行转码时,只有一个运营商进行转码,从而影响其他运营商转码效率的问题。
为此,本发明公开如下技术方案:
一种视频转码方法,包括:
获取当前目标视频类别中请求时间最早的转码任务,判断所述转码任务对应的扫描方式,并在发送所述转码任务后,继续获取下一个目标视频类别中请求时间最早的转码任务,并判断其对应的扫描方式;
其中,所述目标视频类别为在本轮视频转码过程中,预设的视频类别集合内未被访问的视频类别中转码优先级最高的视频类别,所述转码任务包括待转码的视频源文件以及对所述视频源文件进行转码所需的转码参数;
对接收的转码任务执行预设操作,所述预设操作具体为将所述转码任务中的视频源文件分割为预设时长的N个视频子文件,为每个所述视频子文件生成相应的描述信息;并在发送所述转码参数以及N个视频子文件及其所对应的描述信息后,对下一个转码任务进行所述预设操作,其中,所述N为大于1的自然数;
依据所述转码参数,对接收的所述N个视频子文件进行与所述扫描方式相对应的转码处理,得到N个转码子文件,并在发送所述N个转码子文件及其相应的所述描述信息后,对下一个转码任务进行所述转码处理;
依据所述N个转码子文件相对应的所述描述信息,对所述N个转码子文件进行合片处理,得到所述视频源文件所对应的转码文件,并在上传所述转码文件后,对下一个转码任务进行合片处理。
上述方法,优选的,所述视频类别具体为依据视频所属的运营商所划分的类别,同一运营商的视频被划分为同一类别。
上述方法,优选的,所述扫描方式包括逐行扫描和隔行扫描。
上述方法,优选的,所述依据所述转码参数对接收的所述N个视频子文件进行与所述扫描方式相对应的转码处理,得到N个转码子文件,包括:
在所述扫描方式为逐行扫描时,基于所述转码参数,采用M个转码子单元以并行处理方式对所述N个视频子文件进行转码,得到N个转码子文件;在所述扫描方式为隔行扫描时,对所述N个视频子文件进行交织处理,并基于所述转码参数,采用M个转码子单元以并行处理方式对交织处理后的各视频子文件进行转码,得到N个转码子文件;
其中,所述M为大于1的自然数。
上述方法,优选的,还包括:
在所述转码子单元出现故障时,将故障转码子单元负责的视频子文件转码任务交由未出现故障的转码子单元进行转码处理。
上述方法,优选的,所述转码参数包括转码类型、分辨率和码率,其中,所述转码类型具体为h264转码或h265转码中的任意一种。
上述方法,优选的,所述视频子文件的描述信息包括所述视频子文件的时长、帧数以及开始时间、结束时间。
一种视频转码系统,包括:
任务获取模块,用于获取当前目标视频类别中请求时间最早的转码任务,判断所述转码任务对应的扫描方式,并在发送所述转码任务后,继续获取下一个目标视频类别中请求时间最早的转码任务,并判断其对应的扫描方式;
其中,所述目标视频类别为在本轮视频转码过程中,预设的视频类别集合内未被访问的视频类别中转码优先级最高的视频类别,所述转码任务包括待转码的视频源文件以及对所述视频源文件进行转码所需的转码参数;
切片模块,用于对接收的转码任务执行预设操作,所述预设操作具体为将所述转码任务中的视频源文件分割为预设时长的N个视频子文件,为每个所述视频子文件生成相应的描述信息;并在发送所述转码参数以及N个视频子文件及其所对应的描述信息后,对下一个转码任务进行所述预设操作,其中,所述N为大于1的自然数;
转码模块,用于依据所述转码参数,对接收的所述N个视频子文件进行与所述扫描方式相对应的转码处理,得到N个转码子文件,并在发送所述N个转码子文件及其相应的所述描述信息后,对下一个转码任务进行所述转码处理;
合片模块,用于依据所述N个转码子文件相对应的所述描述信息,对所述N个转码子文件进行合片处理,得到所述视频源文件所对应的转码文件,并在上传所述转码文件后,对下一个转码任务进行合片处理。
上述系统,优选的,所述转码模块包括:
第一转码单元,用于在所述扫描方式为逐行扫描时,基于所述转码参数,采用M个转码子单元以并行处理方式对所述N个视频子文件进行转码,得到N个转码子文件;
第二转码单元,用于在所述扫描方式为隔行扫描时,对所述N个视频子文件进行交织处理,并基于所述转码参数,采用M个转码子单元以并行处理方式对交织处理后的各视频子文件进行转码,得到N个转码子文件;
其中,所述M为大于1的自然数。
上述系统,优选的,所述转码模块还包括:
故障处理单元,用于在所述转码子单元出现故障时,将故障转码子单元负责的视频子文件转码任务交由未出现故障的转码子单元进行转码处理。
由以上描述可知,本发明提供的视频转码方法和系统,为不同类别的视频赋予均等的转码机会,具体地,可将运营商ID作为视频分类依据,并为不同运营商赋予同等的转码机会,在每轮转码中,确保各个运营商有被访问且仅被访问一次,并在访问每个运营商时,仅对该运营商中当前请求时间最早的转码任务进行转码,且本发明可对多个运营商的多个转码任务进行并行处理,具体地,以多个运营商共享流水线资源的流水线处理方式对不同运营商的多个转码任务进行并行处理,实现了多运营商对转码过程中各处理环节(切片、转码、合片)的资源共享,各处理环节在将当前运营商任务交由下一处理环节后,无需闲置等待,即可开始下一个运营商的相应任务处理,例如,当对运营商1的任务task1完成切片,将其输送至转码环节进行转码后,切片处理资源不闲置,可继续对运营商2的task2进行切片。
可见,本发明实现了多运营商多任务的并行处理,各运营商无需等待当前运营商任务的整个转码处理流程结束后才开始转码,提高了各运营商的转码效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一公开的视频转码方法的一种流程图;
图2是本发明实施例二公开的视频转码方法的另一种流程图
图3是本发明实施例三公开的一转码实例系统的结构示意图;
图4是本发明实施例四公开的视频转码系统的结构示意图;
图5是本发明实施例四公开的转码模块的一种结构示意图;
图6是本发明实施例四公开的转码模块的另一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一公开一种视频转码方法,参考图1,所述方法可以包括以下步骤:
S101:获取当前目标视频类别中请求时间最早的转码任务,判断所述转码任务对应的扫描方式,并在发送所述转码任务后,继续获取下一个目标视频类别中请求时间最早的转码任务,并判断其对应的扫描方式。
其中,所述目标视频类别为在本轮视频转码过程中,预设的视频类别集合内未被访问的视频类别中转码优先级最高的视频类别,所述转码任务包括待转码的视频源文件以及对所述视频源文件进行转码所需的转码参数。
所述转码参数包括转码类型、转码所需的分辨率和码率,所述转码类型具体为h264转码或h265转码中的任意一种,即本发明支持h264和h265转码,且采用mp4的视频封装格式。
本发明针对现有视频转码方式由于采用多任务的串行处理,而导致对多运营商的多任务进行转码时,只有一个运营商进行转码,其他运营商等待,从而影响其他运营商转码效率的这一缺点,提出多运营商的概念,并以转码任务所属的运营商ID即operatorID作为转码任务类别的划分依据,且为各运营商赋予同等的转码机会,确保在每轮转码中,各个运营商有被访问且仅被访问一次,并在访问每个运营商时,仅对该运营商中当前请求时间最早的转码任务进行转码(保证同一运营商的任务串行处理)。
具体实施时,针对具有转码需求的多个运营商,可依据任务请求时间(也即任务入库时间)的先后,以轮询运营商的方式从任务数据库中获取各运营商的任务(后续可对多运营商的多任务进行并行处理),来保证各运营商具有同等的转码机会。
以任务数据库中共有3个运营商operator1、operator2、operator3为例,假设按照任务请求时间的先后次序,operator1先后有3个任务入库:task1、task2、task3;operator2先后有2个任务入库:task4、task5;operator3先后有3个任务入库:task6、task7、task8。其中,task4的任务请求时间早于task6、task6的请求时间早于task1;task2的请求时间早于task5、task5的请求时间早于task7。
第一轮轮询中,由于task4的任务请求时间早于task6、task6的请求时间早于task1,则3个运营商的优先级次序为:operator2优先级最高、operator3次之、operator1最低,从而,第一轮轮询以operator2、operator3、operator1的顺序分别获取3个运营商的任务task4、task6、task1;相应地,第二轮轮询以operator1、operator2、operator3的优先级顺序获取这3个运营商的任务task2、task5、task7,从而保证了各运营商具有同等的转码机会。
相较于现有技术,本发明还增添了对视频源文件的扫描方式进行判断的判断功能,即判断视频源文件是隔行扫描还是逐行扫描,以方便后续对其进行有针对性的转码。
S102:对接收的转码任务执行预设操作,所述预设操作具体为将所述转码任务中的视频源文件分割为预设时长的N个视频子文件,为每个所述视频子文件生成相应的描述信息;并在发送所述转码参数以及N个视频子文件及其所对应的描述信息后,对下一个转码任务进行所述预设操作,其中,所述N为大于1的自然数;
其中,所述视频子文件的描述信息包括所述视频子文件的时长、帧数以及开始时间、结束时间,该描述信息用于为后续合片操作提供依据。
所述预设时长可由本领域技术人员依据实际的切片情况对其进行自行定义,例如,可将所述预设时长设定为10秒,将视频源文件分割为10秒一段的多个小视频子文件。
为便于描述,本实施例分别将执行切片操作、转码操作、合片操作的各个处理实体称为切片模块、转码模块、合片模块。
当切片模块对当前运营商的任务切片结束,并将切片所得的各视频子文件交由至转码模块进行转码后,切片模块不闲置等待,不必关心当前任务后续的转码、合片处理进度,可以直接获取下一个运营商任务,并开始对其执行切片操作。
S103:依据所述转码参数,对接收的所述N个视频子文件进行与所述扫描方式相对应的转码处理,得到N个转码子文件,并在发送所述N个转码子文件及其相应的所述描述信息后,对下一个转码任务进行所述转码处理;
其中,本步骤具体针对转码任务采用的扫描方式对其视频子文件进行有针对性的转码处理。其中,在所述扫描方式为逐行扫描时,基于所述转码参数,采用M个转码子单元以并行处理方式对所述N个视频子文件进行转码,得到N个转码子文件;在所述扫描方式为隔行扫描时,对所述N个视频子文件进行交织处理,并基于所述转码参数,采用M个转码子单元以并行处理方式对交织处理后的各视频子文件进行转码,得到N个转码子文件;所述M为大于1的自然数。
本发明采用M个转码子单元对N个视频子文件进行并行转码,例如,具体可采用多个转码线程实现各视频子文件的并行转码,节省了转码时间,提高了运营商的转码效率。
本实施例中,每个转码子单元具有唯一的ID,具体实施时,可通过uuid(UniversallyUniqueIdentifier,通用唯一识别码)函数来保证每个转码子单元具有唯一ID。如果转码子单元(例如转码线程)没有重启,那么整个运行过程其一直会使用此ID,如果转码子单元重新启动了,则其ID也会随之变化。
转码子单元定时地,例如每间隔60s,向切片模块发送心跳包(即包含其ID的注册包)以请求视频子文件的转码任务,如果此时有转码任务,则转码子单元下载切片模块向其分配的转码任务,然后根据转码参数中定义的转码类型,获取具体需进行h264转码还是h265转码,进而调用相应的264编码器或265编码器实现转码;如果没有请求到任务,则转码子单元间隔5秒钟继续向切片模块请求任务,其中,定时时间间隔及请求失败时继续请求的时间间隔可根据实际需求进行设定。
相应地,转码模块在对当前运营商任务的各视频子文件转码结束,并将所得的转码子文件交由合片模块后,不必闲置等待,可直接获取下一个运营商的任务,并对其进行各视频子文件的并行转码操作。
S104:依据所述N个转码子文件相对应的所述描述信息,对所述N个转码子文件进行合片处理,得到所述视频源文件所对应的转码文件,并在上传所述转码文件后,对下一个转码任务进行合片处理。
合片模块依据描述信息中的视频开始时间、结束时间对各转码子文件进行连接、合并,得到视频源文件所对应的转码文件,为后续的视频播放需求提供了支持。
同样地,合片模块在将最终合片所得的转码文件上传至指定地址后,例如上传至服务器后,可直接进行下一个运营商任务的合片操作。
其中,转码结束后,如果转码成功则把转码视频上传回服务器。如果失败,通知服务器,转码失败。
本发明以流水线处理方式实现了多运营商对转码流程中各处理环节资源的共享,各运营商具有同等的转码机会,且多运营商的多任务按请求时间的先后顺序轮流使用切片、转码、合并的各处理环节的资源,各个处理环节在将当前运营商任务交由后续处理环节后,不需闲置等待,可直接开始下一个运营商的任务处理,实现了多运营商多任务的并行处理。
例如,假设有两个运营商operator1、operator2的两个转码任务:task1和task2,operator1的task1首先进入转码流程,切片模块将task1的视频源文件切割为多个转码段(视频子文件);之后,转码模块获取task1的各转码段对其进行转码,同时,operator2的task2进入转码流程,由切片模块对其进行切割操作;在转码模块对task1的文件转码结束后,合片模块获取task1的各转码子文件对其进行合并处理,转码模块继续对task2进行转码……,直至各运营商任务全部处理结束,节省了总的转码处理时间。
由以上描述可知,本发明提供的视频转码方法和系统,为不同类别的视频赋予均等的转码机会,具体地,可将运营商ID作为视频分类依据,并为不同运营商赋予同等的转码机会,在每轮转码中,确保各个运营商有被访问且仅被访问一次,并在访问每个运营商时,仅对该运营商中当前请求时间最早的转码任务进行转码,且本发明可对多个运营商的多个转码任务进行并行处理,具体地,以多个运营商共享流水线资源的流水线处理方式对不同运营商的多个转码任务进行并行处理,实现了多运营商对转码过程中各处理环节(切片、转码、合片)的资源共享,各处理环节在将当前运营商任务交由下一处理环节后,无需闲置等待,即可开始下一个运营商的相应任务处理,例如,当对运营商1的任务task1完成切片,将其输送至转码环节进行转码后,切片处理资源不闲置,可继续对运营商2的task2进行切片。
可见,本发明实现了多运营商多任务的并行处理,各运营商无需等待当前运营商任务的整个转码处理流程结束后才开始转码,提高了各运营商的转码效率。
实施例二
本实施例二继续对实施例一的视频转码方法进行完善、优化,参考图2,所述方法还可以包括以下步骤:
S105:在转码子单元出现故障时,将故障转码子单元负责的视频子文件转码任务交由未出现故障的转码子单元进行转码处理。
转码过程中,若某一转码子单元因某些原因导致转码进程down掉(例如人为把任务杀死),那么该转码子单元无法继续进行转码工作,同时,其也不会再向切片模块请求任务。针对此种情况,本实施例提供对各转码子单元进行故障检测的检测功能,若一段时间内未检测到某转码子单元的心跳包,且该转码子单元已被分配任务,则收回该转码子单元负责的转码任务,并将其交由至其它未发生故障的转码子单元进行转码,以避免转码失败。
具体地,由于每个转码子单元通过uuid函数分配有唯一的ID,只要转码子单元没有重新启动,其ID就不会改变。基于此设计,运维人员就不必关心转码子单元的ID配置,当某一转码子单元出现故障down掉时,只要复制同样的一份程序(故障转码子单元负责的转码任务)到其它正常的转码子单元,然后重新启动该故障转码子单元即可。
本实施例针对实际转码过程中,可能出现进程故障、机器故障的情况,增设了故障处理机制,保证了视频转码过程中故障任务的快速恢复,进而保证了各转码任务的正常进行。
实施例三
本实施例三公开本发明的一具体应用实例。
该实例中,如图3所示,视频转码系统具体包括两个部分:转码控制单元(transManager)1和P个转码节点(transEncoder)2,P为大于1的自然数。其中,TransManager是中心节点、中央控制器,负责管理整个任务的调度,例如任务切割,任务分配,任务合并,转码成功后转码文件的上传;TransEncoder是终端节点,负责相应转码任务中各分片(小视频子文件)的转码工作,该实例的视频转码系统部署在服务器上,支持多operator多任务的并行处理,系统的整个转码处理流程如下:
1)transManager获取用户在portal(转码入口)页面上传的各运营商的转码任务,将转码任务中的视频源文件分割为10秒一段的视频子文件,同时生成这些视频子文件的描述信息,例如,每个视频子文件的时长,帧数,以及开始时间和结束时间等。
具体地,客户端通过portal向服务器上传运营商的视频源文件,要求对其进行转码,此时,portal向服务器的DB(Database,数据库)中插入一条任务记录,该任务记录包含所上传视频源文件的位置以及转码参数,所述转码参数包括转码类型(是h264转码还是h265转码)、转码所需的分辨率、码率等信息。
transManager定时调用DB数据库接口从数据库中获取不同运营商的转码任务,并判断其所包括的segment(切片模块)是否可以增加任务,如果能够增加,则将获取的任务添加至segment进行任务切割。本实例中,规定同一个operator的任务串行处理,不同operator的任务并行处理。以此来保证单一运营商不能占用转码流程中的全部资源,在此基础上,进行各任务的获取及添加(添加至segment),保证了各运营商具有同等的转码机会。
例如:假设task1对应的operatorID为1,profile为nocopy,task2对应的operatorID为2,profile为nocopy,那么task1和task2的任务可以加入到taskManager队列同时进行转码流程,首先segment对task1进行分段,task1分段结束后,encoderThread线程取task1的任务进行转码;同时,segment对对task2进行分段,encoderThread线程对task1的任务转码结束后,再取task2的任务进行转码……。
2)各transEncoder定时(60秒一次)向transManager发送携带其ID的心跳包,transManager依据各transEncoder的ID向其分配视频子文件的转码任务,之后,各transEncoder执行被分配的转码任务,同时,transManager获取并执行下一个转码任务的切割操作。
其中,每个transEncoder都有唯一的ID号,如果transEncoder没有重启,那么整个过程transEncoder一直会用此ID,如果transEncoder重新启动了,则其ID也会随之变化。
transEncoder不断向transManager请求任务,如果没有请求到转码任务,就间隔五秒钟继续向transManager发送请求,如果有转码任务,首先transEncoder下载要转码的视频子文件,然后根据profile的定义判断是需进行h264转码还是h265转码,之后相应调用264编码器或265编码器完成转码。转码结束后,如果转码成功则transEncoder把视频上传回服务器;如果因视频原因而转码失败,则通知服务器转码失败,从而,整个转码任务全部失败;如果因某个transEncoderdown掉,而导致其转码任务失败,则该transEncoder不会再向transManager发送心跳包,从而,ransManager在规定时间内也不会检测到此transEncoder的心跳包,此时,ransManager收回该transEncoder的转码任务,并将其交由其他正常的transEncoder执行转码。
transEncoder在转码过程中,如果因某种原因导致其没有返回转码结果(例如当时网络中断),则在该tranEncoder再次向transManager请求转码任务时,由于transManager检测到此transEncoder上次的结果没有返回,则transManager重新置此未返回结果的转码任务为未转码状态,待transEncoder返回转码结果后,才向其分配新的转码任务。
3)transManager对各transEncoder转码后所得的转码子文件进行合并,并把合并后的转码文件上传至指定服务器。
transManager还定时查看task队列的任务状态,如果任务完成,或者失败,则将此任务从队列中删除,并将任务的转码情况写入数据库。
transManager执行合并操作的同时,各transEncoder执行下一个运营商任务中各视频子文件的转码操作,且transManager同时执行第三个运营商任务的分割操作,保证各运营商任务的并行执行。
实施例四
本发明实施例四公开一种视频转码系统,所述系统与实施例一和实施例二公开的视频转码方法相对应。
首先,相应于实施例一,参考图4,所述系统包括任务获取模块100、切片模块200、转码模块300和合片模块400。
任务获取模块100,用于获取当前目标视频类别中请求时间最早的转码任务,判断所述转码任务对应的扫描方式,并在发送所述转码任务后,继续获取下一个目标视频类别中请求时间最早的转码任务,并判断其对应的扫描方式;
其中,所述目标视频类别为在本轮视频转码过程中,预设的视频类别集合内未被访问的视频类别中转码优先级最高的视频类别,所述转码任务包括待转码的视频源文件以及对所述视频源文件进行转码所需的转码参数。
切片模块200,用于对接收的转码任务执行预设操作,所述预设操作具体为将所述转码任务中的视频源文件分割为预设时长的N个视频子文件,为每个所述视频子文件生成相应的描述信息;并在发送所述转码参数以及N个视频子文件及其所对应的描述信息后,对下一个转码任务进行所述预设操作,其中,所述N为大于1的自然数。
转码模块300,用于依据所述转码参数,对接收的所述N个视频子文件进行与所述扫描方式相对应的转码处理,得到N个转码子文件,并在发送所述N个转码子文件及其相应的所述描述信息后,对下一个转码任务进行所述转码处理。
其中,参考图5,转码模块300包括第一转码单元301和第二转码单元302。
第一转码单元301,用于在所述扫描方式为逐行扫描时,基于所述转码参数,采用M个转码子单元以并行处理方式对所述N个视频子文件进行转码,得到N个转码子文件;
第二转码单元302,用于在所述扫描方式为隔行扫描时,对所述N个视频子文件进行交织处理,并基于所述转码参数,采用M个转码子单元以并行处理方式对交织处理后的各视频子文件进行转码,得到N个转码子文件,所述M为大于1的自然数。
合片模块400,用于依据所述N个转码子文件相对应的所述描述信息,对所述N个转码子文件进行合片处理,得到所述视频源文件所对应的转码文件,并在上传所述转码文件后,对下一个转码任务进行合片处理。
相应于实施例二,参考图6,所述转码模块300还包括系统故障处理单元303,用于在所述转码子单元出现故障时,将故障转码子单元负责的视频子文件转码任务交由未出现故障的转码子单元进行转码处理。
对于本发明实施例四公开的视频转码系统而言,由于其与以上实施例一和实施例二公开的视频转码方法相对应,所以描述的比较简单,相关相似之处请参见实施例一和实施例二中视频转码方法部分的说明即可,此处不再详述。
综上所述,本发明具有如下优势:
1)现有系统由于支持多任务的串行处理,而在有多个运营商同时需要转码时,只能有一个运营商进行转码,从而导致其他运营商转码效率低下,针对此问题,本发明提供了多个运营商的概念,并实现了多运营商转码任务的并行处理,提高了运营商的转码效率;
2)现有系统转码进程被杀死(例如转码机器down掉),重新启动转码进程时,任务不能被恢复,从而导致整个转码任务失败,针对此问题,本发明建立了故障排除机制,将故障单元负责的转码任务收回并交由至其他正常单元进行;
3)针对现有系统因网络问题而会导致整个转码任务失败的问题,本发明建立任务重置机制,对未返回结果的转码单元进行任务重置,在其将此次任务结果返回后,才为其分配新的转码任务,从而,本发明保证了在各个环境下,转码都能正常进行;
4)现有系统运维人员需要更改各转码子单元的配置,部署起来比较繁琐,而本发明为每个转码子单元配置唯一ID,从而运维人员不需关心各转码子单元的配置,为运维人员的工作带来了便利。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种视频转码方法,其特征在于,包括:
获取当前目标视频类别中请求时间最早的转码任务,判断所述转码任务对应的扫描方式,并在发送所述转码任务后,继续获取下一个目标视频类别中请求时间最早的转码任务,并判断其对应的扫描方式;
其中,所述目标视频类别为在本轮视频转码过程中,预设的视频类别集合内未被访问的视频类别中转码优先级最高的视频类别,所述转码任务包括待转码的视频源文件以及对所述视频源文件进行转码所需的转码参数;
对接收的转码任务执行预设操作,所述预设操作具体为将所述转码任务中的视频源文件分割为预设时长的N个视频子文件,为每个所述视频子文件生成相应的描述信息;并在发送所述转码参数以及N个视频子文件及其所对应的描述信息后,对下一个转码任务进行所述预设操作,其中,所述N为大于1的自然数;
依据所述转码参数,对接收的所述N个视频子文件进行与所述扫描方式相对应的转码处理,得到N个转码子文件,并在发送所述N个转码子文件及其相应的所述描述信息后,对下一个转码任务进行所述转码处理;
依据所述N个转码子文件相对应的所述描述信息,对所述N个转码子文件进行合片处理,得到所述视频源文件所对应的转码文件,并在上传所述转码文件后,对下一个转码任务进行合片处理。
2.根据权利要求1所述的方法,其特征在于,所述视频类别具体为依据视频所属的运营商所划分的类别,同一运营商的视频被划分为同一类别。
3.根据权利要求1所述的方法,其特征在于,所述扫描方式包括逐行扫描和隔行扫描。
4.根据权利要求3所述的方法,其特征在于,所述依据所述转码参数对接收的所述N个视频子文件进行与所述扫描方式相对应的转码处理,得到N个转码子文件,包括:
在所述扫描方式为逐行扫描时,基于所述转码参数,采用M个转码子单元以并行处理方式对所述N个视频子文件进行转码,得到N个转码子文件;
在所述扫描方式为隔行扫描时,对所述N个视频子文件进行交织处理,并基于所述转码参数,采用M个转码子单元以并行处理方式对交织处理后的各视频子文件进行转码,得到N个转码子文件;
其中,所述M为大于1的自然数。
5.根据权利要求4所述的方法,其特征在于,还包括:
在所述转码子单元出现故障时,将故障转码子单元负责的视频子文件转码任务交由未出现故障的转码子单元进行转码处理。
6.根据权利要求1所述的方法,其特征在于,所述转码参数包括转码类型、分辨率和码率,其中,所述转码类型具体为h264转码或h265转码中的任意一种。
7.根据权利要求1所述的方法,其特征在于,所述视频子文件的描述信息包括所述视频子文件的时长、帧数以及开始时间、结束时间。
8.一种视频转码系统,其特征在于,包括:
任务获取模块,用于获取当前目标视频类别中请求时间最早的转码任务,判断所述转码任务对应的扫描方式,并在发送所述转码任务后,继续获取下一个目标视频类别中请求时间最早的转码任务,并判断其对应的扫描方式;
其中,所述目标视频类别为在本轮视频转码过程中,预设的视频类别集合内未被访问的视频类别中转码优先级最高的视频类别,所述转码任务包括待转码的视频源文件以及对所述视频源文件进行转码所需的转码参数;
切片模块,用于对接收的转码任务执行预设操作,所述预设操作具体为将所述转码任务中的视频源文件分割为预设时长的N个视频子文件,为每个所述视频子文件生成相应的描述信息;并在发送所述转码参数以及N个视频子文件及其所对应的描述信息后,对下一个转码任务进行所述预设操作,其中,所述N为大于1的自然数;
转码模块,用于依据所述转码参数,对接收的所述N个视频子文件进行与所述扫描方式相对应的转码处理,得到N个转码子文件,并在发送所述N个转码子文件及其相应的所述描述信息后,对下一个转码任务进行所述转码处理;
合片模块,用于依据所述N个转码子文件相对应的所述描述信息,对所述N个转码子文件进行合片处理,得到所述视频源文件所对应的转码文件,并在上传所述转码文件后,对下一个转码任务进行合片处理。
9.根据权利要求8所述的系统,其特征在于,所述转码模块包括:
第一转码单元,用于在所述扫描方式为逐行扫描时,基于所述转码参数,采用M个转码子单元以并行处理方式对所述N个视频子文件进行转码,得到N个转码子文件;
第二转码单元,用于在所述扫描方式为隔行扫描时,对所述N个视频子文件进行交织处理,并基于所述转码参数,采用M个转码子单元以并行处理方式对交织处理后的各视频子文件进行转码,得到N个转码子文件;
其中,所述M为大于1的自然数。
10.根据权利要求9所述的系统,其特征在于,所述转码模块还包括:
故障处理单元,用于在所述转码子单元出现故障时,将故障转码子单元负责的视频子文件转码任务交由未出现故障的转码子单元进行转码处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410584834.1A CN105578205A (zh) | 2014-10-27 | 2014-10-27 | 一种视频转码方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410584834.1A CN105578205A (zh) | 2014-10-27 | 2014-10-27 | 一种视频转码方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105578205A true CN105578205A (zh) | 2016-05-11 |
Family
ID=55887800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410584834.1A Pending CN105578205A (zh) | 2014-10-27 | 2014-10-27 | 一种视频转码方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105578205A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474827A (zh) * | 2018-12-03 | 2019-03-15 | 四川巧夺天工信息安全智能设备有限公司 | 监控视频快速转码的方法 |
CN111246291A (zh) * | 2018-11-29 | 2020-06-05 | 浙江宇视科技有限公司 | 一种视频转码方法、装置及电子设备 |
US11611784B2 (en) | 2019-08-02 | 2023-03-21 | Dao Lab Limited | System and method for transferring large video files with reduced turnaround time |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964894A (zh) * | 2010-08-24 | 2011-02-02 | 中国科学院深圳先进技术研究院 | 一种视频分片并行转码方法和系统 |
CN102073546A (zh) * | 2010-12-13 | 2011-05-25 | 北京航空航天大学 | 一种云计算环境中分布式计算模式下的任务动态调度方法 |
CN103152613A (zh) * | 2011-12-06 | 2013-06-12 | 上海文广互动电视有限公司 | 基于视频图像组分割的分布式转码任务调度系统及方法 |
CN103246550A (zh) * | 2012-02-09 | 2013-08-14 | 深圳市腾讯计算机系统有限公司 | 一种基于容量的多任务调度方法及系统 |
CN103458270A (zh) * | 2013-09-09 | 2013-12-18 | 深圳市融创天下科技股份有限公司 | 视频转码系统和方法 |
US20140115050A1 (en) * | 2011-07-11 | 2014-04-24 | Tencent Technology (Shenzhen) Company Limited | Method And System For Transcoding |
-
2014
- 2014-10-27 CN CN201410584834.1A patent/CN105578205A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964894A (zh) * | 2010-08-24 | 2011-02-02 | 中国科学院深圳先进技术研究院 | 一种视频分片并行转码方法和系统 |
CN102073546A (zh) * | 2010-12-13 | 2011-05-25 | 北京航空航天大学 | 一种云计算环境中分布式计算模式下的任务动态调度方法 |
US20140115050A1 (en) * | 2011-07-11 | 2014-04-24 | Tencent Technology (Shenzhen) Company Limited | Method And System For Transcoding |
CN103152613A (zh) * | 2011-12-06 | 2013-06-12 | 上海文广互动电视有限公司 | 基于视频图像组分割的分布式转码任务调度系统及方法 |
CN103246550A (zh) * | 2012-02-09 | 2013-08-14 | 深圳市腾讯计算机系统有限公司 | 一种基于容量的多任务调度方法及系统 |
CN103458270A (zh) * | 2013-09-09 | 2013-12-18 | 深圳市融创天下科技股份有限公司 | 视频转码系统和方法 |
Non-Patent Citations (2)
Title |
---|
李冬梅,黄樱,胡荣: "《操作系统》", 31 August 2013, 江苏大学出版社 * |
黄宜华,苗凯翔: "《深入理解大数据:大数据处理与编程实践》", 31 July 2014 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111246291A (zh) * | 2018-11-29 | 2020-06-05 | 浙江宇视科技有限公司 | 一种视频转码方法、装置及电子设备 |
CN111246291B (zh) * | 2018-11-29 | 2022-03-11 | 浙江宇视科技有限公司 | 一种视频转码方法、装置及电子设备 |
CN109474827A (zh) * | 2018-12-03 | 2019-03-15 | 四川巧夺天工信息安全智能设备有限公司 | 监控视频快速转码的方法 |
CN109474827B (zh) * | 2018-12-03 | 2022-11-29 | 四川巧夺天工信息安全智能设备有限公司 | 监控视频快速转码的方法 |
US11611784B2 (en) | 2019-08-02 | 2023-03-21 | Dao Lab Limited | System and method for transferring large video files with reduced turnaround time |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10631024B2 (en) | Intelligent video streaming system | |
US9141491B2 (en) | Highly available server system based on cloud computing | |
US9077852B2 (en) | Video conference system | |
CN103053146B (zh) | 数据迁移方法和设备 | |
US8909764B2 (en) | Data communication method and apparatus | |
CN102202061B (zh) | 客户机-服务器会话并行化 | |
JP2014526763A5 (zh) | ||
CN102882829A (zh) | 一种转码方法及系统 | |
CN104506950A (zh) | 网络流媒体播放中的多线程下载方法、装置及下载设备 | |
CN103617062A (zh) | 一种柔性的渲染集群动态部署系统与方法 | |
CN108134814B (zh) | 一种业务数据处理方法及装置 | |
US20100049864A1 (en) | Multimedia broadcast system and method | |
US11240123B2 (en) | Dynamic adaptive network | |
CN113630438B (zh) | 流处理任务调度方法和分布式流处理系统 | |
CN105578205A (zh) | 一种视频转码方法和系统 | |
CN102098270A (zh) | 实现流媒体服务器负载均衡的系统及其方法 | |
WO2014173366A2 (zh) | 一种实现电信能力群发的方法、装置及系统 | |
CN101388846A (zh) | 用于传输数据的方法和装置 | |
WO2017096839A1 (zh) | 流媒体文件切片的方法、装置及系统 | |
CN114143569B (zh) | 一种网页录制和直播方法及系统 | |
CN111093099B (zh) | 一种流媒体服务调度方法、装置及系统 | |
CN104184685A (zh) | 数据中心资源分配方法、装置及系统 | |
CN103974201B (zh) | 面向移动终端的多媒体数据直播系统和方法 | |
CN114745564B (zh) | 服务调度方法及装置 | |
CN115941907A (zh) | 一种rtp数据包发送方法、系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20200228 |