CN113727112B - 视频转码方法、装置、电子设备和介质 - Google Patents
视频转码方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN113727112B CN113727112B CN202111115491.0A CN202111115491A CN113727112B CN 113727112 B CN113727112 B CN 113727112B CN 202111115491 A CN202111115491 A CN 202111115491A CN 113727112 B CN113727112 B CN 113727112B
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- data
- decoding
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000012360 testing method Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开涉及一种视频转码方法、装置、电子设备和介质;其中,该方法包括:对待转码视频数据进行解码处理,得到至少一个视频解码帧;将至少一个视频解码帧存储在目标存储区;从目标存储区获取至少一个视频解码帧,对至少一个视频解码帧进行编码处理,得到转码数据。本公开实施例能够有效提高视频的转码效率。
Description
技术领域
本公开涉及视频转码的技术领域,尤其涉及一种视频转码方法、装置、电子设备和介质。
背景技术
视频转码是将视频数据从一种编码码流(如H.265)转换成另一种编码码流(如H.264)的过程。现有视频转码的实现方式,需要通过中央处理器(Central ProcessingUnit,CPU)将解码视频传输至内存中,再将解码视频传输至显存中,以使得编码器对解码视频进行解码,实现视频的有效转码。
然而,视频数据需要从内存和显存中来回拷贝,导致视频转码的耗时较长,降低转码效率。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种视频转码方法、装置、电子设备和介质。
第一方面,本公开提供了一种视频转码方法,包括:
对待转码视频数据进行解码处理,得到至少一个视频解码帧;
将所述至少一个视频解码帧存储在目标存储区;
从所述目标存储区获取所述至少一个视频解码帧,对所述至少一个视频解码帧进行编码处理,得到转码数据。
可选的,所述目标存储区包括目标显卡的内置空间。
可选的,所述至少一个视频解码帧具有对应的解码时间戳;
所述从所述目标存储区获取所述至少一个视频解码帧,对所述至少一个视频解码帧进行编码处理,得到转码数据,包括:
从所述目标显卡的内置空间中获取所述视频解码帧;
根据每个所述视频解码帧的解码时间戳,基于目标编码器对每个所述视频解码帧进行编码,得到每个所述视频解码帧对应的包含编码时间戳的视频编码帧;
根据每个所述视频编码帧的编码时间戳,对所述视频编码帧进行组合,得到转码数据。
可选的,所述对待转码视频数据进行解码处理,得到至少一个视频解码帧之后,还包括:
接收所述目标视频的多分辨率请求,所述多分辨率请求中包括至少两个分辨率的预设值;
根据每个分辨率的预设值,调整所述视频解码帧,得到目标视频解码帧;
基于编码器对所述目标视频解码帧进行编码,得到目标编码数据。
可选的,所述对待转码视频数据进行解码处理,得到至少一个视频解码帧之前,还包括:
对至少两个候选解码器进行解码测试;
将所述至少两个候选解码器中性能最优的解码器确定为目标解码器;
所述对待转码视频数据进行解码处理,得到至少一个视频解码帧,包括:
基于所述目标解码器对所述待转码视频数据进行解码处理,得到至少一个视频解码帧。
可选的,所述目标编码器通过如下方式确定:
对至少两个候选编码器进行编码测试;
将所述至少两个候选编码器中性能最优的一个编码器确定为目标编码器。
可选的,所述对待转码视频数据进行解码处理之前,还包括:
确定接收到待转码视频的触发操作;
所述得到转码数据之后,还包括:
将所述转码数据发送至前端设备,使所述前端设备播放所述转码数据。
第二方面,本公开提供了一种视频转码装置,包括:
解码模块,用于对待转码视频数据进行解码处理,得到至少一个视频解码帧;
存储模块,用于将所述至少一个视频解码帧存储在目标存储区;
编码模块,用于从所述目标存储区获取所述至少一个视频解码帧,对所述至少一个视频解码帧进行编码处理,得到转码数据。
可选的,所述目标存储区包括目标显卡的内置空间。
可选的,所述至少一个视频解码帧具有对应的解码时间戳;
编码模块,具体用于:
从所述目标显卡的内置空间中获取所述视频解码帧;
根据每个所述视频解码帧的解码时间戳,基于目标编码器对每个所述视频解码帧进行编码,得到每个所述视频解码帧对应的包含编码时间戳的视频编码帧;
根据每个所述视频编码帧的编码时间戳,对所述视频编码帧进行组合,得到转码数据。
可选的,还包括:接收模块和调整模块;
接收模块,用于接收所述目标视频的多分辨率请求,所述多分辨率请求中包括至少两个分辨率的预设值;
调整模块,用于根据每个分辨率的预设值,调整所述视频解码帧,得到目标视频解码帧;
编码模块,还用于基于编码器对所述目标视频解码帧进行编码,得到目标编码数据。
可选的,还包括:测试模块和确定模块;
测试模块,用于对至少两个候选解码器进行解码测试;
确定模块,用于将所述至少两个候选解码器中性能最优的解码器确定为目标解码器;
解码模块,具体用于:
基于所述目标解码器对所述待转码视频数据进行解码处理,得到至少一个视频解码帧。
可选的,确定模块,还用于对至少两个候选编码器进行编码测试;将所述至少两个候选编码器中性能最优的一个编码器确定为目标编码器。
可选的,还包括:发送模块;
确定模块,还用于确定接收到待转码视频的触发操作;
发送模块,用于将所述转码数据发送至前端设备,使所述前端设备播放所述转码数据。
第三方面,本公开还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例中的任一种所述的视频转码方法。
第四方面,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例中的任一种所述的视频转码方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:该方法应用于图形处理器中,通过对待转码视频数据进行解码处理,得到至少一个视频解码帧;将至少一个视频解码帧存储在图形处理器的目标存储区中,在需要编码时,可直接从目标存储区获取至少一个视频解码帧,以对至少一个视频解码帧进行编码处理,得到转码数据。从而,有效节省视频数据需要从不同存储区进行重复拷贝的问题,有效提高了转码效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种视频转码方法的流程示意图;
图2是本公开实施例提供的一种转码过程的逻辑关系图;
图3是本公开实施例提供的另一种转码过程的逻辑关系图;
图4是本公开实施例提供的另一种视频转码方法的流程示意图;
图5是本公开实施例提供的一种视频转码装置的结构示意图;
图6是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
视频转码是指将已经采用一种压缩编码的视频码流转换成另一种压缩编码的视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。视频转码在本质上可理解为一个先对视频数据进行先解码,再对解码结果进行编码的过程,因此,转换前后的视频码流可能遵循相同的视频编码标准,也可能不遵循相同的视频编码标准。
视频数据可展示在浏览器中,用于在用户触发该视频数据时,浏览器后端可基于播放插件对视频数据进行转码操作。
举例而言,展示在浏览器中的视频数据为H.265码流,但浏览器中播放插件支持的是H.264码流,因此,用户在浏览器中点击该视频数据时,浏览器后端需要对该视频数据进行转码操作,以将视频数据从H.265码流转码至H.264码流,便于浏览器对该视频数据进行有效播放。
现有的视频转码方式,主要采用CPU实现,如通过将视频数据从不同的存储区来回拷贝的方式,以将视频数据传输至下一个操作模块,以实现视频数据的有效转码。但视频数据来回拷贝的操作会导致转码效率低下。
基于此,本实施例公开的视频转码方法可应用于图形处理器中,通过对待转码视频数据进行解码处理,得到至少一个视频解码帧;将至少一个视频解码帧存储在图形处理器的目标存储区中,在需要编码时,可直接从目标存储区获取至少一个视频解码帧,以对至少一个视频解码帧进行编码处理,得到转码数据。从而,有效节省视频数据需要从不同存储区进行重复拷贝的问题,有效提高了转码效率。
图1是本公开实施例提供的一种视频转码方法的流程示意图。本实施例可适用于对视频数据进行转码的情况。本实施例方法可由视频转码装置来执行,该装置可采用硬件/或软件的方式来实现,并可配置于电子设备中。可实现本申请任意实施例所述的视频转码方法。如图1所示,该方法具体包括如下:
S110、对待转码视频数据进行解码处理,得到至少一个视频解码帧。
其中,待转码视频数据可为浏览器页面中展示的一个或多个视频对应的数据。多个待转码视频数据可展示在浏览器的同一个页面中,或者,多个待转码视频数据可展示在浏览器的多个不同页面中。
举例而言,待转码视频数据为浏览器的第一页面中展示的第一视频的数据,或者,待转码视频数据可为浏览器的第一页面中展示的第二视频的数据,其中,第一视频与第二视频可为第一页面中的不同视频。
或者,待转码视频数据为浏览器的第三页面中展示的第三视频的数据和第四页面中展示的第四视频的数据。其中,第三视频与第四视频可为不同页面中的不同视频,第三视频与第四视频也可为不同页面中的相同视频。
需要说明的是,本实施例中的待转码视频数据的数量为一个以上时,可在图形处理器(Graphics Processing Unit,GPU)中分别对每个待转码视频数据进行并行处理。
其中,可为每个待转码视频数据分配一个GPU,并建立待转码视频数据的标识和分配的GPU的索引号标识之间的关联关系,便于通过多个GPU对多个待转码视频数据进行并行处理。
另外,待转码视频数据的标识可为数据名称、编号等,GPU的索引号标识可为数字、字母等。在GPU的索引号标识为数字的情况下,默认状态,待转码视频数据的转码操作均可分配给索引号标识为0的GPU进行转码执行。具体可使用以下命令获取系统中所有GPU的存储列表及其对应的索引号标识:
基于GPU并行处理的测试结果表明,用户模式的耗时从1.15降低至0.79,CPU使用率降低至27%。
另外,在接收到多个待转码视频数据的转码操作后,可基于用户之间的优先级,对待转码视频数据进行转码操作,从而,基于多优先级能够很好地优化用户在浏览器查看视频的体验度。
其中,可通过GPU中自带的一个解码器对待转码视频数据进行解码操作,得到至少一个视频解码帧。
举例而言,在待转码视频数据对应H.265码流的情况下,则可采用一个支持H.265码流的解码器对待转码视频数据进行解码。
基于上述实施例的描述,可选的,在对待转码视频数据进行解码处理,得到至少一个视频解码帧之前,本实施例方法还包括:
对至少两个候选解码器进行解码测试;
将至少两个候选解码器中性能最优的解码器确定为目标解码器;
对待转码视频数据进行解码处理,得到至少一个视频解码帧,包括:
基于目标解码器对待转码视频数据进行解码处理,得到至少一个视频解码帧。
其中,GPU中会包含多个解码器,目标解码器为多个解码器中的一个能够支持待转码视频数据有效进行解码的解码器。
可通过对GPU中自带的每个解码器进行性能测试,得到性能最优的一个解码器,作为用于解码待转码视频数据的解码器。
从而,通过从多个解码中选择出性能最优的解码器作为目标解码器,对待转码视频数据进行解码操作,使得GPU能够有效快速的实现待转码视频数据的解码,节省待转码视频数据的解码时间。
S120、将至少一个视频解码帧存储在目标存储区。
其中,目标存储区为GPU中的一个存储空间,可用于对视频数据进行有效存储,并且可实现该视频数据从解码器与编码器之间的数据传输。
其中,目标存储区可包括目标显卡的内置空间,显卡的内置空间中能够对多个视频解码帧进行有效存储,并且能够直接对接解码器和编码器,便于解码器可直接将解码后的视频解码帧存储在显卡的内置空间中,也能够使得编码器直接从显卡的内置空间中获取视频解码帧进行编码操作。从而,在目标显卡的内置空间中实现解码器和编码器之间数据的有效传递。
需要说明的是,在显卡的内置空间中,可对多个视频解码帧进行区分独立存储,便于编码器对视频解码帧进行识别获取。
举例而言,可在显卡的内置空间中,基于一个待转码视频数据对应的每个视频解码帧的标识进行独立存储,也可分别基于多个待转码视频数据对应的每个视频解码帧的标识进行独立存储,其中,视频解码帧的标识可为数字、字母、或者数字和字母的组合等。
需要说明的是,分别基于多个待转码视频数据对应的每个视频解码帧的标识进行独立存储时,可根据每个待转码视频数据的标识,对其对应的每个视频解码帧进行独立存储,便于有效区分不同待转码视频数据对应的视频解码帧。其中,目标视频的标识可为数字、字母、或者数字和字母的组合等。
相关技术中,待转码视频数据的转码操作的实现逻辑可参见图2示例性所示。待转码视频数据(如第一视频编码码流包括的单帧视频数据)在内存和显存(如显卡的内置空间)通过高速串行计算机扩展总线标准(Peripheral Component Interconnect Express,PCIE)桥来回拷贝,以实现对待转码视频数据的转码。
其中,PCIE属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽。其主要优势就是,数据传输速率高。PCIE包含多种规格,从PCIE x1到PCIE x32,能满足一定时间内出现的低速设备和高速设备的需求。PCIE最新的接口是PCIE 3.0接口,其比特率为8Gbps,约为上一代产品带宽的两倍,并且包含发射器和接收器均衡、时钟数据恢复等一系列重要的新功能,用以改善数据传输和数据保护性能。
其中,第一视频编码码流输入后,解码器对第一视频编码码流中的每一帧视频数据进行解码,并存储在显存中,编码器在进行编码时,需要经过内存获取显存中存储的每一帧视频数据,对其进行编码操作,得到最后的编码数据,以得到转码数据。
而本方案中,待转码视频数据的转码操作的实现逻辑可参见图3示例性所示。待转码视频数据(如第一视频编码码流包括的单帧视频数据)可存储在GPU的显存(如显卡的内置空间)中,以实现对目标视频的转码。
其中,第一视频编码码流输入后,解码器对第一视频编码码流中的每一帧视频数据进行解码,并存储在GPU的显存中,编码器在进行编码时,可直接从GPU的显存获取每一帧视频数据,对其进行编码操作,得到最后的编码数据。从而,去掉了显存和内存的拷贝环节,减少转码的耗时。
S130、从目标存储区获取至少一个视频解码帧,对至少一个视频解码帧进行编码处理,得到转码数据。
其中,可通过GPU中自带的一个解码器,对至少一个视频解码帧进行解码处理,以得到待转码视频数据经过转码处理后的转码数据。
举例而言,在视频解码帧为对H.265码流进行解码得到的视频帧时,相对应的,对视频解码帧进行编码的编码器,可为GPU中自带的一个用于编码不同于待转码视频数据对应的编码码流的另一种编码码流(如H.264码流)的编码器。
本公开提供的视频转码方法,应用于图形处理器中,通过对待转码视频数据进行解码处理,得到至少一个视频解码帧;将至少一个视频解码帧存储在图形处理器的目标存储区中,在需要编码时,可直接从目标存储区获取至少一个视频解码帧,以对至少一个视频解码帧进行编码处理,得到转码数据。从而,有效节省视频数据需要从不同存储区进行重复拷贝的问题,有效提高了转码效率。
基于上述实施例的描述,可选的,对待转码视频数据进行解码处理之前,还包括:
确定接收到待转码视频的触发操作;
得到转码数据之后,还包括:
将转码数据发送至前端设备,使前端设备播放转码数据。
其中,用户可通过触发浏览器中的一个待转码视频对应的触发区域/触发控件,对其进行视频观看,浏览器后端可将待转码视频的触发操作作为该待转码视频进行转码的一个触发机制。
其中,浏览器后端可实时监测浏览器的每个页面中展示的视频,以实现对每个视频对应的触发操作的及时响应。
其中,触发操作可包括:单击、双击等。本公开对此不做限定。
需要说明的是,待转码视频数据在进行转码完成后,可基于对待转码视频的触发操作的响应,将转码数据发送至前端设备,使前端设备播放该转码数据对应的码流。
其中,转码数据可为对应于待转码视频数据的转码后得到视频数据,可直接在前端设备中进行显示。前端设备可为浏览器。
在前端设备播放该转码数据对应的码流之前,可先确定出转码数据对应的播放通道,将转码数据对应的码流在对应的播放通道中进行显示,便于转码数据对应显示待转码视频数据。
本实施例通过浏览器后端实时监测浏览器的每个页面中的视频,并将待转码视频的触发操作作为目标视频转码的机制,能够使得浏览器及时响应用户的触发操作,从而,降低用户的等待时长,以便实时快速的向用户播放转码后的视频数据。
图4是本公开实施例提供的另一种视频转码方法的流程示意图。本实施例是在上述实施例的基础上,其中,至少一个视频解码帧具有对应的解码时间戳;S130的一种可能的实现方式如下:
S1301、从目标显卡的内置空间中获取视频解码帧。
其中,在进行编码时,可直接从GPU显卡的内置空间中获取视频解码帧中的视频帧数据。
需要说明的是,视频帧数据的获取方式可包括多种实现方式。
在一些实施例中,可一次性从目标显卡的内置空间中获取视频解码帧中的全部视频帧数据。
在另一些实施例中,可从目标显卡的内置空间中获取视频解码帧中的当前视频帧数据。
S1302、根据每个视频解码帧的解码时间戳,基于目标编码器对每个视频解码帧进行编码,得到每个视频解码帧对应的包含编码时间戳的视频编码帧。
其中,每个视频解码帧的解码时间戳能够有效反映出该视频解码帧在目标视频中的视频帧排布,便于目标编码器对每个视频解码帧进行顺序编码,得到每个视频解码帧对应的包含编码时间戳的视频编码帧。
其中,编码时间戳为视频解码帧在进行编码时的时间信息,在每个视频解码帧是基于顺序进行解码时,则其对应的解码时间戳也是顺序排布的,相应的,其对应的编码时间戳也是顺序排布的。
结合上述视频帧数据的获取方式,本实施例中编码实现可如下实验方式。
在一些实施例中,从目标存储区获取至少一个视频解码帧,对至少一个视频解码帧进行编码处理,得到转码数据,可包括:
从目标显卡的内置空间中获取至少一个视频解码帧中包括的全部视频解码帧;
基于每个视频解码帧的解码时间戳,根据目标编码器对每个视频解码帧进行编码,得到每个视频解码帧对应的包含编码时间戳的视频编码帧;
根据每个视频编码帧的编码时间戳,对视频编码帧进行组合,得到转码数据。
从而,通过一次性全部获取的方式,获取全部视频解码帧,能够节省单次获取的时间,进一步提高视频转码效率。
在另一些实施例中,从目标存储区获取至少一个视频解码帧,对至少一个视频解码帧进行编码处理,得到转码数据,可包括:
步骤一:从目标显卡的内置空间中获取至少一个视频解码帧中包括的第一视频解码帧;
步骤二:基于第一个视频解码帧的解码时间戳,根据目标编码器对第一视频解码帧进行编码,得到第一视频解码对应的包含编码时间戳的视频编码帧;
重复执行步骤步骤一和步骤步骤二,直至得到至少一个视频解码帧中包括的最后一个视频解码帧对应的包含编码时间戳的视频解码帧;根据每个视频编码帧的编码时间戳,对视频编码帧进行组合,得到转码数据。
其中,第一视频解码帧为视频解码帧中的当前解码帧,如首次获取,则第一视频解码帧为视频解码帧中的第一个解码帧,如上一个解码帧为视频解码帧中的第一个解码帧,则第一解码帧为视频解码帧中的第二个解码帧。
从而,通过分次获取的方式,依次获取当前需要的视频解码帧,避免解码帧的累计存储影响后续处理。
在本实施例中,可选的,目标编码器通过如下方式确定:
对至少两个候选编码器进行编码测试;
将至少两个候选编码器中性能最优的一个编码器确定为目标编码器。
其中,GPU中会包含多个编码器。目标编码器为多个编码器中的一个能够支持视频解码帧的编码器。从而,降低视频解码帧的编码耗时。
对GPU中自带的每个编码器进行性能测试,得到性能最优的一个编码器,作为用于编码视频解码帧的编码器。从而,使得GPU能够有效快速的实现视频解码帧的编码。
S1303、根据每个视频编码帧的编码时间戳,对视频编码帧进行组合,得到转码数据。
其中,能够基于视频编码帧的编码时间戳的先后排布,对多个视频编码帧进行顺序组合,得到顺序对应于目标视频中的视频帧的顺序,从而,使得编码数据展示的视频帧能够完整对应于待转码视频数据中的视频帧。
基于上述实施例的描述,本实施例还能够根据一个待转码视频数据的输入,输出多个分辨率下对应的编码数据。
在得到至少一个视频解码帧之后,可选的,本实施例方法还包括:
接收目标视频的多分辨率请求,多分辨率请求中包括至少两个分辨率的预设值;
根据每个分辨率的预设值,调整视频解码帧,得到目标视频解码帧;
基于编码器对目标视频解码帧进行编码,得到目标编码数据。
示例性地,在GPU中调整输出的编码数据的分辨率时,具有如下实现方式:
在一些实施例中,可通过npp_scale过滤器对其进行滤波超级采样,调整视频解码帧的大小,来生成多个分辨率对应的编码数据,实现一对多的转码。对于1:2的转码可参考如下示例1。
其中,可以为scale_npp定义插值算法作为附加参数。默认情况下可使用三次插值,在缩小时使用超级采样算法以获得最佳质量,具体可参阅以下示例2。
经过上述示例进行测试结果表明,采用超级采样算法之后,用户模式的耗时13s降低到1.15,继续降低91%,CPU的使用率降至30%。
图5是本公开实施例提供的一种视频转码装置的结构示意图;该装置配置于电子设备中,可实现本申请任意实施例所述的视频转码方法。该装置具体包括如下:
解码模块510,用于对待转码视频数据进行解码处理,得到至少一个视频解码帧;
存储模块520,用于将所述至少一个视频解码帧存储在目标存储区;
编码模块530,用于从所述目标存储区获取所述至少一个视频解码帧,对所述至少一个视频解码帧进行编码处理,得到转码数据。
在本实施例中,可选的,所述目标存储区包括目标显卡的内置空间。
可选的,所述至少一个视频解码帧具有对应的解码时间戳;
编码模块530,具体用于:
从所述目标显卡的内置空间中获取所述视频解码帧;
根据每个所述视频解码帧的解码时间戳,基于目标编码器对每个所述视频解码帧进行编码,得到每个所述视频解码帧对应的包含编码时间戳的视频编码帧;
根据每个所述视频编码帧的编码时间戳,对所述视频编码帧进行组合,得到转码数据。
在本实施例中,可选的,还包括:接收模块和调整模块;
接收模块,用于接收所述目标视频的多分辨率请求,所述多分辨率请求中包括至少两个分辨率的预设值;
调整模块,用于根据每个分辨率的预设值,调整所述视频解码帧,得到目标视频解码帧;
编码模块530,还用于基于编码器对所述目标视频解码帧进行编码,得到目标编码数据。
在本实施例中,可选的,还包括:测试模块和确定模块;
测试模块,用于对至少两个候选解码器进行解码测试;
确定模块,用于将所述至少两个候选解码器中性能最优的解码器确定为目标解码器;
解码模块510,具体用于:
基于所述目标解码器对所述待转码视频数据进行解码处理,得到至少一个视频解码帧。
在本实施例中,可选的,确定模块,还用于对至少两个候选编码器进行编码测试;将所述至少两个候选编码器中性能最优的一个编码器确定为目标编码器。
在本实施例中,可选的,还包括:发送模块;
确定模块,还用于确定接收到待转码视频的触发操作;
发送模块,用于将所述转码数据发送至前端设备,使所述前端设备播放所述转码数据。
通过本发明实施例的视频转码装置,通过对待转码视频数据进行解码处理,得到至少一个视频解码帧;将至少一个视频解码帧存储在图形处理器的目标存储区中,在需要编码时,可直接从目标存储区获取至少一个视频解码帧,以对至少一个视频解码帧进行编码处理,得到转码数据。从而,有效节省视频数据需要从不同存储区进行重复拷贝的问题,有效提高了转码效率。
本发明实施例所提供的视频转码装置可执行本发明任意实施例所提供的视频转码方法,具备执行方法相应的功能模块和有益效果。
图6是本公开实施例提供的一种电子设备的结构示意图。如图6所示,该电子设备包括处理器610、存储器620、输入装置630和输出装置640;电子设备中处理器610的数量可以是一个或多个,图6中以一个处理器610为例;电子设备中的处理器610、存储器620、输入装置630和输出装置640可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器620作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的视频转码方法对应的程序指令/模块。处理器610通过运行存储在存储器620中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现本发明实施例所提供的视频转码方法。
存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器620可进一步包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置630可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,可以包括键盘、鼠标等。输出装置640可包括显示屏等显示设备。
本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现本发明实施例所提供的视频转码方法。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的视频转码方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种视频转码方法,其特征在于,应用于图形处理器中,所述方法包括:
对待转码视频数据进行解码处理,得到至少一个视频解码帧;
将所述至少一个视频解码帧存储在目标存储区;
从所述目标存储区获取所述至少一个视频解码帧,对所述至少一个视频解码帧进行编码处理,得到转码数据;
所述目标存储区包括目标显卡的内置空间;
所述至少一个视频解码帧具有对应的解码时间戳;
所述从所述目标存储区获取所述至少一个视频解码帧,对所述至少一个视频解码帧进行编码处理,得到转码数据,包括:
一次性从所述目标显卡的内置空间中获取所述视频解码帧中的全部视频帧数据;
根据每个所述视频解码帧的解码时间戳,基于目标编码器对每个所述视频解码帧进行编码,得到每个所述视频解码帧对应的包含编码时间戳的视频编码帧;
根据每个所述视频编码帧的编码时间戳,对所述视频编码帧进行组合,得到转码数据。
2.根据权利要求1所述的方法,其特征在于,所述对待转码视频数据进行解码处理,得到至少一个视频解码帧之后,还包括:
接收目标视频的多分辨率请求,所述多分辨率请求中包括至少两个分辨率的预设值;
根据每个分辨率的预设值,调整所述视频解码帧,得到目标视频解码帧;
基于编码器对所述目标视频解码帧进行编码,得到目标编码数据。
3.根据权利要求1所述的方法,其特征在于,所述对待转码视频数据进行解码处理,得到至少一个视频解码帧之前,还包括:
对至少两个候选解码器进行解码测试;
将所述至少两个候选解码器中性能最优的解码器确定为目标解码器;
所述对待转码视频数据进行解码处理,得到至少一个视频解码帧,包括:
基于所述目标解码器对所述待转码视频数据进行解码处理,得到至少一个视频解码帧。
4.根据权利要求1所述的方法,其特征在于,所述目标编码器通过如下方式确定:
对至少两个候选编码器进行编码测试;
将所述至少两个候选编码器中性能最优的一个编码器确定为目标编码器。
5.根据权利要求1所述的方法,其特征在于,所述对待转码视频数据进行解码处理之前,还包括:
确定接收到待转码视频的触发操作;
所述得到转码数据之后,还包括:
将所述转码数据发送至前端设备,使所述前端设备播放所述转码数据。
6.一种视频转码装置,其特征在于,所述装置包括:
解码模块,用于对待转码视频数据进行解码处理,得到至少一个视频解码帧,所述至少一个视频解码帧具有对应的解码时间戳;
存储模块,用于将所述至少一个视频解码帧存储在目标存储区,所述目标存储区包括目标显卡的内置空间;
编码模块,用于一次性从所述目标显卡的内置空间中获取所述视频解码帧中的全部视频帧数据,对所述至少一个视频解码帧进行编码处理,得到转码数据;从所述目标显卡的内置空间中获取所述视频解码帧;根据每个所述视频解码帧的解码时间戳,基于目标编码器对每个所述视频解码帧进行编码,得到每个所述视频解码帧对应的包含编码时间戳的视频编码帧;根据每个所述视频编码帧的编码时间戳,对所述视频编码帧进行组合,得到转码数据。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1~5中任一所述的视频转码方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~5中任一所述的视频转码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111115491.0A CN113727112B (zh) | 2021-09-23 | 2021-09-23 | 视频转码方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111115491.0A CN113727112B (zh) | 2021-09-23 | 2021-09-23 | 视频转码方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113727112A CN113727112A (zh) | 2021-11-30 |
CN113727112B true CN113727112B (zh) | 2024-04-16 |
Family
ID=78684776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111115491.0A Active CN113727112B (zh) | 2021-09-23 | 2021-09-23 | 视频转码方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113727112B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647970A (zh) * | 2013-12-02 | 2014-03-19 | 天脉聚源(北京)传媒科技有限公司 | 一种分布式转码的音视频同步方法及系统 |
CN104980752A (zh) * | 2015-06-11 | 2015-10-14 | 武汉大千信息技术有限公司 | 利用cpu和gpu实现多路自适应并行转码的方法及系统 |
WO2017050116A1 (zh) * | 2015-09-25 | 2017-03-30 | 网宿科技股份有限公司 | 一种基于gpu的完全硬件转码的方法和系统 |
CN108063953A (zh) * | 2017-12-28 | 2018-05-22 | 武汉烽火众智数字技术有限责任公司 | 视频转码网关、监控系统以及视频转码网关的转码方法 |
CN110602505A (zh) * | 2018-06-13 | 2019-12-20 | 贵州白山云科技股份有限公司 | 一种基于多gpu的视频转码方法及装置 |
CN111556365A (zh) * | 2020-05-20 | 2020-08-18 | 浩云科技股份有限公司 | 视频转码方法和装置 |
CN111629214A (zh) * | 2020-06-05 | 2020-09-04 | 北京百度网讯科技有限公司 | 视频文件的转码方法、装置、设备和介质 |
CN113423011A (zh) * | 2021-08-23 | 2021-09-21 | 南斗六星系统集成有限公司 | 一种任意格式视频文件的转码方法 |
-
2021
- 2021-09-23 CN CN202111115491.0A patent/CN113727112B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647970A (zh) * | 2013-12-02 | 2014-03-19 | 天脉聚源(北京)传媒科技有限公司 | 一种分布式转码的音视频同步方法及系统 |
CN104980752A (zh) * | 2015-06-11 | 2015-10-14 | 武汉大千信息技术有限公司 | 利用cpu和gpu实现多路自适应并行转码的方法及系统 |
WO2017050116A1 (zh) * | 2015-09-25 | 2017-03-30 | 网宿科技股份有限公司 | 一种基于gpu的完全硬件转码的方法和系统 |
CN108063953A (zh) * | 2017-12-28 | 2018-05-22 | 武汉烽火众智数字技术有限责任公司 | 视频转码网关、监控系统以及视频转码网关的转码方法 |
CN110602505A (zh) * | 2018-06-13 | 2019-12-20 | 贵州白山云科技股份有限公司 | 一种基于多gpu的视频转码方法及装置 |
CN111556365A (zh) * | 2020-05-20 | 2020-08-18 | 浩云科技股份有限公司 | 视频转码方法和装置 |
CN111629214A (zh) * | 2020-06-05 | 2020-09-04 | 北京百度网讯科技有限公司 | 视频文件的转码方法、装置、设备和介质 |
CN113423011A (zh) * | 2021-08-23 | 2021-09-21 | 南斗六星系统集成有限公司 | 一种任意格式视频文件的转码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113727112A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108282164B (zh) | 一种数据编码及解码方法和装置 | |
JP2008541503A (ja) | サーバ/クライアント構造に基づく遠隔表示処理方法 | |
CN102156611A (zh) | 创建动画消息的方法和装置 | |
CN105187845B (zh) | 视频数据解码装置及解码方法 | |
CN106170922A (zh) | 数据的源编码和解码的设备和方法 | |
US11196868B2 (en) | Audio data processing method, server, client and server, and storage medium | |
WO2018040427A1 (zh) | 屏幕界面共享方法和系统 | |
CN113727112B (zh) | 视频转码方法、装置、电子设备和介质 | |
US20140009563A1 (en) | Non-video codecs with video conferencing | |
CN102687509B (zh) | 使用jpeg-ls的可调节压缩 | |
JP2012504362A (ja) | リッチメディアサービスを提供する方法及び装置 | |
CN113301290A (zh) | 视频数据处理方法及视频会议终端 | |
EP4294021A1 (en) | Data processing method and apparatus, computer device and storage medium | |
CN116450149B (zh) | 一种硬件解码方法、设备及存储介质 | |
CN106791855B (zh) | 一种降低坐席管理系统成本的方法及系统 | |
CN115225615B (zh) | 虚幻引擎像素流送方法及装置 | |
CN116668691A (zh) | 一种图片压缩传输方法、装置及终端设备 | |
CN108668170B (zh) | 图像信息处理方法及装置、存储介质 | |
CN114173154B (zh) | 视频处理方法及系统 | |
CN102047662A (zh) | 编码器 | |
CN115334313A (zh) | 一种视频解码方法、装置、设备及存储介质 | |
CN114938408A (zh) | 一种云手机的数据传输方法、系统、设备及介质 | |
CN101622873A (zh) | 由服务器播送音频和视频数据序列的方法 | |
CN104518850B (zh) | 将参考模板同步到数据流的方法和信息处理系统 | |
CN113157226A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |