CN112423024A - 一种视频转码方法、装置、计算机设备和存储介质 - Google Patents

一种视频转码方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112423024A
CN112423024A CN202011293404.6A CN202011293404A CN112423024A CN 112423024 A CN112423024 A CN 112423024A CN 202011293404 A CN202011293404 A CN 202011293404A CN 112423024 A CN112423024 A CN 112423024A
Authority
CN
China
Prior art keywords
transcoded
video
transcoding
sub
videos
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
Application number
CN202011293404.6A
Other languages
English (en)
Inventor
林健
郑涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Lexuebang Network Technology Co ltd
Original Assignee
Beijing Lexuebang Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Lexuebang Network Technology Co ltd filed Critical Beijing Lexuebang Network Technology Co ltd
Priority to CN202011293404.6A priority Critical patent/CN112423024A/zh
Publication of CN112423024A publication Critical patent/CN112423024A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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/234309Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供了一种视频转码方法、装置、计算机设备和存储介质,其中,该方法包括:获取待转码任务,待转码任务包括待转码视频和待转码视频的属性信息;根据属性信息,若确定待转码视频满足切分条件,则将待转码视频切分为至少两个待转码子视频;对切分得到的至少两个待转码子视频进行并行转码操作。本公开实施例在大量转码任务同时迸发的情况下,通过对较大视频数据量的待转码任务进行切分处理的方式,不仅缩短了待转码任务的处理时间,还减少了后续待处理的待转码任务的等待时间,提高了视频转码的效率。

Description

