掌桥专利:专业的专利平台
掌桥专利
首页

基于MapReduce的影音转码方法

文献发布时间:2023-06-19 11:21:00


基于MapReduce的影音转码方法

技术领域

本申请涉及视频上传技术领域,尤其涉及一种基于MapReduce的影音转码方法。

背景技术

现有技术中人们通过电脑、手机、平板等来观看视频,且观看视频的内容多样化。我们自己也可以上传视频到网站中,让更多的朋友去观看。

在实现现有技术的过程中,发明人发现:

在将录制好的视频直接上传到网络中时,上传需要花费很长的时间。而通过现有技术进行转码上传,转码也会消耗很长的时间。特别是现在,上传视频还需要保证视频的高清效果,这就导致了视频上传需要消耗更多的时间。

因此,需要提供一种减短视频转码时间加速视频上传的技术方案。

发明内容

本申请实施例提供一种基于MapReduce的影音转码方法。用以解决视频因格式问题导致网络上传消耗时间长的技术问题。

一种基于MapReduce的影音转码方法,包括:

在第一map作业包含的第一map任务中,将待处理的影音文件按照预设文件大小值切分,得到包含若干子文件的第一中间影音文件;

对所述第一中间影音文件中的若干子文件进行排序,得到包含若干子文件排序后的第一影音文件;

若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件;

在第一reduce作业包含的第一reduce任务中,若干子文件第二中间影音文件合并得到第二影音文件。

进一步的,在第一map作业包含的第一map任务中,将待处理的影音文件按照预设文件大小值切分,得到包含若干子文件的第一中间影音文件,具体包括:待处理的影音文件格式至少包括CD、MPEG-4、AVI、ASF、WMV其中之一。

进一步的,在第一map作业包含的第一map任务中,将待处理的影音文件按照预设文件大小值切分,得到包含若干子文件的第一中间影音文件,具体包括:预设文件大小值可调整。

进一步的,对所述第一中间影音文件中的若干子文件进行排序,得到包含若干子文件排序后的第一影音文件,具体包括:若干子文件按照一定设置单一排序或组合排序。

进一步的,若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件;其中,若干子文件第二中间影音文件格式至少包括MP4、WMA、MPEG其中之一。

进一步的,在将若干子文件排序后的第一影音文件通过若干转码服务器进行转码前,具体还包括:转码调度服务器将若干子文件排序后的第一影音文件调度至若干转码服务器。

进一步的,转码调度服务器将若干子文件排序后的第一影音文件调度至若干转码服务器,具体包括:转码调度服务器调度若干子文件排序后的第一影音文件基于分布式架构来实现。

进一步的,所述若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件,具体包括:转码服务器转码采用CUDA和专用硬件或者其他设备完成转码过程。

进一步的,若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件,具体还包括:基于rest架构模式,转码服务器设置有至少一种Web API接口。

一种基于MapReduce的影音转码系统,包括:

切分模块,在第一map作业包含的第一map任务中,将待处理的影音文件按照预设文件大小值切分,得到包含若干子文件的第一中间影音文件;

排序模块,对所述第一中间影音文件中的若干子文件进行排序,得到包含若干子文件排序后的第一影音文件;

转码模块,若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件;

合并模块,在第一reduce作业包含的第一reduce任务中,若干子文件第二中间影音文件合并得到第二影音文件。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的基于MapReduce的影音转码方法流程图;

图2为本申请实施例提供的基于MapReduce的影音转码系统的模块示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请基于MapReduce来实现影音的转码。以现有技术中影音转码为例,在互联网的时代,大量视频网站兴起,视频的内容也丰富多样。显然,制作视频的人群不再是单一性的群体,而是我们生活中所能接触到的,从事各种不同于与制作、拍摄相关行业的各行业人群。对于不同行业或者说爱好记录生活的人来讲,拍摄和制作视频是不仅能够分享给朋友、或者亲人,还能留住美好的记忆。但是,当将拍摄好的视频上传至网络常常会因为视频文件的大小,往往会消耗很长的一部分时间来上传。目前,随着转码技术的出现,使得拍摄的视频能够转化为易上传至网络的格式,但是,视频转码也会消耗大量时间。如何通过MapReduce实现视频转码技术的进一步提高,是本申请的技术方案旨在解决的问题。

请参照图1,为本申请实施例提供的基于MapReduce的影音转码方法,具体包括以下步骤:

S101:在第一map作业包含的第一map任务中,将待处理的影音文件按照预设文件大小值切分,得到包含若干子文件的第一中间影音文件。

本实施例中,本方法可采用Hadoop系统,并利用分布式文件系统HDFS来提取数据和存储数据。其中,待处理的影音文件在本实施例中指拍摄和制作视频所上传的视频文件中的某一部视频。视频由上传视频的作者实时上传的视频或者非实时上传的视频,然后通过分布式文件系统HDFS来提取数据。

可以理解的是,待处理的影音文件可以是上传视频的作者实时提交的视频或者非实时提交的视频。并通过本申请的转码方法实时将转码后的影音文件发送给视频的作者。

进一步的,在本申请提供的具体实施方式中,在第一map作业包含的第一map任务中,将待处理的影音文件按照预设文件大小值切分,得到包含若干子文件的第一中间影音文件,具体包括:待处理的影音文件格式至少包括CD、MPEG-4、AVI、ASF、WMV其中之一。

具体的,待处理的影音文件在提交给本申请方法实施转码前,待处理的影音文件的格式至少包括CD、MPEG-4、AVI、ASF、WMV其中之一。由于影音文件在不同设备上存储的影音文件格式不同,所以待处理的影音文件格式也不同。本申请所提供的方法对于这些不同设备上的不同格式均可以用来转码。可以理解的是,不同用户所提交的视频是通过不同的设备提交的,所以不同设备录制或者存储的视频有多种格式。而对于不同设备所提交的多种格式的影音文件,在本申请中对于不同格式的影音文件均可以对其处理。

进一步的,在本申请提供的具体实施方式中,在第一map作业包含的第一map任务中,将待处理的影音文件按照预设文件大小值切分,得到包含若干子文件的第一中间影音文件,具体包括:预设文件大小值可调整。

具体的,待处理的影音文件按照预设文件大小值切分,得到包含若干子文件的第一中间影音文件。在第一map作业包含的第一map任务中,map函数对待处理的影音文件按预设文件大小值来切分,切分默认为64M的数据或者128M的数据。与此同时,map函数切分的默认值也可以自定义其具体的值,比如切分的默认值修改为50M、100M。可以理解的是,此处所述的切分默认值的具体数值,显然不构成对本申请保护范围的具体限制。

应当指出的是,map函数对待处理的影音文件按预设文件大小值来切分,预设文件大小值默认为64M、128M的数据或者为自定义设定的数值。在对待处理的影音文件按默认map函数切分时,对于不满64M或128M的影音文件,通过对不满64M或128M切分视频段文件名字或文件封面特殊标明或者选择在不满64M或128M影音文件中添加纯色屏幕时间段来满足64M或128M。对于自定义设置的值在切分后不满设定值时,同样可采用上述方法实施。

可以理解的是,预设文件大小设置为可调整的值,有利于在确定待处理影音文件的大小后,根据待处理影音文件的大小进行合理的切分。在本申请提供的一种优选实施例中,预设文件大小设置为可调整的值通过在map函数中设置另外一种均值函数,通过均值函数自动对待处理的影音文件设定值。例如,当待处理的影音文件为100M以内时,通过均值函数将其切分为N段,即每N段数据文件小于50M。当待处理的影音文件大于100M小于1000M以内时,通过均值函数将其切分为N段,每N段中的数据文件小于50M-80M。

S102:对所述第一中间影音文件中的若干子文件进行排序,得到包含若干子文件排序后的第一影音文件。

进一步的,在本申请提供的具体实施方式中,对所述第一中间影音文件中的若干子文件进行排序,得到包含若干子文件排序后的第一影音文件,具体包括:若干子文件按照一定设置单一排序或组合排序。

具体的,在将待处理的影音文件切分后,得到若干第一中间影音文件。若干第一中间影音文件的顺序可由待处理的影音文件时间段的先后得出。在具有顺序的影音视频文件后,还可以根据视频文件的具体个数对视频文件进行进一步的组合排序。

应当指出的是,第一中间影音文件的若干子文件可以按待处理的影音文件的时间先后进行排序。第一中间影音文件的若干子文件根据影音文件的时间先后进行排序后,还可以对其进行组合排序的方式。通过若干子文件按照一定设置单一排序或组合排序,使得若干子文件的处理方式多样化。

可以理解的是,第一中间影音文件的若干子文件设置单一排序或者组合排序的方式,其可根据待处理影音文件时间的先后进行排序,也可在此基础上进行进一步的排序。所述的进一步的排序可通过对待处理影音文件的时间排序进行两个或者三个打包为一个进行对若干子文件的第一中间影音文件排序,从而生成第一影音文件。可以理解的是,第一影音文件可以为若干子文件排序后的第一中间影音文件,也可以是对若干子文件排序后的第一中间影音文件进行进一步的排序。通过若干子文件按照一定设置单一排序或组合排序,使得第一影音文件更具有多样性。相应地,对第一文件的处理也具有多种方式。

S103:若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件。

进一步的,在本申请提供的具体实施方式中,若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件;其中,若干子文件第二中间影音文件格式至少包括MP4、WMA、MPEG其中之一。

具体的,若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件。若干子文件第二中间影音文件可以有多种格式。即通过若干转码服务器可将原有影音文件的格式转化为另一种影音文件的格式。

应当指出的是,在本申请提供的一种优选实施方式中,对于转码后的第二中间影音文件的格式至少包括MP4、WMA、MPEG其中之一。若干子文件第二中间影音文件的格式应尽量满足上传时间快的要求。因此,在若干转码服务器能够转码为多种格式的前提下,转码服务器可转码为现有技术领域中国际标准的影音文件。本申请实施例中,选择MP4文件格式为转码后的格式。

可以理解的是,若干子文件排序后的第一影音文件通过若干转码服务器进行转码,转码并非只能转为一种格式,而是选择能够在转码后上传时间更快的格式。而现有技术中MP4在各种格式中上传的时间相比而言较快。所以可将若干转码服务器在进行转码后的格式设定为MP4格式,以加速视频上传的时间。

进一步的,在本申请提供的具体实施方式中,在将若干子文件排序后的第一影音文件通过若干转码服务器进行转码前,具体还包括:转码调度服务器将若干子文件排序后的第一影音文件调度至若干转码服务器。

具体的,若干子文件排序后的第一影音文件通过若干转码服务器进行转码需将若干子文件排序后的第一影音文件发送至若干转码服务器。若干子文件排序后的第一影音文件的发送通过转码调度服务器对其调度来实现。

可以理解的是,转码调度服务器调度若干子文件排序后的第一影音文件至若干转码服务器,使得若干子文件排序后的第一影音文件在调度至若干转码服务器后,转码服务器才能执行对若干子文件排序后的第一影音文件中的若干个影音文件转码。通过若干转码服务器同时对若干子文件排序后的第一影音文件进行转码,进而加速待处理影音文件的转码时间。

进一步的,在本申请提供的具体实施方式中,转码调度服务器将若干子文件排序后的第一影音文件调度至若干转码服务器,具体包括:转码调度服务器调度若干子文件排序后的第一影音文件基于分布式架构来实现。

具体的,转码调度服务器调度若干子文件排序后的第一影音文件基于分布式架构来实现,分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算比起其它算法具有以下几个优点:稀有资源可以共享;通过分布式计算可以在多台计算机上平衡计算负载;可以把程序放在最适合运行它的计算机上;其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。

可以理解的是,转码调度服务器采用分布式架构即分布式计算计算可以将若干子文件排序后的第一影音文件平衡分布在多台转码服务器上。即若干子文件排序后的第一影音文件均衡分布至若干转码服务器。

进一步的,在本申请提供的具体实施方式中,若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件;其中,转码服务器转码采用CUDA和专用硬件或者其他设备完成转码的过程。

具体的,转码服务器转码采用CUDA和专用硬件或者其他设备完成转码的过程。即转码服务器在可自行转码的前提下,同时采用CUDA和专用硬件或者其他设备来对分配到的若干子文件中的某个文件进行加速转码。

