一种多分辨率输出的分布式文件转码方法及装置

文档序号:1470473 发布日期:2020-02-21 浏览:28次 >En<

阅读说明:本技术 一种多分辨率输出的分布式文件转码方法及装置 (Multi-resolution output distributed file transcoding method and device ) 是由 唐杰 张加瑞 李庆瑜 于 2019-10-24 设计创作,主要内容包括:本发明公开了一种多分辨率输出的分布式文件转码方法及装置,该方法包括如下步骤:视频切片模块将视频文件切分成多个第一视频切片,并将所有所述第一视频切片发送至多个第一编码模块;所有所述第一编码模块对其接收到的第一视频切片分别进行一次编码,生成第二视频切片,并将所有所述第二视频切片发送至多个第二编码模块;所述第二编码模块分别将每个所述第二视频切片转码为多个具有不同分辨率的第三视频切片,并将所有第三视频切片发送至多个切片合并模块块;所有所述切片合并模块将具有相同分辨率的所有第三视频切片进行合并输出。本发明将多个进程分配到多台转码服务器上,可以降低单个转码进程的资源需求,增加单个转码服务器的资源利用率。(The invention discloses a distributed file transcoding method and a device with multi-resolution output, wherein the method comprises the following steps: the video slicing module divides a video file into a plurality of first video slices and sends all the first video slices to a plurality of first coding modules; all the first coding modules respectively carry out primary coding on the received first video slices to generate second video slices, and all the second video slices are sent to a plurality of second coding modules; the second coding module respectively transcodes each second video slice into a plurality of third video slices with different resolutions and sends all the third video slices to a plurality of slice merging module blocks; and all the slice merging modules merge and output all the third video slices with the same resolution. The invention distributes a plurality of processes to a plurality of transcoding servers, can reduce the resource requirement of a single transcoding process and increase the resource utilization rate of a single transcoding server.)

一种多分辨率输出的分布式文件转码方法及装置

技术领域

本申请涉及视频数据处理技术领域,特别涉及一种多分辨率输出的分布式文件转码方法及装置。

背景技术

随着点播视频需求量的日益增加,例如电影、短视频等,提升批量视频的转码能力也是十分迫切的问题。分布式文件转码是一种批量处理视频文件转码应用中使用较为广泛的方式。

分布式文件转码系统的工作流程包括:(1)通过视频文件打点,获取所有源视频文件进行切分的开始时间和时长信息;(2)将转码任务分配到多台转码服务器上,并分配一定的转码资源,单台转码服务器按照其总资源可以运行多个转码任务;(3)每个转码任务根据获取的时间信息,将视频文件进行转码切片;(4)最后将所有转码后的切片文件进行合并处理,得到需要的转码文件。

分布式文件转码确实提升了整体的转码速度,但是也存在一些问题:(1)对于多分辨率、多码率的转码需求,使用单进程进行处理,不仅需要分配更多的转码资源,同时也可能降低切片的转码速度,不利于单个转码服务器资源的充分利用和整体转码速度的提升;(2)在需要对视频文件进行多进程转码时,每个进程都需要对源文件进行打点处理,不能做到对打点信息的共享;(3)在一进多出需要进行二次编码处理时,需要同时获取所有的输出的一次编码信息,极大地降低了整体转码速度。

因此,针对目前点播视频需求日益增大的趋势,提升整体转码速度和转码资源利用率的需要,迫切提出一种分布式文件转码系统的优化方案。

发明内容

本发明的目的在于提供一种提升整体转码速度和转码资源利用率的分布式文件转码方法及装置。

为了解决上述问题,本发明提供了一种多分辨率输出的分布式文件转码方法,包括如下步骤:S1:视频切片模块将视频文件切分成多个第一视频切片,并将所有所述第一视频切片发送至多个第一编码模块;S2:所有所述第一编码模块对其接收到的第一视频切片分别进行一次编码,生成第二视频切片,并将所有所述第二视频切片发送至多个第二编码模块;S3:所述第二编码模块分别将每个所述第二视频切片转码为多个具有不同分辨率的第三视频切片,并将所有第三视频切片发送至多个切片合并模块,其中,具有相同分辨率的所有第三视频切片发送至同一切片合并模块;S4:所有所述切片合并模块将具有相同分辨率的所有第三视频切片进行合并输出。

较佳地,在所述步骤S1中,所述视频切片模块将视频文件切分成多个第一视频切片后,还将切片位置打点信息存入REDIS数据缓存,所述切片位置打点信息包括视频文件进行切分的开始时间和时长信息。

较佳地,在所述步骤S2中,所有所述第一编码模块对其接收到的第一视频切片分别进行一次编码时,均从所述REDIS数据缓存获取切片位置打点信息。

较佳地,所述第二编码模块分别将每个所述第二视频切片转码为3个具有不同分辨率的第三视频切片。

本发明还提供了一种多分辨率输出的分布式文件转码装置,包括视频切片模块、多个第一编码模块、多个第二编码模块和多个切片合并模块,其中,所述视频切片模块将视频文件切分成多个第一视频切片,并将所有所述第一视频切片发送至多个所述第一编码模块;所述第一编码模块对其接收到的第一视频切片分别进行一次编码,生成第二视频切片,并将所有所述第二视频切片发送至多个所述第二编码模块;所述第二编码模块分别将每个所述第二视频切片转码为多个具有不同分辨率的第三视频切片,并将所有第三视频切片发送至多个切片合并模块,其中,具有相同分辨率的所有第三视频切片发送至同一切片合并模块;所有所述切片合并模块将具有相同分辨率的所有第三视频切片进行合并输出。

较佳地,还包括REDIS数据缓存,用于换成切片位置打点信息,其中,所述切片位置打点信息包括视频文件进行切分的开始时间和时长信息。

较佳地,所述第一编码模块对其接收到的第一视频切片分别进行一次编码时,均从所述REDIS数据缓存获取切片位置打点信息。

较佳地,所述视频切片模块、第一编码模块、第二编码模块和/或切片合并模块为Kubernetes系统控制产生的POD。

与现有技术相比,本发明存在以下技术效果:

1、本发明实施例针对多分辨率、多码率转码需求,将每个切片的单一转码进程拆分为多个转码进程同时进行转码,按照单个转码进程需要的资源,将多个进程分配到多台转码服务器上,可以降低单个转码进程的资源需求,增加单个转码服务器的资源利用率。

2、本发明实施例采用打点信息共享机制,针对多进程转码时,获取切片文件开始切片时间和切片时长的打点信息后,避免同一个源文件相关的多个转码进程再进行打点处理,可以同时获取到所需的打点信息。

3、本发明实施例快速获取一次编码信息和一次编码信息的共享。主要针对多分辨率输出时,通过低分辨率输出的编码参数,快速获取一次编码信息,再通过高分辨率一次编码参数和低分辨率一次编码参数的系数关系,将低分辨率的一次编码信息用于高分率的二次编码。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图中:

图1为本发明实施例多分辨率输出的分布式文件转码装置结构示意图;

图2为本发明实施例多分辨率输出的分布式文件转码方法流程示意图;

图3为本发明实施例多分辨率输出的分布式文件转码过程示意图。

具体实施方式

以下将结合附图对本发明提供的一种多分辨率输出的分布式文件转码方法及装置进行详细的描述,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例,本领域技术人员在不改变本发明精神和内容的范围内,能够对其进行修改和润色。

请参考图1,本发明提供了一种多分辨率输出的分布式文件转码装置,包括视频切片模块100、多个第一编码模块200、多个第二编码模块300和多个切片合并模块400,其中,

所述视频切片模块100将视频文件切分成多个第一视频切片,并将所有所述第一视频切片发送至多个所述第一编码模块200;

