CN117729355A - 一种视频转码方法、装置、电子设备和存储介质 - Google Patents
一种视频转码方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117729355A CN117729355A CN202311733998.1A CN202311733998A CN117729355A CN 117729355 A CN117729355 A CN 117729355A CN 202311733998 A CN202311733998 A CN 202311733998A CN 117729355 A CN117729355 A CN 117729355A
- Authority
- CN
- China
- Prior art keywords
- video
- video frame
- transcoding
- target video
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000007781 pre-processing Methods 0.000 claims abstract description 57
- 239000013598 vector Substances 0.000 claims description 44
- 238000004590 computer program Methods 0.000 claims description 22
- 238000013139 quantization Methods 0.000 claims description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 7
- 230000006854 communication Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 5
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了一种视频转码方法、装置、电子设备和存储介质,可对目标视频进行解码,得到视频帧的解码信息;基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息;调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。由此,通过调用多个转码模块,复用视频帧显示数据和预分析信息进行视频转码,以降低视频转码时间。
Description
技术领域
本申请涉及视频转码领域,具体涉及一种视频转码方法、装置、电子设备和存储介质。
背景技术
视频转码的一个应用场景为基于服务端对创作者上传的源视频进行转码,并将转码之后的视频下发给互联网客户端。由于互联网客户端的带宽及设备具有多样化,同一个视频往往需要转码成不同分辨率的输出视频,在根据互联网客户端的带宽及设备,下发不同分辨率的输出视频。
现有将同一视频转码成不同分辨率的输出视频的过程为将视频源输入不同分辨率的转码线程中进行转码,不同分辨率的转码线程相互独立。由于不同分辨率的转码线程相互独立,导致转码时间过长。
发明内容
本申请实施例提供一种视频转码方法、装置、电子设备和存储介质,可以降低转码时间。
第一方面,本申请实施例提供一种视频转码方法,包括:
对目标视频进行解码,得到视频帧的解码信息;
基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;
基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息;
调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。
第二方面,本申请实施例还提供一种视频转码装置,包括:
解码信息获取模块,用于对目标视频进行解码,得到视频帧的解码信息;
视频帧显示数据获取模块,用于基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;
预分析信息获取模块,用于基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息;
转码模块,用于调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。
第三方面,本申请实施例还提供一种电子设备,包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行本申请实施例所提供的任一种所述视频转码方法的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行本申请实施例所提供的任一种所述视频转码方法的步骤。
第五方面,本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从所述计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行本申请实施例所提供的任一种所述视频转码方法的步骤。
采用申请实施例的方案,可以通过对目标视频进行解码,得到视频帧的解码信息;基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息;调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。由此,通过调用多个转码模块,复用视频帧显示数据和预分析信息进行视频转码,以降低视频转码时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中提供的视频转码方法应用的一系统架构示意图;
图2是本申请实施例中提供的现有的通用转码系统的一系统示意图;
图3是本申请实施例中提供的一种编码器框架示意图;
图4是本申请实施例中提供的终端和服务端的一种数据交互示意图;
图5是本申请实施例中提供的视频转码方法的一种实施例流程示意图;
图6是本申请实施例中提供的预分析信息的一组成示意图;
图7是本申请实施例中提供的编码器处理阶段的一流程示意图;
图8是本申请实施例中提供的多线程的一入多出转码系统的一系统示意图;
图9是本申请实施例中提供的预分析信息队列的一示意图;
图10是本申请实施例中提供的视频转码装置的结构示意图;
图11是本申请实施例中提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
同时,在本申请实施例的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征。在本申请实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
本申请实施例提供的视频转码方法,可以应用于如系统架构100中。请参阅图1,如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture EpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureEperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。终端可以是既包括接收和发射硬件的设备,即具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。终端与服务器可以通过网络进行双向通信。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。该服务器可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。
需要说明的是,本申请实施例所提供的视频转码方法由服务器执行,相应地,视频转码装置设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器,本申请实施例中的终端设备101、102、103具体可以对应的是实际生产中的应用系统。
如图2所示,图2为现有的转码系统的一示意图,参阅图2所示,现有通用的转码系统包括输入视频以及对该输入视频进行转码的多个相互独立的转码线程。现有对视频进行转码的过程为:将输入视频分别输入到多个相互独立的转码线程中进行转码,得到每个转码线程输出的转码后视频。如图2所示,图2包括一个1080p的输入视频以及三个转码线程。三个转码线程分别为1080p转码线程、720p转码线程以及540转码线程。1080p转码线程的整个转码过程包括解封装、解码器、前处理、编码器、封装、转码后视频等步骤。720p转码线程的整个转码过程包括解封装、解码器、前处理、下采样、编码器、封装、转码后视频等步骤。540p转码线程的整个转码过程包括解封装、解码器、前处理、下采样、编码器、封装、转码后视频等步骤。将1080p的输入视频分别输入到1080p转码线程、720p转码线程以及540转码线程,以得到三个不同的转码后视频。
如图3所示,图3为一编码器框架示意图,编码器均包括预分析模块和编码模块。具体来说,编码器的工作过程为:通过预分析模块在编码过程中缓存一定数量的未编码帧(YUV),并基于预分析模块对这些未编码帧进行分析和预测,以确定最佳的编码策略和设置参数。再通过编码模块利用预分析模块输出的编码策略和设置参数对未编码帧进行编码,输出码流。其中,预分析模块主要包括运动估计、帧类型决策、cutree(最优聚类数)以及码率控制信息搜集等过程。
需要说明的是,不同线程中的编码器的具体逻辑执行过程并不相同。比如,为了降低预分析模块的计算复杂度,如720p转码线程以及540p转码线程所示,需要先对输入视频进行下采样处理,然后利用编码器中的预分析模块对下采样后的视频进行分析和预测,以确定最佳的编码策略和参数设置。每个线程中输入编码器的视频分辨率是固定的,每个线程中的编码器的预分析模块中分析的视频分辨率也是固定的。比如,在预分析模块中采用菱形搜索方式进行运动估计,则预分析模块分析的视频分辨率为输入编码器的视频分辨率的1/4。
示例性的,输入至编码器的视频分辨率是1080p(1920x1080),则预分析模块分析的视频分辨率为540p(960x540)。又比如,输入至编码器的视频分辨率是540p(960x540),则预分析模块分析的视频分辨率是270p(480×270)。
因此,现有通用的转码系统存在以下问题:每个转码线程都需要调用解封装和解码器以及前处理模块,使得转码系统的转码时间变长。此外,由于有些前处理算法是基于深度学习的算法,其时间复杂度很高,导致降低整个转码系统的转码速度。每个转码线程的编码器都需要进行预分析,导致转码时间较长。此外,由于转码线程中预分析模块处理的视频分辨率是固定的,导致转码系统的自适应较差,只能采用相互独立的多个转码线程进行转码,进而导致转码时间较长。
如图4所示,图4为终端与服务器之间数据交互的示意图。终端可以接收用户输入的目标视频,将目标视频发送给服务端。服务端通过解码器对目标视频进行解码,得到视频帧的解码信息。服务器通过前处理模块和视频帧的解码信息,对目标视频的视频帧进行前处理,得到每个视频帧的视频帧显示数据。服务器通过预分析模块、视频帧的解码信息和每个视频帧的视频帧显示数据,对目标视频的视频帧进行预分析,得到每一视频帧的预分析信息。服务器调用多个转码模块,每个转码模块复用视频帧显示数据和预分析信息进行视频转码,得到多个转码后视频,并将根据终端的需求,将转码后视频发送给终端。
需要说明的是,图4中的预分析模块与现有的通用系统中的预分析模块不相同。现有的通用系统的预分析模块为编码器中的一个模块,而图4中的预分析模块为独立于编码器的一个模块,在图4中,编码器存在于转码模块中。转码模块至少包括编码器、封装、输出转码后视频等步骤,转码模块还可以包括下采样步骤。
以下结合附图分别进行详细说明,本实施例中以执行主体是可以获取目标视频的电子设备。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于附图所示的顺序执行所示出或描述的步骤。
请参考图5,该视频转码方法的具体流程可以如下步骤201~步骤204,其中:
步骤201、对目标视频进行解码,得到视频帧的解码信息。
在本申请实施例中,解码信息是指对目标视频中的视频帧进行解码,得到解码后视频帧的相关信息。解码信息包括但不限于视频帧的帧级量化参数(QP)、视频帧的码率、视频帧的编码块数量、视频帧中每一编码块的尺寸以及该编码块的量化参数、预测模式、视频帧的运动矢量信息。预测模式包括但不限于帧内预测、帧间预测。解码信息的具体内容可根据实际使用情况解码器解码得到的具体内容,本申请实施例不做限制。
在本申请实施例中,对目标视频进行解码可以是通过解码器对目标视频进行解码,得到视频帧的解码信息。比如,通过终端将目标视频发送给服务器,服务器将目标视频发送给解码器进行解码,得到视频帧的解码信息。又比如,服务器接收解码请求,根据解码请求中的位置信息,获取该位置信息上存储的目标视频,将目标视频发送给解码器进行解码,得到视频帧的解码信息。
在本申请实施例中,在对目标视频进行解码之前,还可以对目标视频进行解封装,通过解码器对解封装后的目标视频进行解码。
步骤202、基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据。
在本申请实施例中,前处理是指为得到目标视频中视频帧的视频显示数据的一系列处理。比如,前处理可以为对目标视频中的视频帧进行格式解析。又比如,前处理可以为识别目标视频中视频帧的数据格式,将该数据格式下的视频帧替换为预定格式的视频帧。根据前处理的具体内容,从解码信息中获取与前处理相关的信息,以对目标视频中的视频帧进行前处理。前处理的具体内容可根据实际情况进行调整,本申请实施例不做具体限制。
在本申请实施例中,对所述目标视频中的视频帧进行前处理可以通过前处理模块接收解码信息以及目标视频,基于接收到的解码信息和目标视频,在前处理模块对目标视频中的视频帧进行前处理,得到视频帧的视频帧显示数据。比如,通过终端将目标视频发送给服务器,服务器将目标视频以及解码信息发送给前处理模块进行前处理,得到视频帧显示数据。又比如,服务器接收对目标视频的前处理请求,根据前处理请求中的至少一个位置信息,根据位置信息,获取目标视频和解码信息,将目标视频和解码信息发送给前处理模块进行前处理,得到视频帧显示数据。
在本申请实施例中,视频帧显示数据是指用于显示视频帧的数据。该视频帧显示数据可以为YUV数据、RGB数据或者其他类型数据。YUV数据是指可以在播放器的视频显示模块中直接显示的数据。RGB数据或者其他类型数据需转化为YUV数据后才能在播放器的视频显示模块中显示。即RGB数据或者其他类型数据为显示视频帧的中间数据。
在本申请实施例中,可以对目标视频中的每一视频帧进行前处理,也可以对预定视频帧进行前处理。前处理的视频帧的数量可根据实际情况调整,本申请实施例不做限制。
在本申请实施例中,将视频帧显示数据存储到解码YUV队列中,以及将预分析信息存储到预分析队列中。
步骤203、基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息。
在本申请实施例中,预分析是指对目标视频中视频帧可复用的信息进行预先分析的一系列操作。
在本申请实施例中,对所述目标视频中的视频帧进行预分析可以通过预分析模块接收解码信息以及视频帧显示数据,基于接收到的解码信息和视频帧显示数据,在预分析模块对目标视频中的视频帧进行预分析,得到视频帧的预分析信息。比如,通过终端将目标视频发送给服务器,服务器将目标视频的解码信息以及视频帧显示数据发送给预分析模块进行预分析,得到预分析信息。又比如,服务器接收对目标视频的预分析请求,根据预分析请求中的至少一个位置信息,根据位置信息,获取解码信息和视频帧显示数据,将解码信息和视频帧显示数据发送给预分析模块进行预分析,得到预分析信息。
在本申请实施例中,预分析的过程可以根据不同转码后视频的差异进行调整。转码后视频的差异包括但不限于分辨率、码率。分辨率是指视频的像素数量,决定了视频的清晰度。码率为视频的压缩比例,一般来说,码率越高,画面越清晰,但文件大小也会随之增加。
在本申请实施例中,当不同转码后视频的差异为分辨率时,对目标视频进行预分析的过程可以为:
基于所述解码信息,确定对所述目标视频进行预分析的目标分辨率。
基于所述目标分辨率和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息。
在该实施例中,基于所述解码信息,确定对所述目标视频进行预分析的目标分辨率可以包括:从所述解码信息中获取目标视频帧的参数信息。基于所述目标视频帧的参数信息,确定所述目标视频帧的复杂度。以与所述复杂度对应的分辨率作为对所述目标视频进行预分析的目标分辨率。
在该实施例中,确定目标视频帧的复杂度的方式可根据目标视频的参数信息的不同进行调整。
示例性的,目标视频帧的参数信息包括目标视频帧的帧级量化参数、目标视频帧的码率以及目标视频帧的编码块的量化参数时,基于所述目标视频帧的参数信息,确定所述目标视频帧的复杂度的过程为:根据所述目标视频帧的帧级量化参数以及所述目标视频帧中每一编码块的量化参数,确定所述目标视频帧的量化步长参数;基于所述目标视频帧的码率以及所述目标视频帧的量化步长参数,确定所述目标视频帧的复杂度。
在该示例中,基于所述目标视频帧的码率以及所述目标视频帧的量化步长参数,确定目标视频帧的第一特征,根据该目标视频帧的第一特征,确定目标视频帧的复杂度。
在该示例中,根据该目标视频帧的第一特征与预设复杂度阈值的大小关系,确定目标视频帧的复杂度。例如,若第一特征大于预设复杂最大值,则确定目标视频帧为复杂视频,可以选择使用1920x1080分辨率作为目标分辨率。若第一特征小于预设复杂最小值,则确定目标视频帧为简单视频,可以选择使用640x360分辨率作为目标分辨率。具体可根据实际情况调整,本申请实施例不做限制。
在该示例中,按照如下公式(1)确定第一特征:
其中,f1是指第一特征,目标视频帧的数量为F,i的取值范围为(0,F),i为正整数,Ri表示第i个目标视频帧的码率,Qstepi表示第i个目标视频帧的量化步长参数,w为目标视频的宽度,h为目标视频的高度。
示例性的,目标视频帧的参数包括目标视频帧中每一编码块的运动矢量信息时,基于所述目标视频帧的参数信息,确定所述目标视频帧的复杂度的过程为:根据所述目标视频帧中每一编码块的运动矢量信息,确定所述目标视频帧的平均运动矢量信息;根据所述平均运动矢量信息,确定所述目标视频帧的复杂度。
在该示例中,根据所述平均运动矢量信息,确定第二特征,根据第二特征,确定所述目标视频帧的复杂度。
在该示例中,根据该目标视频帧的第二特征与预设复杂度阈值的大小关系,确定目标视频帧的复杂度。例如,若第二特征大于预设复杂最大值,则确定目标视频帧为复杂视频,可以选择使用1920x1080分辨率作为目标分辨率。若第二特征小于预设复杂最小值,则确定目标视频帧为简单视频,可以选择使用640x360分辨率作为目标分辨率。具体可根据实际情况调整,本申请实施例不做限制。
在该示例中,按照如下公式(2)确定目标视频帧的平均运动矢量信息:
其中,N表示目标视频帧中运动矢量的总个数,j的取值范围为(0,N),j为正整数,|xj|为第j个运动矢量信息中的横坐标对应的绝对值,|yj|为第j个运动矢量信息中的纵坐标对应的绝对值,avgX为目标视频帧的平均运动矢量信息中的横坐标对应的值,avgY为目标视频帧的平均运动矢量信息中的纵坐标对应的值。
在该示例中,按照如下公式(3)确定第二特征:
其中,f2是指第二特征,目标视频帧的数量为F,i的取值范围为(0,F),i为正整数,avgXi表示第i个目标视频帧的平均运动矢量信息中的横坐标对应的值,avgYi表示第i个目标视频帧的平均运动矢量信息中的纵坐标对应的值。
在该示例中,基于所述目标视频帧的参数信息,确定所述目标视频帧的复杂度的过程还可以为:根据所述目标视频帧中每一编码块的运动矢量信息,确定所述目标视频帧中每一编码块的运动矢量状态值;确定所述目标视频帧中运动矢量状态值大于预设状态阈值的编码块总数;根据所述编码块总数以及所述平均运动矢量信息,确定所述目标视频帧的复杂度。
在该示例中,根据所述编码块总数以及所述平均运动矢量信息,确定所述目标视频帧的复杂度可以为:根据所述编码块总数,确定第三特征,根据第二特征以及第三特征,确定所述目标视频帧的复杂度。
在该示例中,根据该目标视频帧的第二特征和第三特征与预设复杂度阈值的大小关系,确定目标视频帧的复杂度。例如,若第二特征大于预设复杂最大值且第三特征大于预设复杂最大值,则确定目标视频帧为复杂视频,可以选择使用1920x1080分辨率作为目标分辨率。若第二特征大于预设复杂最大值且第三特征不大于预设复杂最大值,则确定目标视频帧为简单视频,可以选择使用960x540分辨率作为目标分辨率。具体可根据实际情况调整,本申请实施例不做限制。
在该示例中,按照如下公式(4)确定第三特征:
其中,f3是指第三特征,目标视频帧的数量为F,i的取值范围为(0,F),i为正整数,N_thrOi表示第i个目标视频帧每一编码块的运动矢量状态值大于预设状态阈值的编码块总数。
在该实施例中,基于所述解码信息,确定对所述目标视频进行预分析的目标分辨率还可以包括:根据解码信息,确定目标视频的分辨率,将该目标视频的分辨率作为对目标视频进行预分析的目标分辨率。
在本申请实施例中,当不同转码后视频的差异为码率时,对目标视频进行预分析的过程可以为:基于所述解码信息,确定对所述目标视频进行预分析的目标码率;基于所述目标码率和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息。
在本申请实施例中,预分析模块的具体内容还可以根据可复用的信息进行设置。可复用的信息包括但不限于视频帧的帧类型、视频帧的运动矢量以及运动矢量的存储信息、视频帧中编码块在不同预测模式下的差异信息。其中,视频帧的帧类型包括但不限于I帧(Intra-coded picture,帧内编码图像帧),P帧(Predictive-coded picture,前向预测编码图像帧),B帧(Bidirectionally predicted picture,双向预测编码图像帧),IDR帧(Instantaneous decoding refresh picture,帧内编码刷新帧)。视频帧中编码块在不同预测模式下的差异信息包括但不限于方差信息、标准差信息、协方差信息。比如,该差异信息为视频帧中编码块的帧内预测残差和帧间预测残差的方差信息。又比如,该差异信息为视频帧中编码块的帧内预测残差和帧间预测残差的协方差信息。预分析模块的具体内容可根据实际情况进行调整,本申请实施例不做具体限制。
在本申请实施例中,当预分析信息包括帧类型和存储信息时,所述基于所述目标分辨率和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息,包括:
基于所述目标分辨率和所述视频帧显示数据,对所述目标视频中的视频帧进行帧类型判断,确定所述视频帧的帧类型;
对所述目标视频中的视频帧进行运动估计,确定所述视频帧的运动矢量并存储,获取所述运动矢量的存储信息;
将所述视频帧的帧类型以及所述存储信息作为所述视频帧的预分析信息。
结合图6对该实施例进行解释说明,如图6所示,图6为预分析信息的一组成示意图。预分析信息包括POC(Picture Order Count,图像顺序计数)、帧类型和内存指针(存储信息以内存指针的形式存在),其中,POC用于描述视频帧在视频中的时间顺序,内存指针用于指向的是存储视频帧的运动矢量的内存空间。
在本申请实施例中的预分析模块与现有的编码器中的预分析模块不同,本申请实施例中的预分析模块为独立于编码器的一个模块,编码器存在于转码模块中。转码模块至少包括编码器、封装、输出转码后视频等步骤,转码模块还可以包括下采样步骤。
在本申请实施例中,可以在不同线程中进行前处理和预分析,也可以在同一线程中进行前处理和预分析。当在同一线程中进行前处理和预分析,该线程包括前处理模块和预分析模块,则可以调用线程的前处理模块,基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;调用该线程的预分析模块,基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息。
在本申请实施例中,可以对目标视频中的每一视频帧进行预分析,也可以对预定视频帧进行预分析。预分析的视频帧的数量可根据实际情况调整,本申请实施例不做限制。
步骤204、调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。
在本申请实施例中,转码模块是指复用视频显示数据和预分析信息,对视频进行转码的模块。转码模块至少包括编码器、封装、输出转码后视频等步骤,转码模块还可以包括下采样步骤。
在本申请实施例中,不同转码模块可以是转码后视频的码率不同。比如,存在3个转码模块,转码模块进行转码后视频的码率分别为10M-20M、20M-30M、40M-50M。不同转码模块还可以是转码后视频的分辨率不同。比如,存在3个转码模块,转码模块进行转码后视频的分辨率为1080p、720p以及540p。不同转码模块还可以是转码模块中使用的编码器不同。比如,存在2个转码模块,每个转码模块使用的编码器分别为X264编码器、X265编码器。可以理解的是,不同转码模块是存在差异的,不同转码模块的差异可根据实际情况进行调整,本申请实施例不做具体限制。
在本申请实施例中,调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频可以包括:
调用多个转码模块。
针对每个所述转码模块,按照所述转码模块的转码流程对所述视频帧显示数据进行转码,所述转码流程配置有多个处理阶段。
当所述转码流程执行到编码器处理阶段时,基于所述预分析信息以及前一处理阶段输出的数据进行编码处理,得到编码处理结果。
基于所述转码流程,对所述编码处理结果进行转码,得到转码后视频。
在本申请实施例中,不同转码模块的转码流程的执行逻辑不一样。例如,存在两个转码模块的转码流程均为编码器、封装、输出转码后视频,但是,由于不同转码模块存在差异,编码器部分会存在差异,导致转码流程的执行逻辑不一样。
在本申请实施例中,处理阶段是指转码流程中的多个处理过程。例如,转码流程包括编码器,则说明转码流程包括编码器处理阶段,该编码器处理阶段使用编码器进行编码。转码流程包括封装,则说明转码流程包括封装处理阶段,该封装处理阶段用于封装编码器阶段输出的码流。具体的,处理阶段可根据转码流程以及转码模块的具体功能进行设置,本申请实施例不做限制。
在本申请实施例中,前一处理阶段输出的数据可以为视频帧显示数据,前一处理阶段输出的数据还可以为对视频帧显示数据进行下采样后得到的数据。前一处理阶段输出的数据与转码流程有关,具体根据转码流程进行调整,本申请实施例不做限制。
在本申请实施例中,可以基于所述转码流程中编码器处理阶段的后续处理阶段,对编码处理结果继续进行转码,得到转码后视频。
在本申请实施例中,每个转码模块的转码流程至少包括编码器处理阶段、封装处理阶段、输出阶段等转码流程,转码模块还可以包括下采样处理阶段。
在本申请实施例中,每个处理阶段还可以进一步包括各种子阶段。如图7所示,图7为本申请编码器处理阶段的一示意图,编码器处理阶段还可以包括预分析子阶段以及编码子阶段。结合图7对编码器处理阶段进行解释说明。
在本申请实施例中,该编码器处理阶段包括预分析子阶段以及编码子阶段,其中预分析子阶段用于利用预分析信息(例如,预分析信息包括POC、帧类型以及存储信息)以及前一处理阶段输出的数据分析不同转码模块中不可复用的信息,例如,cutree以及码率控制搜集模块,编码子阶段对预分析子阶段分析出来的结果进行编码,输出码流。具体的,预分析子阶段从预分析信息中读取出POC以及帧类型,前一处理阶段输出的数据利用POC信息获取对应的帧类型以及该POC对应的存储信息中的运动矢量进行cutree以及码率控制搜集模块分析,将分析结果发送给编码子阶段进行编码,输出码流。
在本申请实施例中,可构建一个基于预分析信息复用的一入多出转码系统,该一入多出转码系统可以由多个线程构成。
例如,如图8所示,附图8为一入多出转码系统中多个线程的一示意图。该一入多出转码系统包括4个线程。
其中,第一线程执行解封装,解码器和前处理以及预分析模块,执行结果放入预分析信息队列和解码YUV队列,其具体执行过程可以是输入目标视频、对目标视频进行解封装、基于解码器对解封装后的目标视频进行解码,得到解码信息。调用第一线程中的前处理,对目标视频进行前处理,得到视频帧显示数据,将解码信息和视频帧显示数据输入预分析模块中进行预分析,并将得到的预分析结果存入预分析信息队列中,将对视频帧显示数据分析得到的解码YUV数据存储到解码YUV队列中。
在第一线程中的预分析模块可以为将现有编码器中预分析过程的运动估计和帧类型决策模块,从编码器内部移植编码器外部,并且与分辨率决策模块一起组成。即预分析模块可以包括运动估计、帧类型决策模块以及分辨率决策模块。其具体可根据实际情况进行调整,本申请实施例不做限制。
第二线程执行540p的编码过程;第三线程执行1080p的编码过程;第四线程执行720p的编码过程。第二线程、第三线程和第四线程从预分析信息队列和解码YUV队列读入输入数据。当预分析信息队列和解码YUV队列没有数据时,则第二线程、第三线程和第四线程处于等待状态,等待第一线程往预分析信息队列和解码YUV队列写入数据。
若每一个预分析信息的组成为如图6所示的预分析信息,则预分析信息队列可以为如图9所示的预分析信息队列。
采用本申请实施例的方法,可以通过对目标视频进行解码,得到视频帧的解码信息;基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息;调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。由此,通过调用多个转码模块,复用视频帧显示数据和预分析信息进行视频转码,以降低视频转码时间。
进一步的,采用本申请实施例的方法,把解封装,解码器和前处理模块,从不同分辨率的转码过程中剥离出来,这样使得整个一入多出转码系统只需执行一次解封装,解码器和前处理算法,进而大大地降低了转码执行时间。
进一步的,采用本申请实施例的方法,将预分析模块从编码器中剥离出来,这样使得不同分辨率的转码过程复用相同的预分析信息,降低了整个一入多出转码系统的预分析模块的执行次数,进而降低了转码执行时间。
进一步的,采用本申请实施例的方法,利用解码器输出信息,选择给定的分辨率集合中选择合适的预分析视频分辨率,进而提高了整个一入多出转码系统的编码效率。
本实施例还提供一种视频转码装置,该视频转码装置具体可以集成在电子设备中,比如计算机设备,该计算机设备可以为终端、服务器等设备,本实施例对此没有限制。
例如,如图10所示,该视频转码装置可以包括:
解码信息获取模块301,用于对目标视频进行解码,得到视频帧的解码信息。
视频帧显示数据获取模块302,用于基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据。
预分析信息获取模块303,用于基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息。
转码模块304,用于调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。
可选的,本申请实施例的装置中,在同一线程中进行前处理和预分析,所述线程包括前处理模块和预分析模块,视频转码装置还包括:
前处理单元,用于调用所述线程的前处理模块,基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据。
预分析单元,用于调用所述线程的预分析模块,基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息。
可选的,本申请实施例的装置中,转码模块304中,所述调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,包括:
调用单元,用于调用多个转码模块。
转码单元,用于针对每个所述转码模块,按照所述转码模块的转码流程对所述视频帧显示数据进行转码,所述转码流程配置有多个处理阶段。
编码单元,用于当所述转码流程执行到编码器处理阶段时,基于所述预分析信息以及前一处理阶段输出的数据进行编码处理,得到编码处理结果。
转码后视频获取单元,用于基于所述转码流程中编码器处理阶段的后续处理阶段,对所述编码处理结果进行转码,得到转码后视频。
可选的,本申请实施例的装置中,不同的所述转码模块存在以下的至少一个不同:所述转码模块使用的编码器、转码后视频的码率和转码后视频的分辨率。
可选的,本申请实施例的装置中,预分析信息获取模块303中,所述基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息,包括:
目标分辨率获取单元,用于基于所述解码信息,确定对所述目标视频进行预分析的目标分辨率。
预分析单元,用于基于所述目标分辨率和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息。
可选的,本申请实施例的装置中,目标分辨率获取单元中,所述基于所述解码信息,确定对所述目标视频进行预分析的目标分辨率,包括:
参数信息获取子单元,用于从所述解码信息中获取目标视频帧的参数信息;复杂度获取子单元,用于基于所述目标视频帧的参数信息,确定所述目标视频帧的复杂度;
目标分辨率获取子单元,用于以与所述复杂度对应的分辨率作为对所述目标视频进行预分析的目标分辨率。
可选的,本申请实施例的装置中,所述预分析信息包括帧类型和存储信息;
在预分析单元中,所述基于所述目标分辨率和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息,包括:
帧类型确定子单元,用于基于所述目标分辨率和所述视频帧显示数据,对所述目标视频中的视频帧进行帧类型判断,确定所述视频帧的帧类型。
存储信息确定子单元,用于对所述目标视频中的视频帧进行运动估计,确定所述视频帧的运动矢量并存储,获取所述运动矢量的存储信息。
预分析信息确定子单元,用于将所述视频帧的帧类型以及所述存储信息作为所述视频帧的预分析信息。
采用申请实施例的方案,可以通过对目标视频进行解码,得到视频帧的解码信息;基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息;调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。由此,通过调用多个转码模块,复用视频帧显示数据和预分析信息进行视频转码,以降低视频转码时间。
进一步的,采用本申请实施例的装置,把解封装,解码器和前处理模块,从不同分辨率的转码过程中剥离出来,这样使得整个一入多出转码系统只需执行一次解封装,解码器和前处理算法,进而大大地降低了转码执行时间。
进一步的,采用本申请实施例的装置,将预分析模块从编码器中剥离出来,这样使得不同分辨率的转码过程复用相同的预分析信息,降低了整个一入多出转码系统的预分析模块的执行次数,进而降低了转码执行时间。
进一步的,采用本申请实施例的装置,利用解码器输出信息,选择给定的分辨率集合中选择合适的预分析视频分辨率,进而提高了整个一入多出转码系统的编码效率。
相应的,本申请实施例还提供一种电子设备,该电子设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。或者,电子设备可以为服务器。
如图11所示,图11为本申请实施例提供的电子设备的结构示意图。该电子设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或单元,以及调用存储在存储器402内的数据,执行电子设备400的各种功能和处理数据。处理器401可以是处理器CPU、图形处理器GPU、网络处理器(Network Processor,NP)等,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。
在本申请实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,例如:
对目标视频进行解码,得到视频帧的解码信息;
基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;
基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息;
调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。
进一步的,运行存储在存储器402中的应用程序,从而实现的各种功能,还可以参见前述实施例中的描述,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图11所示,电子设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图11中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。
射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
音频电路405可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一电子设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。
输入单元406可用于接收输入目标视频。
电源407用于给电子设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图11中未示出,电子设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行本申请实施例所提供的任一种视频转码方法。例如,该计算机程序可以执行如下视频转码方法的步骤:
对目标视频进行解码,得到视频帧的解码信息;
基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;
基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息;
调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。进一步的,上述方法步骤的细化步骤,还可以参见前述实施例中的描述,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种视频转码方法,因此,可以实现本申请实施例所提供的任一种视频转码方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
根据本申请的一个方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从所述计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行上述实施例中的各种可选实现方式中提供的方法。
在上述视频转码装置、计算机可读存储介质、电子设备、计算机程序产品实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的视频转码装置、计算机可读存储介质、计算机程序产品、电子设备及其相应单元的具体工作过程及可带来的有益效果,可以参考如上实施例中视频转码方法的说明,具体在此不再赘述。
以上对本申请实施例所提供的一种视频转码方法、装置、电子设备、计算机可读存储介质以及计算机程序产品进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (17)
1.一种视频转码方法,其特征在于,包括:
对目标视频进行解码,得到视频帧的解码信息;
基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;
基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息;
调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。
2.根据权利要求1所述的视频转码方法,其特征在于,在同一线程中进行前处理和预分析,所述线程包括前处理模块和预分析模块,所述方法还包括:
调用所述线程的前处理模块,基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;
调用所述线程的预分析模块,基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息。
3.根据权利要求2所述的视频转码方法,其特征在于,所述方法还包括:
将所述视频帧显示数据存储到解码YUV队列中,以及将所述预分析信息存储到预分析队列中。
4.根据权利要求1所述的视频转码方法,其特征在于,所述调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,包括:
调用多个转码模块;
针对每个所述转码模块,按照所述转码模块的转码流程对所述视频帧显示数据进行转码,所述转码流程配置有多个处理阶段;
当所述转码流程执行到编码器处理阶段时,基于所述预分析信息以及前一处理阶段输出的数据进行编码处理,得到编码处理结果;
基于所述转码流程,对所述编码处理结果进行转码,得到转码后视频。
5.根据权利要求1所述的视频转码方法,其特征在于,不同的所述转码模块存在以下的至少一个不同:
所述转码模块使用的编码器、转码后视频的码率和转码后视频的分辨率。
6.根据权利要求1至5任一项所述的视频转码方法,其特征在于,所述基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息,包括:
基于所述解码信息,确定对所述目标视频进行预分析的目标分辨率;
基于所述目标分辨率和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息。
7.根据权利要求6所述的视频转码方法,其特征在于,所述基于所述解码信息,确定对所述目标视频进行预分析的目标分辨率,包括:
从所述解码信息中获取目标视频帧的参数信息;
基于所述目标视频帧的参数信息,确定所述目标视频帧的复杂度;
以与所述复杂度对应的分辨率作为对所述目标视频进行预分析的目标分辨率。
8.根据权利要求7所述的视频转码方法,其特征在于,所述目标视频帧的参数信息包括目标视频帧的帧级量化参数、所述目标视频帧的码率以及所述目标视频帧中每一编码块的量化参数;
所述基于所述目标视频帧的参数信息,确定所述目标视频帧的复杂度,包括:
根据所述目标视频帧的帧级量化参数以及所述目标视频帧中每一编码块的量化参数,确定所述目标视频帧的量化步长参数;
基于所述目标视频帧的码率以及所述目标视频帧的量化步长参数,确定所述目标视频帧的复杂度。
9.根据权利要求8所述的视频转码方法,其特征在于,所述基于所述目标视频帧的码率以及所述目标视频帧的量化步长参数,确定所述目标视频帧的复杂度,包括:
基于所述目标视频帧的码率以及所述目标视频帧的量化步长参数,确定所述目标视频帧的第一特征;
根据所述目标视频帧的第一特征,确定所述目标视频帧的复杂度。
10.根据权利要求7所述的视频转码方法,其特征在于,所述目标视频帧的参数包括目标视频帧中每一编码块的运动矢量信息;
所述基于所述目标视频帧的参数信息,确定所述目标视频帧的复杂度,包括:
根据所述目标视频帧中每一编码块的运动矢量信息,确定所述目标视频帧的平均运动矢量信息;
根据所述平均运动矢量信息,确定所述目标视频帧的复杂度。
11.根据权利要求10所述的视频转码方法,其特征在于,所述根据所述平均运动矢量信息,确定所述目标视频帧的复杂度,包括:
根据所述平均运动矢量信息,确定第二特征;
根据所述第二特征,确定所述目标视频帧的复杂度。
12.根据权利要求10至11任一项所述的视频转码方法,其特征在于,所述方法还包括:
根据所述目标视频帧中每一编码块的运动矢量信息,确定所述目标视频帧中每一编码块的运动矢量状态值;
确定所述目标视频帧中运动矢量状态值大于预设状态阈值的编码块总数;
所述根据所述平均运动矢量信息,确定所述目标视频帧的复杂度,包括:
根据所述编码块总数以及所述平均运动矢量信息,确定所述目标视频帧的复杂度。
13.根据权利要求12所述的视频转码方法,其特征在于,所述根据所述编码块总数以及所述平均运动矢量信息,确定所述目标视频帧的复杂度,包括:
根据所述编码块总数,确定第三特征;
根据所述第二特征以及所述第三特征,确定所述目标视频帧的复杂度。
14.根据权利要求6所述的视频转码方法,其特征在于,所述预分析信息包括帧类型和存储信息;
所述基于所述目标分辨率和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息,包括:
基于所述目标分辨率和所述视频帧显示数据,对所述目标视频中的视频帧进行帧类型判断,确定所述视频帧的帧类型;
对所述目标视频中的视频帧进行运动估计,确定所述视频帧的运动矢量并存储,获取所述运动矢量的存储信息;
将所述视频帧的帧类型以及所述存储信息作为所述视频帧的预分析信息。
15.一种视频转码装置,其特征在于,包括:
解码信息获取模块,用于对目标视频进行解码,得到视频帧的解码信息;
视频帧显示数据获取模块,用于基于所述解码信息,对所述目标视频中的视频帧进行前处理,得到所述视频帧的视频帧显示数据;
预分析信息获取模块,用于基于所述解码信息和所述视频帧显示数据,对所述目标视频中的视频帧进行预分析,得到所述视频帧的预分析信息;
转码模块,用于调用多个转码模块,复用所述视频帧显示数据和所述预分析信息进行视频转码,得到多个转码后视频,其中,不同的所述转码模块输出的转码后视频不同。
16.一种电子设备,其特征在于,包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~14中任一项所述视频转码方法的步骤。
17.一种存储介质,其特征在于,包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行权利要求1~14中任一项所述视频转码方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311733998.1A CN117729355A (zh) | 2023-12-15 | 2023-12-15 | 一种视频转码方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311733998.1A CN117729355A (zh) | 2023-12-15 | 2023-12-15 | 一种视频转码方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117729355A true CN117729355A (zh) | 2024-03-19 |
Family
ID=90199348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311733998.1A Pending CN117729355A (zh) | 2023-12-15 | 2023-12-15 | 一种视频转码方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117729355A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618734A (zh) * | 2015-01-29 | 2015-05-13 | 华为技术有限公司 | 相同协议类型下视频码流的转码方法和装置 |
CN109819253A (zh) * | 2017-11-21 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、计算机设备和存储介质 |
CN111277826A (zh) * | 2020-01-22 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法、装置及存储介质 |
CN111327950A (zh) * | 2020-03-05 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 一种视频转码方法及装置 |
CN116916066A (zh) * | 2023-05-31 | 2023-10-20 | 中央广播电视总台 | 一种视频转码方法及装置、电子设备及存储介质 |
CN116962723A (zh) * | 2023-06-27 | 2023-10-27 | 有半岛(北京)信息科技有限公司 | 基于预编码信息复用的多路视频流编码方法及系统 |
-
2023
- 2023-12-15 CN CN202311733998.1A patent/CN117729355A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618734A (zh) * | 2015-01-29 | 2015-05-13 | 华为技术有限公司 | 相同协议类型下视频码流的转码方法和装置 |
CN109819253A (zh) * | 2017-11-21 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、计算机设备和存储介质 |
CN111277826A (zh) * | 2020-01-22 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法、装置及存储介质 |
CN111327950A (zh) * | 2020-03-05 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 一种视频转码方法及装置 |
CN116916066A (zh) * | 2023-05-31 | 2023-10-20 | 中央广播电视总台 | 一种视频转码方法及装置、电子设备及存储介质 |
CN116962723A (zh) * | 2023-06-27 | 2023-10-27 | 有半岛(北京)信息科技有限公司 | 基于预编码信息复用的多路视频流编码方法及系统 |
Non-Patent Citations (1)
Title |
---|
程栋彬;高志勇;张小云;: "基于信息复用的多路x265视频编码系统设计", 电视技术, no. 01, 17 January 2017 (2017-01-17) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810281B (zh) | 丢帧补偿方法、装置、存储介质及终端 | |
KR101634500B1 (ko) | 미디어 작업부하 스케줄러 | |
US20220046261A1 (en) | Encoding method and apparatus for screen sharing, storage medium, and electronic device | |
KR101646958B1 (ko) | 변경된 영역들을 이용한 매체 인코딩 | |
JP2021517388A (ja) | ビデオ符号化のビットレート制御方法、装置、機器、記憶媒体及びプログラム | |
JP7085014B2 (ja) | ビデオ符号化方法並びにその装置、記憶媒体、機器、及びコンピュータプログラム | |
US20190268601A1 (en) | Efficient streaming video for static video content | |
EP4187907A1 (en) | Screen projection data processing method and apparatus | |
US20230305864A1 (en) | Method for Displaying Plurality of Windows and Electronic Device | |
US11887276B2 (en) | Image processing method and display apparatus for adjusting format and resolution of input image in parallel and matrix manner | |
CN111031389B (zh) | 视频处理方法、电子装置和存储介质 | |
CN112328941A (zh) | 基于浏览器的应用投屏方法及相关装置 | |
US10284850B2 (en) | Method and system to control bit rate in video encoding | |
CN117412102A (zh) | 多媒体数据传输方法、装置、介质及设备 | |
CN112199149A (zh) | 界面渲染方法、装置及电子设备 | |
CN117729355A (zh) | 一种视频转码方法、装置、电子设备和存储介质 | |
US10356439B2 (en) | Flexible frame referencing for display transport | |
WO2023000745A1 (zh) | 显示控制方法及相关装置 | |
CN111541940B (zh) | 显示设备的运动补偿方法、装置、电视机及存储介质 | |
CN112686109B (zh) | 离线视频文件的提取方法、装置、电子设备及存储介质 | |
CN114760309A (zh) | 基于云端服务的终端的业务交互方法、装置、设备和介质 | |
JP2021013145A (ja) | 動画像伝送装置、動画像伝送方法 | |
CN117676249B (zh) | 直播视频的处理方法、装置、电子设备及存储介质 | |
CN114222162B (zh) | 视频处理方法、装置、计算机设备及存储介质 | |
CN114938453B (zh) | 视频编码方法、芯片、存储介质及计算机设备 |
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 |