应当指出的是,转码服务器采用其他设备进行加速转码还可以通过其他的加速设备插入多个扩展插槽来实现。

可以理解的是,通过采用采用CUDA和专用硬件或者其他的加速设备插入多个扩展插槽,使得转码服务器的转码质量和转码效率能够进一步提升。

进一步的,在本申请提供的具体实施方式中,所述若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件,具体还包括:基于rest架构模式,转码服务器设置有至少一种Web API接口。

具体的,转码服务器基于rest架构模式设置有至少一种Web API接口,便于与第三方应用系统的整合集成。

应当指出的是,rest架构模式即表述性状态传递,是一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML以及HTML(这些现有的广泛流行的协议和标准。

REST定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的Web服务,包括使用不同语言编写的客户端如何通过HTTP处理和传输资源状态。如何考虑使用它的Web服务的数量,REST近年来已经成为最主要的Web服务设计模式。事实上,REST对Web的影响非常大,由于其使用相当方便,已经普遍地取代了基于SOAP和WSDL的接口设计。

可以理解的是,转码服务器基于rest架构模式设置有至少一种Web API接口,使得转码服务器可以通过至少一种Web API接口,来与其他的应用系统集第三方应用系统整合集成。

S104:在第一reduce作业包含的第一reduce任务中,若干子文件第二中间影音文件合并得到第二影音文件。

具体的,若干子文件第二中间影音文件合并得到第二影音文件,第二影音文件即最终合并后的电影文件。

应当指出的是,在将若干子文件第二中间影音文件合并后,将得到的第二影音文件提交到web server中,用户通过web server下载、点播转码后的文件。

应当理解的是,第二影音文件即为最终转码后的文件,文件转码完成后即完成了本申请实施例所述的基于mapreduce的影音转码方法。后续的将最终转码完成的文件提交到web server、方便用户下载或者点播为本申请实施例在影音转码后所提供的一种方便用户获得转码文件的方式。可以理解的是,此处所述用户获得转码文件的方式,显然不构成对本申请保护范围的限制。

请参照图2,为本申请实施例提供的基于MapReduce的影音转码系统,具体包括以下步骤:

切分模块101,在第一map作业包含的第一map任务中,将待处理的影音文件按照预设文件大小值切分,得到包含若干子文件的第一中间影音文件;

排序模块102,对所述第一中间影音文件中的若干子文件进行排序,得到包含若干子文件排序后的第一影音文件;

转码模块103,若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件;

合并模块104,在第一reduce作业包含的第一reduce任务中,若干子文件第二中间影音文件合并得到第二影音文件。

在本申请提供的一种具体实施例中,用户将待处理的影音文件提交到基于mapreduce的影音转码系统;即用户将需要转码的视频提交到jobtracker。此处所述用户所提交的视频格式至少可以包括CD、MPEG-4、AVI、ASF、WMV其中之一。

影音转码系统通过切分模块101,将待处理的影音文件按照预设文件大小值切分,得到包含若干子文件的第一中间影音文件。待处理的影音文件按照预设文件大小值切分,此处的预设文件大小值可以按照默认切分的方式切分,也可以自定义设置预设文件的大小值。

排序模块102通过对所述第一中间影音文件中的若干子文件进行排序,得到包含若干子文件排序后的第一影音文件。切分后对若干子文件第一中间影音文件进行排序,得到排序后的第一影音文件。此处所述的排序方式可以按照一定设置进行单一排序或组合排序。

转码模块103将若干子文件排序后的第一影音文件通过若干转码服务器进行转码,得到包含若干子文件第二中间影音文件。转码模块对若干子文件排序后的第一影音文件进行转码即Maptask从jobtracker中分配的排序后的切分文件进行转码。在本申请所提供的一种实施例中,此处所述的转码优先转化为MP4的文件格式。

合并模块104将在第一reduce作业包含的第一reduce任务中,若干子文件第二中间影音文件合并得到第二影音文件。ReduceTask将转码后MP4格式的文件进行合并。生成第二影音文件,即最终生成的影音文件。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 基于MapReduce的影音转码方法
  • 基于机器学习的视频转码方法及其转码器
技术分类

06120112895670