一种视频转码方法、装置、计算机设备和存储介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种视频转码方法、装置、计算机设备和存储介质。
背景技术
随着在线教育的快速发展,学生可以通过观看在线视频的方式学习,但是,在网络授课的高峰期,同一时间将产生大量对在线视频进行转码的需求,因此需要不断更新的转码技术来提高转码的效率。
目前,常用的视频转码方法是向云服务提供商申请ESC(Elastic ComputeService)服务器,将需要转码的视频文件上传至云服务商提供的ESC服务器,之后调用相关的API(Application Programming Interface)接口启动ESC服务器对视频的转码操作。
但是,在视频转码的高峰期,当存在较大的待转码视频时,利用上述视频转码方法执行转码操作,需要等到该较大的待转码视频转码完成后,才能对其他待转码视频进行转码,增加了视频转码时间,降低了视频转码效率。
发明内容
本公开实施例至少提供一种视频转码方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种视频转码方法,包括:
获取待转码任务,所述待转码任务包括待转码视频和所述待转码视频的属性信息;
根据所述属性信息,若确定所述待转码视频满足切分条件,则将所述待转码视频切分为至少两个待转码子视频;
对切分得到的所述至少两个待转码子视频进行并行转码操作。
在一种可能的实施方式中,所述获取待转码任务,包括:
从任务信息存储队列获取所述待转码任务。
在一种可能的实施方式中,根据所述属性信息,确定所述待转码视频满足切分条件,包括:
基于所述属性信息,确定所述待转码视频的视频数据量;
确定所述视频数据量大于切分阈值。
在一种可能的实施方式中,所述属性信息包括以下至少一项:所述待转码视频的体积;所述待转码视频的时长;
所述切分阈值包括以下至少一项:预设切分体积;预设切分时长。
在一种可能的实施方式中,所述对切分得到的所述至少两个待转码子视频进行并行转码操作,包括:
采用至少两个转码服务器,对所述至少两个待转码子视频进行并行转码操作;其中,转码服务器的数量与待转码子视频的数量一致、且一一对应。
在一种可能的实施方式中,在将所述待转码视频切分为至少两个待转码子视频之后,所述方法还包括:
为所述至少两个待转码子视频添加子视频标识符。
对切分得到的所述至少两个待转码子视频进行并行转码操作之后,所述方法还包括:
根据子视频标识符,将并行转码操作得到的至少两个目标子视频进行拼接,得到目标转码视频。
第二方面,本公开实施例还提供一种视频转码装置,包括:
获取模块,用于获取待转码任务,所述待转码任务包括待转码视频和所述待转码视频的属性信息;
切分模块,用于根据所述属性信息,若确定所述待转码视频满足切分条件,则将所述待转码视频切分为至少两个待转码子视频;
转码模块,用于对切分得到的所述至少两个待转码子视频进行并行转码操作。
在一种可能的实施方式中,所述获取模块,用于从任务信息存储队列获取所述待转码任务。
在一种可能的实施方式中,所述切分模块,用于基于所述属性信息,确定所述待转码视频的视频数据量;确定所述视频数据量大于切分阈值。
在一种可能的实施方式中,所述属性信息包括以下至少一项:所述待转码视频的体积;所述待转码视频的时长;所述切分阈值包括以下至少一项:预设切分体积;预设切分时长。
在一种可能的实施方式中,所述转码模块,用于采用至少两个转码服务器,对所述至少两个待转码子视频进行并行转码操作;其中,转码服务器的数量与待转码子视频的数量一致、且一一对应。
在一种可能的实施方式中,所述装置还包括添加模块,其中:
所述添加模块,用于在所述切分模块将所述待转码视频切分为至少两个待转码子视频之后,为所述至少两个待转码子视频添加子视频标识符;以及
所述转码模块,还用于在对切分得到的所述至少两个待转码子视频进行并行转码操作之后,根据子视频标识符,将并行转码操作得到的至少两个目标子视频进行拼接,得到目标转码视频。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述视频转码装置、计算机设备、及计算机可读存储介质的效果描述参见上述视频转码方法的说明,这里不再赘述。
本公开实施例提供的视频转码的方法、装置、计算机设备和存储介质,基于获取的待转码任务中包括的待转码视频的属性信息判断待转码视频是否满足切分条件,在满足切分条件的情况下,将待转码视频切分成至少两个待转码子视频并对其进行并行转码操作,与现有技术中,一个待转码视频利用一个转码服务器进行串行转码操作,当待转码视频的数据量过大时,增加了视频转码时间,降低了视频转码效率相比,其通过将待转码视频切分成至少两个待转码子视频,对切分得到的待转码子视频进行并行转码,通过减少转码服务器处理的视频数据量的方式,降低了转码操作对转码服务器硬件资源依赖,在大量转码任务同时迸发的情况下,通过对较大视频数据量的待转码任务进行切分处理的方式,不仅缩短了待转码任务的处理时间,还减少了后续待处理的待转码任务的等待时间,提高了视频转码的效率。
进一步的,本公开实施例提供的视频转码方法,针对切分得到的待转码子视频,启动与其数量一致且一一对应的转码服务器对其进行并行转码,每一转码服务器在没有待转码任务时不会启动,降低了转码服务器的资源浪费,提高了视频转码效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种视频转码方法的应用场景示意图;
图2示出了本公开实施例所提供的一种视频转码方法的流程图;
图3示出了本公开实施例所提供的一种获取转码视频的具体实施过程的流程图;
图4示出了本公开实施例所提供的一种视频转码装置的示意图;
图5示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,现有的视频转码方法主要是通过向云服务商申请可以进行视频转码的云服务器,当存在需要执行的待转码视频时,通过将待转码的视频文件上传至云服务商提供的ESC服务器,然后通过调用相关的API接口启动ESC服务器执行对待转码视频文件的转码操作,在视频转码的高峰期,当存在较大的待转码视频时,利用上述视频转码方法执行转码操作,需要等到该较大的待转码视频转码完成后,才能对其他待转码视频进行转码,增加了视频转码时间,降低了视频转码效率。
基于上述研究,本公开提供了一种的视频转码的方法、装置、计算机设备和存储介质,通过将待转码视频切分成至少两个待转码子视频,对切分得到的待转码子视频进行并行转码,通过减少转码服务器处理的视频数据量的方式,降低了转码操作对转码服务器硬件资源依赖,在大量转码任务同时迸发的情况下,通过对较大视频数据量的待转码任务进行切分处理的方式,不仅缩短了待转码任务的处理时间,还减少了后续待处理的待转码任务的等待时间,提高了视频转码的效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
实施例一
为便于对本公开实施例进行理解,首先对本公开实施例所公开的一种数据处理方法的应用场景进行介绍,如图1所示,为本公开实施例提供的一种视频转码方法的应用场景示意图。用户通过终端设备11中安装的应用客户端登录转码服务器12,其中,应用客户端可以为网页的浏览器,也可以为安装于终端设备,如手机,平板电脑等中的应用程序客户端。终端设备11与转码服务器12之间通过通信网络进行连接,该网络可以为局域网、蜂窝网和广域网等。终端设备11可以为便携设备(例如:手机、平板、笔记本电脑等),也可以为个人电脑(PC,Personal Computer),转码服务器12可以为任何能够提供互联网服务的设备。
转码服务器12可以为用户提供不同的互联网业务,例如,转码服务器12可以为用户提供视频转码业务,当用户通过在线教育的方式进行网络授课时,在授课结束时,用户登录的客户端将基于用户在网络授课期间的在线视频生成待转码任务及其标识信息,此时,每一个在线视频就是一个待转码视频,并将生成的待转码任务的标识信息发送给微服务器13进行存储,其中,微服务器13是部署在微服务系统中的一个服务器,且在在线教育的高峰期,大量的用户授课结束,此时将生成大量的待转码任务的标识信息存储在微服务器13中,当客户端对应的转码服务器12根据存储在微服务器13标识信息确定存在待转码任务时,获取标识信息对应的待转码视频及待转码视频的属性信息,基于待转码视频的属性信息判断是否需要对其进行切分,在确定需要切分的情况下,将其切分成至少两个待转码子视频,进一步的,利用与待转码子视频数量相同的转码服务器对其进行转码操作,通过并发执行的方式,避免了当一个正在转码的待转码视频的数据量过大时,将造成该服务器资源的较长时间占用,增加了其他待转码任务的视频转码的等待时间,提高了视频转码的效率。
具体实施时,本公开实施例可以基于微服务系统架构实现,微服务架构系统是一项在云中部署应用和服务的技术,其提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,这个系统架构还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。其中,微服务可以用Docker容器实现,一台物理机器同时运行多个容器,也可以只运行一个容器,每个容器承载一个微服务,以实现复杂的微服务架构。
实施例二
下面以执行主体为计算机设备为例对本公开实施例提供的视频转码方法加以说明。
如图2所示,为本公开实施例所提供的一种视频转码方法的流程图,可以包括以下步骤:
S201:获取待转码任务,待转码任务包括待转码视频和待转码视频的属性信息。
具体实施时,此视频转码方法适用于大量待转码任务同时迸发的情况,特别是在用户通过在线教育的方式授课结束时,客户端可以基于用户在网络授课期间的在线视频生成待转码任务及其标识信息,在一种实施方式中,标识信息可以为对应的待转码视频的存储地信息,进一步的,将生成的标识信息发送给任务信息存储队列进行存储,在一种实施方式中,任务信息存储队列可以是一种基于微服务系统架构部署的微服务器中所提供的微服务,例如,可以是消息队列;在另一种实施方式中,任务信息存储队列可以转码服务器所提供的微服务;以任务信息存储队列为消息队列为例,转码服务器通过网络请求的方式与消息队列对应的微服务器进行交互,获取消息队列,在此基础上,可以获取存储在消息队列的待转码任务的标识信息,基于此标识信息可以获取对应的待转码视频及其属性信息,其中,待转码视频的属性信息可以包括以下至少一项:待转码视频的体积和待转码视频的时长,另外,基于获取的属性信息,还可以确定切分条件对应的切分阈值,例如,在待转码视频的属性信息包括待转码视频的体积的情况下,切分阈值可以是预设切分体积,在一种实施方式中,在待转码视频的属性信息包括待转码视频时长的情况下,切分阈值可以是预设切分时长,在另一种实施方式中,在待转码视频的属性信息包括待转码视频时长和待转码视频体积的情况下,切分阈值包括预设切分体积和预设切分时长。其中,该切分阈值用于判断是否需要对获取的待转码视频进行切分,并且在确定需要对待转码视频进行切分的情况下,可以利用该切分阈值将待转码视频进行切分,另外,如果转码服务器根据获取的消息队列判断出其中不存在任务标识信息,则说明此时没有需要执行转码操作的视频文件,则转码服务器继续获取消息队列。
需要说明的是,关于待转码视频的属性信息的确定,根据标识信息中包括的待转码视频的存储地信息不同,其确定方式也不同,可以包括以下两种方式:
第一种方式,待转码视频的存储地信息可以是云端存储地信息,转码服务器在获取存储在消息队列中的标识信息之后,根据其对应的云端存储地信息与云端存储地对应的微服务器进行交互,下载存储在微服务器中的待转码视频并根据此视频可以获取其准确的属性信息。
第二种方式,待转码视频的存储地信息可以是消息队列,表示待转码视频存储在消息队列中,则转码服务器可以直接在获取标识信息的同时,从消息队列获取待转码视频及其对应的属性信息。
另外,一个待转码视频及其对应的属性信息可以构成一个待转码视频文件,其中,待转码视频文件一般是存储的Json(JavaScript Object Notation,一种与开发语言无关的、轻量级的数据存储格式)格式的视频文件,另外,在获取到存储的Json格式的视频文件之后,还需要利用文件解析命令对其进行解析,以获取待转码视频文件中所包括的待转码视频及待转码视频的清晰度信息和格式信息等。
需要说明的是,在在线教育的下课高峰期,将存在大量的待转码视频,同时,消息队列也将存在大量的待转码视频对应的任务标识信息,转码服务器可以在获取任务信息存储队列中存储的任务标识信息的数量同时,获取对应数量的待转码视频。以在线课生成回放视频为例,在周末的在线课视频高峰期,可能存在上万节课并发的情况,在下课的瞬间,可能产生上万个待转码视频任务,则任务信息存储队列中将同时包括上万个待转码任务标识信息,基于此,服务器可以获取上万个待转码视频和对应的属性信息以及对应的切分阈值。
另外,用户还可以根据自身的视频转码需求,在基于待转码视频生成待转码任务和对应的标识信息的同时,在待转码任务中添加为生成的目标转码视频添加视频水印的请求,基于此请求,转码服务器在对待转码视频进行转码的过程中,将在待转码视频的预设位置添加视频水印,其中,预设位置可以在视频的左上角、右上角、左下角或者右下角等,例如,以添加的视频水印为“XX网课”,为例,则在最终生成的目标转码视频的预设位置附加有“XX网课”的视频水印。
S202:根据属性信息,若确定待转码视频满足切分条件,则将待转码视频切分为至少两个待转码子视频。
本步骤中,转码服务器在获取待转码视频对应的属性信息以及切分阈值之后,可以根据待转码视频的属性信息确定待转码视频的视频数据量,其中,视频数据量可以包括根据待转码视频的体积确定的待转码视频所占据的存储空间的数值,例如,可以为待转码视频的大小,或者,根据待转码视频的时长确定的待转码视频所占据的时间数值,例如,可以为待转码视频的时间,基于此,转码服务器根据对应获取的切分阈值判断是否对获取的待转码视频进行切分,在判断出视频数据量小于切分阈值时,即待转码视频不满足切分条件,则可以确定不需要对此待转码视频进行切分,此时的待转码视频的视频数据量相对较小,基于现有转码服务器的转码能力,直接进行转码不会造成时间的浪费;在判断出视频数据量大于切分阈值时,即待转码视频满足切分条件,则可以确定需要对此待转码视频按照切分阈值切分成至少两个待转码子视频,此时,如果不对待转码视频进行切分,由于视频数据量过大,转码服务器对应的转码能力有限,只利用一个转码服务器进行转码,将造成视频转码时间的浪费,并且,在转码高峰期,在每一个转码服务器都被充分利用的情况下,才可以进一步的提升视频转码的效率,如果某一个转码服务器在转码过程中,处理的待转码视频的数据量过大,基于自身的转码能力限制,将造成该转码服务器的效率下降,视频转码的时间增加,从而影响后续待转码任务的视频转码时间,降低了视频转码效率。
例如,以获取某一在线课视频的回放视频为例,如果在线课的视频时长为2.5小时,切分阈值为0.5小时,当转码服务器根据获取的待转码视频的属性信息确定待转码视频时长为2.5小时,进一步的,可以判断出该时长大于切分阈值0.5小时,因此需要对此待转码视频进行切分,则以0.5小时为切分比例将待转码视频切分成5个视频时长为0.5小时的待转码子视频,并且在对待转码视频进行切分的时候,将对每一个切分完成的待转码子视频添加子视频标识符,其中,子视频标识符用于标记每一个待转码子视频在待转码视频中的先后顺序关系,在这种情况下,以一个转码服务器处理一个0.5小时的待转码视频需要1分钟,处理一个2.5小时的待转码视频需要10分钟为例,针对一个2.5小时的待转码视频,不对此待转码视频进行切分,直接利用一个转码服务器对其进行转码,需要10分钟才可以完成对此待转码视频的转码,但是,如果对其进行切分,切分后利用5个转码服务器并行对其进行视频转码,则只需要1分钟就可以完成对此待转码视频的转码,相比而言,针对视频数据量较大的视频,利用切分的方式对其进行转码,将大幅度的提高视频转码的效率。
需要说明的是,服务器获取的待转码视频的视频数据量一般是包括视频大小和视频时间的,对应的,切分阈值也是包括预设切分体积和预设切分时长的,在服务器将视频数据量和切分阈值进行对比之后,如果出现判断结果不一致的情况,则按照待转码视频的时间大于待转码视频的大小的优先级顺序,确定是否需要对待转码视频进行切分,例如,在对某一待转码视频进行切分判断时,如果根据待转码视频的时间判断出需要对待转码视频进行切分,而根据待转码视频的大小判断出不需要对待转码视频进行切分,则以优先权较大的待转码视频的时间的判断结果为实际操作结果,即根据待转码视频的时间与切分阈值对应的预设切分时长对待转码视频进行切分,但是,在根据待转码视频的时间判断出不需要对待转码视频进行切分,根据待转码视频的大小判断出需要对待转码视频进行切分时,即使,待转码视频的时间的优先级大于待转码视频的大小,但是当存在对待转码视频进行切分的结果时,以需要切分的结果对应的视频数据量的优先级进行判断,即按照需要切分的判断结果为实际操作结果,即按照切分阈值对应的预设切分体积将待转码视频切分成至少两个待转码子视频。
S203:对切分得到的至少两个待转码子视频进行并行转码操作。
具体实施时,转码服务器在切分得到至少两个待转码子视频后,将生成的待转码子视频对应的子视频标识符发送至任务信息存储队列进行存储,服务器根据从信息存储队列中获取的子视频标识符的数量,确定存在的待转码子视频的数量,进一步的,根据子视频标识符获取对应的待转码子视频,然后利用等同于待转码子视频的数量、且一一对应的转码服务器对待转码子视频执行并行转码操作,具体实施时,利用部署在转码服务器中的函数计算转码进程对待转码子视频执行并行转码操作,其中,一个函数计算转码进程对应一个转码服务器,当确定存在多个待转码子视频时,可以通过网络请求的方式,基于待转码子视频的数量,启动一致数量的部署在不同转码服务器的函数计算转码进程执行转码操作,生成目标转码视频。
需要说明的是,部署在不同转码服务器中的函数计算转码进程在不被调用时,保持休眠状态,不会造成转码服务器资源的消耗,只有存在待转码视频时,才对应启动不同数量的函数计算转码进程执行转码操作,一旦转码操作执行完成,将继续保持休眠状态。
基于此,在完成对至少两个待转码子视频的转码后,针对得到的至少两个目标转码子视频,按照待转码子视频中对应的子视频标识符将转码完成的目标子视频进行拼接,拼接成一个目标转码视频并发送给客户端,则用户可以在客户端获取需要的视频资源。
本公开实施例提供的视频转码方法,基于获取的待转码视频及其对应的属性信息,判断是否需要对待转码视频进行切分,在确定需要切分的情况下,按照预设切分阈值对其进行切分,利用与切分得到的待转码子视频数量一致的转码服务器执行待转码任务,通过减少转码服务器处理的视频数据量的方式,降低了转码操作对转码服务器硬件资源依赖,在大量转码任务同时迸发的情况下,通过对较大视频数据量的待转码任务进行切分处理的方式,不仅缩短了待转码任务的处理时间,还减少了后续待处理的待转码任务的等待时间,提高了视频转码的效率。
实施例三
基于以上视频转码介绍的方法,如图3所示,为本公开实施例提供的一种获取转码视频的具体实施过程的流程图,可以包括以下步骤:
S301:检测是否存在待转码任务。
具体实施时,当用户通过在线教育的方式授课结束时,客户端可以基于用户在网络授课期间的在线视频生成待转码任务及其标识信息,进一步的,将生成的标识信息发送给任务信息存储队列进行存储,对应的,转码服务器通过检测获取的任务信息队列中是否存在任务标识信息来确定是否存在待转码视频,如果是,则执行S302,如果否,则继续执行S301。
S302:根据任务标识信息获取待转码视频及其属性信息。
本步骤中,转码服务器根据接收到任务标识信息中携带的云端存储地信息,获取待转码视频及其属性信息,进一步的,基于获取的属性信息,获取对应的切分阈值以及确定对应的视频数据量。
S303:将切分阈值和视频数据量进行对比,判断是否需要对待转码视频进行切分。
本步骤中,转码服务器将获取的切分阈值和视频数据量进行对比,在视频数据量小于切分阈值的情况下,表示不需要对待转码视频进行切分,则执行S305;在视频数据量大于切分阈值的情况下,执行S304。
S304:按照切分阈值对待转码视频进行切分。
以在线视频的视频大小为6G,切分阈值为1.2G为例,在视频数据量大于切分阈值的情况下,则说明需要对待转码视频进行切分,基于切分得到的待转码子视频完成转码操作,则以1.2G为切分比例将在线视频切分成5段独立的带有子视频标识符的待转码子视频,例如,可以将每一待转码子视频对应的Index(标识)端设置为具体的数值作为子视频标识符,如1,2,3等,其中,不同的数值代表不同的视频顺序。
S305:转码服务器直接执行转码操作。
在确定不需要对待转码视频进行切分的情况下,转码服务器可以直接启动所包括的函数计算转码进程执行对待转码视频的转码操作。
S306:将子视频标识符存储到任务信息存储队列。
具体实施时,为了实现以并发的转码方式实现对待转码视频的转码操作,需要将切分得到的每一子视频标识符重新发送至任务信息存储队列。
S307:根据从任务信息存储队列中获取的子视频标识符确定启动的转码服务器的数量。
具体实施时,转码服务器需要再次通过网络请求的方式获取任务信息存储队列,确定所包括的子视频标识符数量,根据子视频标识符的数量确定启动的转码服务器的目标数量。
S308:启动目标数量个转码服务器,并发执行对每一待转码子视频的转码操作。
具体实施时,利用目标数量个转码服务器并发执行对每一待转码子视频的转码操作。
S309:转码完成,将转码得到的目标子视频进行拼接,得到目标转码视频。
在转码完成后,转码服务器根据生成的子视频标识符,将每个待转码子视频转码得到的目标子视频进行拼接,得到目标转码视频发送给客户端,基于此,用户可以在客户端获取完整的转码视频,流程结束。
本公开实施例提供的获取转码视频方法,在根据待转码视频的数据量和切分阈值确定出需要对待转码视频进行切分的情况下,按照切分阈值对待转码视频进行切分,生成独立的多个带有子视频标识符的待转码子视频并重新发送到任务信息存储队列中,基于子视频标识符的数量对应启动同样数量的转码服务器以并发执行的方式完成转码操作,提高了转码操作的效率和灵活性。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与视频转码方法对应的视频转码装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述视频转码方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图4所示,为本公开实施例提供的一种视频转码装置的示意图,所述装置包括:
获取模块401,用于获取待转码任务,所述待转码任务包括待转码视频和所述待转码视频的属性信息;
切分模块402,用于根据所述属性信息,若确定所述待转码视频满足切分条件,则将所述待转码视频切分为至少两个待转码子视频;
转码模块403,用于对切分得到的所述至少两个待转码子视频进行并行转码操作。
在一种可能的实施方式中,所述获取模块401,用于从任务信息存储队列获取所述待转码任务。
在一种可能的实施方式中,所述切分模块402,用于基于所述属性信息,确定所述待转码视频的视频数据量;确定所述视频数据量大于切分阈值。
在一种可能的实施方式中,所述属性信息包括以下至少一项:所述待转码视频的体积;所述待转码视频的时长;所述切分阈值包括以下至少一项:预设切分体积;预设切分时长。
在一种可能的实施方式中,所述转码模块403,用于采用至少两个转码服务器,对所述至少两个待转码子视频进行并行转码操作;其中,转码服务器的数量与待转码子视频的数量一致、且一一对应。
在一种可能的实施方式中,所述装置还包括添加模块404,其中:
所述添加模块404,用于在所述切分模块402将所述待转码视频切分为至少两个待转码子视频之后,为所述至少两个待转码子视频添加子视频标识符;以及
所述转码模块403,还用于在对切分得到的所述至少两个待转码子视频进行并行转码操作之后,根据子视频标识符,将并行转码操作得到的至少两个目标子视频进行拼接,得到目标转码视频。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种计算机设备,如图5所示,为本公开实施例提供的计算机设备结构示意图,包括:
处理器51和存储器52;所述存储器52存储有处理器51可执行的机器可读指令,处理器51用于执行存储器52中存储的机器可读指令,所述机器可读指令被处理器51执行时,处理器51执行下述步骤:S201:获取待转码任务,待转码任务包括待转码视频和待转码视频的属性信息;S202:根据属性信息,若确定待转码视频满足切分条件,则将待转码视频切分为至少两个待转码子视频以及S203:对切分得到的至少两个待转码子视频进行并行转码操作。
上述存储器52包括内存521和外部存储器522;这里的内存521也称内存储器,用于暂时存放处理器51中的运算数据,以及与硬盘等外部存储器522交换的数据,处理器51通过内存521与外部存储器522进行数据交换。
在一种可能的实施方式中,处理器51执行的指令中,所述获取待转码任务,包括:
从任务信息存储队列获取所述待转码任务。
在一种可能的实施方式中,处理器51执行的指令中,根据所述属性信息,确定所述待转码视频满足切分条件,包括:
基于所述属性信息,确定所述待转码视频的视频数据量;
确定所述视频数据量大于切分阈值。
在一种可能的实施方式中,处理器51执行的指令中,所述属性信息包括以下至少一项:所述待转码视频的体积;所述待转码视频的时长;
所述切分阈值包括以下至少一项:预设切分体积;预设切分时长。
在一种可能的实施方式中,处理器51执行的指令中,所述对切分得到的所述至少两个待转码子视频进行并行转码操作,包括:
采用至少两个转码服务器,对所述至少两个待转码子视频进行并行转码操作;其中,转码服务器的数量与待转码子视频的数量一致、且一一对应。
在一种可能的实施方式中,处理器51执行的指令中,,在将所述待转码视频切分为至少两个待转码子视频之后,所述方法还包括:
为所述至少两个待转码子视频添加子视频标识符;
对切分得到的所述至少两个待转码子视频进行并行转码操作之后,所述方法还包括:
根据子视频标识符,将并行转码操作得到的至少两个目标子视频进行拼接,得到目标转码视频。
上述指令的具体执行过程可以参考本公开实施例中所述的视频转码方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的视频转码方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的视频转码方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的视频转码方法的步骤,具体可参见上述方法实施例,在此不再赘述。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种视频转码方法,其特征在于,包括:
获取待转码任务,所述待转码任务包括待转码视频和所述待转码视频的属性信息;
根据所述属性信息,若确定所述待转码视频满足切分条件,则将所述待转码视频切分为至少两个待转码子视频;
对切分得到的所述至少两个待转码子视频进行并行转码操作。
2.根据权利要求1所述的视频转码方法,其特征在于,所述获取待转码任务,包括:
从任务信息存储队列获取所述待转码任务。
3.根据权利要求1或2所述的视频转码方法,其特征在于,根据所述属性信息,确定所述待转码视频满足切分条件,包括:
基于所述属性信息,确定所述待转码视频的视频数据量;
确定所述视频数据量大于切分阈值。
4.根据权利要求3所述的视频转码方法,其特征在于,所述属性信息包括以下至少一项:所述待转码视频的体积;所述待转码视频的时长;
所述切分阈值包括以下至少一项:预设切分体积;预设切分时长。
5.根据权利要求1所述的视频转码方法,其特征在于,所述对切分得到的所述至少两个待转码子视频进行并行转码操作,包括:
采用至少两个转码服务器,对所述至少两个待转码子视频进行并行转码操作;其中,转码服务器的数量与待转码子视频的数量一致、且一一对应。
6.根据权利要求5所述的视频转码方法,其特征在于,在将所述待转码视频切分为至少两个待转码子视频之后,所述方法还包括:
为所述至少两个待转码子视频添加子视频标识符;
对切分得到的所述至少两个待转码子视频进行并行转码操作之后,所述方法还包括:
根据子视频标识符,将并行转码操作得到的至少两个目标子视频进行拼接,得到目标转码视频。
7.一种视频转码装置,其特征在于,包括:
获取模块,用于获取待转码任务,所述待转码任务包括待转码视频和所述待转码视频的属性信息;
切分模块,用于根据所述属性信息,若确定所述待转码视频满足切分条件,则将所述待转码视频切分为至少两个待转码子视频;
转码模块,用于对切分得到的所述至少两个待转码子视频进行并行转码操作。
8.根据权利要求7所述的视频转码装置,其特征在于,所述获取模块,用于从任务信息存储队列获取所述待转码任务。
9.一种计算机设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至6任意一项所述的视频转码方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求1至6任意一项所述的视频转码方法的步骤。
CN202011293404.6A 2020-11-18 2020-11-18 一种视频转码方法、装置、计算机设备和存储介质 Pending CN112423024A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011293404.6A CN112423024A (zh) 2020-11-18 2020-11-18 一种视频转码方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011293404.6A CN112423024A (zh) 2020-11-18 2020-11-18 一种视频转码方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN112423024A true CN112423024A (zh) 2021-02-26

Family

ID=74773080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011293404.6A Pending CN112423024A (zh) 2020-11-18 2020-11-18 一种视频转码方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112423024A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113727110A (zh) * 2021-08-27 2021-11-30 猪八戒股份有限公司 将h264格式转换为mp4格式的方法、装置及介质
CN114205647A (zh) * 2021-12-02 2022-03-18 云知声智能科技股份有限公司 基于视频监控的报警方法、装置、电子设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731678A (zh) * 2013-12-30 2014-04-16 世纪龙信息网络有限责任公司 视频文件的并行转码方法及系统
CN103838779A (zh) * 2012-11-27 2014-06-04 深圳市腾讯计算机系统有限公司 复用空闲计算资源的云转码方法及系统、分布式文件装置
CN104159127A (zh) * 2014-08-21 2014-11-19 北京奇艺世纪科技有限公司 一种视频转码方法、装置及系统
CN105451031A (zh) * 2015-11-18 2016-03-30 腾讯科技(深圳)有限公司 一种视频转码方法和系统
CN108989885A (zh) * 2017-06-05 2018-12-11 腾讯科技(深圳)有限公司 视频文件转码系统、分割方法、转码方法及装置
CN110149518A (zh) * 2018-02-12 2019-08-20 腾讯科技(深圳)有限公司 媒体数据的处理方法、系统、装置、设备以及存储介质
US20200059654A1 (en) * 2018-08-16 2020-02-20 BombBomb, LLC Method and System for Implementing Split and Parallelized Encoding or Transcoding of Audio and Video Content

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838779A (zh) * 2012-11-27 2014-06-04 深圳市腾讯计算机系统有限公司 复用空闲计算资源的云转码方法及系统、分布式文件装置
CN103731678A (zh) * 2013-12-30 2014-04-16 世纪龙信息网络有限责任公司 视频文件的并行转码方法及系统
CN104159127A (zh) * 2014-08-21 2014-11-19 北京奇艺世纪科技有限公司 一种视频转码方法、装置及系统
CN105451031A (zh) * 2015-11-18 2016-03-30 腾讯科技(深圳)有限公司 一种视频转码方法和系统
CN108989885A (zh) * 2017-06-05 2018-12-11 腾讯科技(深圳)有限公司 视频文件转码系统、分割方法、转码方法及装置
CN110149518A (zh) * 2018-02-12 2019-08-20 腾讯科技(深圳)有限公司 媒体数据的处理方法、系统、装置、设备以及存储介质
US20200059654A1 (en) * 2018-08-16 2020-02-20 BombBomb, LLC Method and System for Implementing Split and Parallelized Encoding or Transcoding of Audio and Video Content

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113727110A (zh) * 2021-08-27 2021-11-30 猪八戒股份有限公司 将h264格式转换为mp4格式的方法、装置及介质
CN114205647A (zh) * 2021-12-02 2022-03-18 云知声智能科技股份有限公司 基于视频监控的报警方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US20140082511A1 (en) Method and system for emulating desktop software applications in a mobile communication network
CN109901881B (zh) 应用程序的插件加载方法、装置、计算机设备及存储介质
CN107807841B (zh) 服务器模拟方法、装置、设备及可读存储介质
CN112423024A (zh) 一种视频转码方法、装置、计算机设备和存储介质
CN113568699B (zh) 一种内容显示方法、装置、设备及存储介质
CN113485880A (zh) 测试方法及装置
CN109542878B (zh) 一种列表创建方法及装置
EP3671627A1 (en) Image processing method and device
CN110515514B (zh) 一种数据处理方法、装置及存储介质
CN107368407B (zh) 信息处理方法和装置
KR102205686B1 (ko) 후보 문자 순위화 방법 및 장치와 문자 입력 방법 및 장치
US20170346706A1 (en) Infrastructure testing
US20170168796A1 (en) Method and electronic apparatus for transferring application program from pc to mobile apparatus
CN114286167A (zh) 跨设备的交互方法、装置、电子设备以及存储介质
CN111580883B (zh) 应用程序启动方法、装置、计算机系统和介质
CN114327846A (zh) 集群的扩容方法、装置、电子设备及计算机可读存储介质
WO2023169193A1 (zh) 用于生成智能合约的方法和装置
CN108156534B (zh) 演示应用的生成方法、装置及计算机可读存储介质
CN114610446B (zh) 一种自动注入探针的方法、装置及系统
CN111813407B (zh) 游戏开发方法、游戏运行方法、装置和电子设备
CN111258902B (zh) 基于SockJS服务器的性能测试方法和性能测试系统
US20120204159A1 (en) Methods and System for Managing Assets in Programming Code Translation
US9066071B2 (en) Method and apparatus for providing screen data
CN113569092B (zh) 一种视频分类方法、装置、电子设备及存储介质
CN116089187B (zh) 一种gpu测试系统、电子设备和存储介质

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