所述第一编码模块200对其接收到的第一视频切片分别进行一次编码,生成第二视频切片,并将所有所述第二视频切片发送至多个所述第二编码模块300;

所述第二编码模块300分别将每个所述第二视频切片转码为多个具有不同分辨率的第三视频切片,并将所有第三视频切片发送至多个切片合并模块400,其中,具有相同分辨率的所有第三视频切片发送至同一切片合并模块400;

所有所述切片合并模块400将具有相同分辨率的所有第三视频切片进行合并输出。

作为一种优选实施例,还包括REDIS数据缓存500,用于换成切片位置打点信息,其中,所述切片位置打点信息包括视频文件进行切分的开始时间和时长信息。

作为一种优选实施例,所述第一编码模块对其接收到的第一视频切片分别进行一次编码时,均从所述REDIS数据缓存获取切片位置打点信息。

作为一种优选实施例,所述视频切片模块100、第一编码模块200、第二编码模块300和/或切片合并模块400为Kubernetes系统控制产生的POD节点服务器。

可以理解地,本实施例所给出的第一编码模块200、第二编码模块300和切片合并模块400的数量及其连接关系仅为一个特定实施例,本发明对于第一编码模块200、第二编码模块300和切片合并模块400的数量不作限制,且第一编码模块200、第二编码模块300和切片合并模块400的数量不存在关联性,第一编码模块200和第二编码模块300、第二编码模块300和切片合并模块400间的连接关系(数据传送)也不存在一一对应的限制,根据实际应用的需要,每个第一编码模块200可以与任意一个或多个第二编码模块300连接,第二编码模块300可以与任意一个或多个切片合并模块400连接。

请参考图2和图3,本发明提供了一种多分辨率输出的分布式文件转码方法,包括如下步骤:

S1:视频切片模块将视频文件切分成多个第一视频切片,并将所有所述第一视频切片发送至多个第一编码模块;

本实施例中,所述视频切片模块将视频文件切分成多个第一视频切片后,还将切片位置打点信息存入REDIS数据缓存,所述切片位置打点信息包括视频文件进行切分的开始时间和时长信息。

具体地,视频切片模块进行视频切片位置打点,并将包括视频文件进行切分的开始时间和时长信息的切片位置打点信息存入REDIS数据缓存,实现切片位置打点信息的共享,在后续多进程转码时,均可以从REDIS数据缓存获取切片文件开始切片时间和切片时长的打点信息后,避免同一个源文件相关的多个转码进程再分别进行打点处理。

S2:所有所述第一编码模块对其接收到的第一视频切片分别进行一次编码,生成第二视频切片,并将所有所述第二视频切片发送至多个第二编码模块;

一次编码完成后生产的第二视频切片为第分辨率视频切片,第二视频切片放入节点服务器中进行存储备用。

S3:所述第二编码模块分别将每个所述第二视频切片转码为多个具有不同分辨率的第三视频切片,并将所有第三视频切片发送至多个切片合并模块,其中,具有相同分辨率的所有第三视频切片发送至同一切片合并模块;

针对多分辨率输出时,第二编码模块通过低分辨率输出(第二视频切片)的编码参数,快速获取一次编码信息,再通过高分辨率一次编码参数和低分辨率一次编码参数的系数关系,将低分辨率的一次编码信息用于高分率的二次编码,生成第三视频切片。

S4:所有所述切片合并模块将具有相同分辨率的所有第三视频切片进行合并输出。

作为一种优选实施例,在所述步骤S2中,所有所述第一编码模块对其接收到的第一视频切片分别进行一次编码时,均从所述REDIS数据缓存获取切片位置打点信息。

作为一种优选实施例,所述第二编码模块分别将每个所述第二视频切片转码为3个具有不同分辨率的第三视频切片。

以上公开的仅为本申请的一个具体实施例,但本申请并非局限于此,任何本领域的技术人员能思之的变化,都应落在本申请的保护范围内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种视频帧预测方法、装置及终端设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类