CN117082243A - 视频编码方法、装置、计算机设备和存储介质 - Google Patents
视频编码方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117082243A CN117082243A CN202210501878.8A CN202210501878A CN117082243A CN 117082243 A CN117082243 A CN 117082243A CN 202210501878 A CN202210501878 A CN 202210501878A CN 117082243 A CN117082243 A CN 117082243A
- Authority
- CN
- China
- Prior art keywords
- video
- sequence
- frame
- code rate
- coding
- 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 71
- 239000012160 loading buffer Substances 0.000 claims abstract description 142
- 239000000872 buffer Substances 0.000 claims abstract description 73
- 238000004590 computer program Methods 0.000 claims abstract description 24
- 238000013139 quantization Methods 0.000 claims description 148
- 238000011056 performance test Methods 0.000 claims description 11
- 238000000638 solvent extraction Methods 0.000 claims description 8
- 238000013441 quality evaluation Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 11
- 238000013210 evaluation model Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- BTCSSZJGUNDROE-UHFFFAOYSA-N gamma-aminobutyric acid Chemical compound NCCCC(O)=O BTCSSZJGUNDROE-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000002452 interceptive effect Effects 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
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/177—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/234363—Processing 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 altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/234381—Processing 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 altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请涉及一种视频编码方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取待编码视频的帧序列;将帧序列划分为加载缓冲子序列和加载缓冲子序列之后的视频帧子序列;加载缓冲子序列的帧数小于视频帧子序列的帧数;确定加载缓冲子序列所对应的第一编码码率,并确定视频帧子序列所对应的第二编码码率;第一编码码率小于第二编码码率;对帧序列进行编码时,对加载缓冲子序列的视频帧按照第一编码码率进行编码,对视频帧子序列的视频帧按照第二编码码率进行编码,得到目标视频。采用本方法不仅实现视频编码,而且能够提升编码的灵活性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种视频编码方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的发展,用户通过视频播放应用观看视频的需求也越来越多。目前,主要是通过视频采集设备来采集视频,比如,可通过录像机来对拍摄场景进行拍摄,从而得到视频。
在视频的传输播放过程中,若视频的体积过大,则会耗费较多的带宽资源,以及在视频的存储过程中,也会占用较多的存储空间。因此,如何对视频进行编码压缩,以得到压缩后的目标视频就成为了亟需解决的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够对视频进行编码的视频编码方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种视频编码方法,所述方法包括:
获取待编码视频的帧序列;
将所述帧序列划分为加载缓冲子序列和所述加载缓冲子序列之后的视频帧子序列;所述加载缓冲子序列的帧数小于所述视频帧子序列的帧数;
确定所述加载缓冲子序列所对应的第一编码码率,并确定所述视频帧子序列所对应的第二编码码率;所述第一编码码率小于所述第二编码码率;
对所述帧序列进行编码时,对所述加载缓冲子序列的视频帧按照所述第一编码码率进行编码,对所述视频帧子序列的视频帧按照所述第二编码码率进行编码,得到目标视频。
第二方面,本申请还提供了一种视频编码装置,所述装置包括:
子序列划分模块,用于获取待编码视频的帧序列;将所述帧序列划分为加载缓冲子序列和所述加载缓冲子序列之后的视频帧子序列;所述加载缓冲子序列的帧数小于所述视频帧子序列的帧数;
码率确定模块,用于确定所述加载缓冲子序列所对应的第一编码码率,并确定所述视频帧子序列所对应的第二编码码率;所述第一编码码率小于所述第二编码码率;
视频帧编码模块,用于对所述帧序列进行编码时,对所述加载缓冲子序列的视频帧按照所述第一编码码率进行编码,对所述视频帧子序列的视频帧按照所述第二编码码率进行编码,得到目标视频。
在其中一个实施例中,所述子序列划分模块还包括首视频帧确定模块,用于确定所述帧序列的划分参数,并确定位于所述帧序列首部的首视频帧;以所述首视频帧为基准,并按照所述划分参数对所述帧序列进行划分,得到加载缓冲子序列和视频帧子序列。
在其中一个实施例中,所述划分参数包括帧数量;所述首视频帧确定模块还用于将所述帧序列中的以所述首视频帧为首的连续帧数量的视频帧,作为加载缓冲子序列中的视频帧;将所述帧序列中的位于所述加载缓冲子序列之后的视频帧,作为视频帧子序列中的视频帧。
在其中一个实施例中,所述码率确定模块还包括第一编码码率确定模块,用于确定所述加载缓冲子序列所对应的第一原始编码码率;确定所述加载缓冲子序列所对应的第一码率调整权重;根据所述第一码率调整权重对所述第一原始编码码率进行调整,得到所述加载缓冲子序列所对应的第一编码码率。
在其中一个实施例中,所述第一编码码率确定模块还用于确定所述待编码视频的目标量化参数,并根据量化参数与量化步长之间的对应关系,确定与所述目标量化参数相对应的目标量化步长;基于所述目标量化步长对所述加载缓冲子序列进行码率分配,得到所述加载缓冲子序列的第一原始编码码率。
在其中一个实施例中,所述第一编码码率确定模块还用于向播放目标视频的媒体分享平台发送网络性能测试数据;发送的所述网络性能测试数据用于触发所述媒体分享平台返回网络状态数据;基于所述网络状态数据确定所述加载缓冲子序列的第一码率调整权重。
在其中一个实施例中,所述码率确定模块还包括第二编码码率确定模块,用于确定所述视频帧子序列所对应的第二原始编码码率;确定所述视频帧子序列所对应的第二码率调整权重;根据所述第二码率调整权重对所述第二原始编码码率进行调整,得到所述视频帧子序列所对应的第二编码码率。
在其中一个实施例中,所述视频编码装置还用于当所述待编码视频的视频时长大于或等于预设时长阈值时,确定所述帧序列中的待编码视频帧所对应的帧类型;根据所述帧类型确定所述待编码视频帧的初始量化等级参数;根据所述帧序列中的已编码视频帧的实际编码总比特数和期望编码总比特数,对所述初始量化等级参数进行调整,得到目标量化等级参数;通过所述目标量化等级参数得到目标量化参数,并根据所述目标量化参数对所述待编码视频帧进行编码。
在其中一个实施例中,所述视频编码装置还用于当所述待编码视频帧的帧类型为目标类型时,确定所述待编码视频帧的模糊复杂度,根据所述模糊复杂度确定所述待编码视频帧的原始量化等级参数;确定所述原始量化等级参数的准确程度,并根据所述准确程度对所述原始量化等级参数进行调整,得到所述待编码视频帧的初始量化等级参数。
在其中一个实施例中,所述视频编码装置还包括视频发送模块,用于当得到目标视频时,将所述目标视频发送至媒体分享平台;其中,发送的目标视频用于触发所述媒体分享平台展示所述目标视频;所述媒体分享平台包括短视频分享平台;当将所述目标视频发送至所述短视频分享平台时,所述目标视频的视频时长小于或等于预设时长阈值。
在其中一个实施例中,所述视频发送模块还用于确定所述目标视频在所述媒体分享平台中的视频播放信息;根据所述视频播放信息,确定体验质量信息;所述体验质量信息用于对待编码视频的编码方式进行优化。
在其中一个实施例中,所述视频播放信息至少包括目标视频在媒体分享平台中的加载缓冲时间、目标视频的展示画质参数、目标视频的卡顿缓冲时间、目标视频的播放量、目标视频的收藏数量和目标视频的点赞数量中的一种;所述视频发送模块还用于获取预设的体验质量评价模型,并将所述视频播放信息输入至所述体验质量评价模型,得到体验质量信息。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请实施例提供的任一种视频编码方法中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的任一种视频编码方法中的步骤。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的任一种视频编码方法中的步骤。
上述视频编码方法、装置、计算机设备、存储介质和计算机程序产品,通过获取待编视频的帧序列,可对帧序列进行划分,得到加载缓冲子序列和视频帧子序列;通过获取得到加载缓冲子序列和视频帧子序列,可分别确定加载缓冲子序列所对应的第一编码码率和视频帧子序列所对应的第二编码码率,从而基于第一编码码率对加载缓冲子序列进行编码,基于第二编码码率对视频帧子序列进行编码,得到编码后的目标视频。由于可通过不同的编码码率对不同的子序列进行编码,因此,本申请可提升视频编码的灵活性。
此外,由于加载缓冲子序列位于视频帧子序列之前,且第一编码码率小于第二编码码率,因此可基于码率较小的第一编码码率来对加载缓冲子序列进行编码,以降低与加载缓冲子序列相对应的已编码视频文件的体积,进而基于体积降低的已编码视频文件来提升媒体分享平台加载缓冲目标视频的速率。并且,由于加载缓冲子序列的帧数小于视频帧子序列的帧数,因此,可在牺牲较少视频帧的画面清晰度的情况下,提升媒体分享平台加载缓冲目标视频的速率,如此,便可平衡加载缓冲时间与画面清晰度,从而提升了用户体验。
附图说明
图1为一个实施例中视频编码方法的应用环境图;
图2为一个实施例中视频编码方法的流程示意图;
图3为一个实施例中帧序列的获取示意图;
图4为一个实施例中子序列的示意图;
图5为一个实施例中视频帧编码的示意图;
图6为一个实施例中编码参数配置示意图;
图7为一个实施例中视频编码方法的流程示意图;
图8为一个实施例中视频编码方法的整体流程示意图;
图9为一个实施例中视频编码装置的结构框图;
图10为另一个实施例中视频编码装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的视频编码方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。终端102和服务器104均可单独执行本申请的视频编码方法,终端102和服务器104也可协同执行本申请的视频编码方法。下述以终端102和服务器104协同执行为例进行说明。当终端102获取得到待编码视频时,终端102可将待编码视频发送至服务器104,以使服务器104确定待编码视频的帧序列,并确定帧序列中的各子序列各自对应的编码码率。服务器104按照所确定的编码码率对相应子序列进行编码,得到目标视频,并将编码后的目标视频发送至终端102,以使终端102可播放该目标视频。
其中,终端102可以但不限于是各种音视频采集设备、台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,音视频采集设备可为摄像机、录音机、携带有摄像头的手机等,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个实施例中,如图2所示,提供了一种视频编码方法,以该方法应用于计算机设备为例进行说明,计算机设备具体可为图1中的终端或者服务器,包括以下步骤:
S202,获取待编码视频的帧序列。
其中,待编码视频指的是等待进行编码的视频,该待编码视频可为离线视频或者为实时的视频流。帧序列指的是存储有多帧视频帧的序列,由于待编码视频包括有多帧视频帧,因此,可按照视频帧中的时间戳的前后顺序对待编码视频的多帧视频帧进行排序,得到待编码视频的帧序列。
具体地,当计算机设备接收到编码指令时,计算机设备可确定编码指令所指向的待编码视频,并确定待编码视频的帧序列。比如,编码指令中可携带有待编码视频的视频标识,从而计算机设备可获取与视频标识相对应的帧序列。
在其中一个实施例中,待编码视频可为未经编码的原始视频,比如,为在电影拍摄过程中的录像机录制得到的原始视频,也可为经编码压缩后需再次进行编码压缩的视频,比如,为了再次减小视频文件大小的视频。
在其中一个实施例中,参考图3,用户可通过终端中的摄像头拍摄视频,并将拍摄的视频上传至媒体分享平台,从而媒体分享平台可将视频上传至媒体分享平台的后台服务器。其中,媒体分享平台指的是接收上传的视频,并对上传的视频进行播放的平台。用户可通过终端展示该媒体分享平台,并通过展示的媒体分享平台观看视频。当服务器接收到媒体分享平台发送的视频时,服务器可将接收到的视频进行缓存,并将缓存视频的视频标识存储至任务队列。服务器按照视频标识在任务队列中的排列顺序,确定目标视频标识,并将目标视频标识所对应的视频作为待编码视频,从缓存中获取待编码视频的帧序列。图3示出了一个实施例中帧序列的获取示意图。
S204,将帧序列划分为加载缓冲子序列和加载缓冲子序列之后的视频帧子序列;加载缓冲子序列的帧数小于视频帧子序列的帧数。
具体地,当获取得到待编码视频的帧序列时,计算机设备可对帧序列进行划分,得到加载缓冲子序列和视频帧子序列。其中,加载缓冲子序列指的是用以提升视频加载缓冲时间的子序列。视频帧子序列指的是在视频加载缓冲结束后支持视频正常播放的子序列。加载缓冲指的是视频被点击播放至首次显示出画面的过程。容易理解地,当待播放视频的体积越小、且网络带宽越高,则加载缓冲所需的时间就越短;当待播放视频的体积越大、且网络带宽越低,则加载缓冲所需的时间就越长。
在其中一个实施例中,视频帧子序列位于加载缓冲子序列之后,比如,参考图4,图4示出了一个实施例中子序列的示意图。当对帧序列进行划分时,可将帧序列中的前一部分的视频帧划分为加载缓冲子序列,将后续视频帧划分为视频帧子序列,如此,便得到的了两个不同的子序列。
由于加载缓冲子序列在视频帧子序列之前,因此,当在画质和码率之间取一个折中,适当降低加载缓冲子序列中的视频帧的码率时,即可基于适当降低的码率减小对加载缓冲子序列进行编码后所得到的视频文件的体积。由于减小了视频文件的体积,因此能够使得媒体分享平台可以快速加载编码后的加载缓冲子序,进而提升了视频观看秒开速度。
在其中一个实施例中,加载缓冲子序列的帧数小于视频帧子序列的帧数。由于加载缓冲子序列指的是用以提升视频加载缓冲时间的子序列,视频帧子序列指的是在视频加载缓冲结束后支持视频正常播放的子序列,而一般来说,视频的加载缓冲时间小于视频的正常播放时间,因此,加载缓冲子序列所包括的视频帧的数量小于视频帧子序列所包括的视频帧的数量。
S206,确定所加载缓冲子序列所对应的第一编码码率,并确定视频帧子序列所对应的第二编码码率;第一编码码率小于第二编码码率。
其中,编码码率指的是数据传输时单位时间传送的数据位数,该编码码率可用于对视频帧进行编码,使得在预设带宽的范围内,流畅输出编码后的视频。
具体地,计算机设备可获取预设的目标码率,并基于目标码率来确定加载缓冲子序列所对应的第一编码码率和视频帧子序列所对应的第二编码码率。其中,目标码率可为用户预先设置的一个参数值。比如,用户可根据媒体分享平台所规定的码率限制条件来确定目标码率,示例性地,当媒体分享平台规定平均码率为6000kbps时,可将6000kbps作为目标码率。
在其中一个实施例中,由于要提升视频观看的秒开速度,因此,需要在一定程度上降低加载缓冲子序列所对应的第一编码码率,而当加载缓冲完视频之后,即可正常观看视频,因此为了保证后续视频播放清晰度,视频帧子序列所对应的第二编码码率会大于加载缓冲子序列所对应的第一编码码率。
在其中一个实施例中,可确定加载缓冲子序列所对应的第一码率调整权重,并通过第一码率调整权重对目标码率进行调整,得到第一编码码率,比如,将第一码率权重乘以目标码率,得到第一编码码率。第一码率调整权重可为用户预先设置的一个参数值。用户可在编码码率和视频清晰度之间取一个折中,通过平衡编码码率和清晰度的方式来确定第一码率调整权重。
在其中一个实施例中,可将目标码率作为第二编码码率。或者,计算机设备可确定视频帧子序列所对应的第二码率调整权重,并通过第二码率权重来对目标码率进行调整,得到第二编码码率,比如,将第二码率权重乘以目标码率,得到第二编码码率。第二码率调整权重可为用户预先设置的一个参数值。用户可在视频播放流畅程度和视频清晰度之间取一个折中,通过平衡视频播放流畅程度和清晰度的方式来确定第二码率调整权重。
S208,对帧序列进行编码时,对加载缓冲子序列的视频帧按照第一编码码率进行编码,对视频帧子序列的视频帧按照第二编码码率进行编码,得到目标视频。
具体地,计算机设备可依次对帧序列中的视频帧进行编码,对于加载缓冲子序列中的视频帧,可按照第一编码码率进行编码;对于视频帧子序列中的视频帧,可按照第二编码码率进行编码,得到目标视频。
由于本实施例只需对目标分辨率、第一编码权重和划分参数进行配置,即可触发计算机设备对待编码视频进行编码,得到可以提升加载缓冲时间的目标视频,相比于传统的针对每个待编码视频,都预先通过多个不同的码率对待编码视频进行编码,得到多个不同分辨率的目标视频,以使用户根据网络状况选择合适的视频分辨率,并触发视频播放应用顺畅播放该视频分辨率下的目标视频,本实施例无需预先生成多个不同分辨率的目标视频,从而不仅节约了编码时所耗费的计算机资源,而且降低了对目标视频的存储成本。
在其中一个实施例中,对加载缓冲子序列的视频帧按照第一编码码率进行编码,包括:确定当前时刻的比特缓存池中所包括的缓存比特数目,以及确定加载缓冲子序列中的当前待编码视频帧;在缓存比特数目小于或等于预设比特数目阈值时,对当前待编码视频帧的第一编码码率进行调整,得到调整后的第一编码码率;通过调整后的第一编码码率对当前待编码视频帧进行编码,得到已编码视频帧;确定当前待编码视频帧进行编码时所耗费的实际编码比特数目;确定当前待编码视频帧的期望编码比特数目;根据实际编码比特数目和期望编码比特数目,对比特缓存池所包括的缓存比特数目进行更新。
当对加载缓冲子序列中的视频帧进行编码时,计算机设备可确定加载缓冲子序列中的当前待编码视频帧,以及确定当前时刻的比特缓存池中所包括的缓存比特数目。其中,比特缓存池具体可以为视频缓存检验器(VBV,Video Buffering Verifier)。可在编码之前预设设置比特缓存池中所包括的缓存比特数目,并在对每帧视频帧进行编码时,向比特缓存池输入期望编码比特数目,以及从比特缓存池中流出实际编码比特数目。计算机设备可确定缓存比特数目是否小于或等于预设比特数目阈值,并在确定缓存比特数目是否小于或等于预设比特数目阈值时,认为已编码视频所耗费的实际编码总比特数目已超出期望编码总比特数目,此时可能会超出预设带宽上限,因此,计算机设备根据缓存比特数目与预设比特数目阈值之间的差值,降低第一编码码率,并通过码率降低的第一编码码率来对当前待编码视频帧进行编码。
进一步地,当对当前待编码视频进行编码后,计算机设备可确定对当前待编码视频进行编码时实际耗费的比特数目,得到实际编码比特数目,比如,计算机设备可根据已编码视频帧的大小来确定实际编码比特数目。计算机设备还可根据码率调整后的第一编码码率和待编码视频的视频帧率,确定当前待编码视频帧的期望编码比特数目,比如,将码率调整后的第一编码码率乘以视频帧率,得到期望编码比特数目。计算机设备将期望编码比特数目加上缓存比特数目并减去实际编码比特数目,得到更新后的缓存比特数目。
容易理解地,计算机设备也可按照上述方式对第二编码码率进行调整。
上述视频编码方法中,通过获取待编视频的帧序列,可对帧序列进行划分,得到加载缓冲子序列和视频帧子序列;通过获取得到加载缓冲子序列和视频帧子序列,可分别确定加载缓冲子序列所对应的第一编码码率和视频帧子序列所对应的第二编码码率,从而基于第一编码码率对加载缓冲子序列进行编码,基于第二编码码率对视频帧子序列进行编码,得到编码后的目标视频。由于可通过不同的编码码率对不同的子序列进行编码,因此,本申请可提升视频编码的灵活性。
此外,由于加载缓冲子序列位于视频帧子序列之前,且第一编码码率小于第二编码码率,因此可基于码率较小的第一编码码率来对加载缓冲子序列进行编码,以降低与加载缓冲子序列相对应的已编码视频文件的体积,进而基于体积降低的已编码视频文件来提升媒体分享平台加载缓冲目标视频的速率。并且,由于加载缓冲子序列的帧数小于视频帧子序列的帧数,因此,可在牺牲较少视频帧的画面清晰度的情况下,提升媒体分享平台加载缓冲目标视频的速率,如此,便可平衡加载缓冲时间与画面清晰度,从而提升了用户体验。
在其中一个实施例中,将帧序列划分为加载缓冲子序列和加载缓冲子序列之后的视频帧子序列,包括:确定帧序列的划分参数,并确定位于帧序列首部的首视频帧;以首视频帧为基准,并按照划分参数对帧序列进行划分,得到加载缓冲子序列和视频帧子序列。
其中,划分参数指的是用以对帧序列进行划分的参数,划分参数包括帧数量和时间时长。帧数量指的是视频帧的数量,计算机设备可基于帧数量确定加载缓冲子序列应包括的视频帧的数量。时间时长指的是时间的长度,比如,时间时长可为3秒或者5秒等,计算机设备可基于时间时长来确定加载缓冲子序列应包括的视频帧的数量。
具体地,当获取得到待编码视频的视频帧时,计算机设备还可确定划分参数。其中,该划分参数可为用户预先设置的一个参数值。进一步地,计算机设备还可确定位于帧序列首部的首个视频帧,并将位于首部的首个视频帧作为首视频帧。计算机设备以该首视频帧为基准,按照划分参数对帧序列进行划分,得到加载缓冲子序列和视频帧子序列。
在其中一个实施例中,当划分参数为时间时长时,计算机设备可确定待编码视频的视频帧率,根据视频帧率和时间时长来得到加载缓冲子序列应包括的视频帧的数量。比如,计算机设备可将视频帧率乘以时间时长,得到加载缓冲子序列应包括的视频帧的数量,从而计算机设备可按照该数量对帧序列进行划分,得到加载缓冲子序列和位于加载缓冲子序列之后的视频帧子序列。其中,视频帧率可为用户预先设置的一个参数值,计算机设备也可确定该待编码视频在媒体分享平台中每秒播放的帧数,并将在媒体分享平台中每秒播放的帧数作为定待编码视频的视频帧率。
在其中一个实施例中,划分参数中的时间时长可根据媒体分享平台实际加载缓冲视频所需时间确定得到。比如,可将媒体分享平台加载缓冲待播放视频所需时间的平均值,作为划分参数中的时间时长。
在其中一个实施例中,时间时长可根据媒体分享平台的后台服务器与媒体分享平台之间的网络状态进行修正。当服务器与媒体分享平台之间的数据丢包率小于或等于预设丢包率阈值,或者当数据传输时延小于或等于预设时延阈值时,可认为服务器与媒体分享平台之间的网络状态良好,此时媒体分享平台可快速加载缓冲待播放视频,因此,为了减少更多的视频帧被降低画质,可将划分参数中的时间时长减小预设时间阈值。相应地,当服务器与媒体分享平台之间的数据丢包率大于预设丢包率阈值,或者当数据传输时延大于预设时延阈值时,可认为服务器与媒体分享平台之间的网络状态有延迟,此时媒体分享平台加载缓冲待播放视频所需的时间较长,因此,为了提升视频的加载缓冲效率,可将划分参数中的时间时长增加预设时间阈值。
上述实施例中,只需确定划分参数和首视频帧,即可基于划分参数和首视频帧快速对帧序列进行划分,从而提升了帧序列的划分效率。
在其中一实施例中,划分参数包括帧数量;以首视频帧为基准,并按照划分参数对帧序列进行划分,得到加载缓冲子序列和视频帧子序列包括:将帧序列中的以首视频帧为首的连续帧数量的视频帧,作为加载缓冲子序列中的视频帧;将帧序列中的位于加载缓冲子序列之后的视频帧,作为视频帧子序列中的视频帧。
具体地,划分参数还包括有帧数量。当确定得到帧数量和首视频帧时,计算机设备可确定帧序列中的以首视频帧为首的连续帧数量的视频帧,并将确定的视频帧划分为加载缓冲子序列。比如,当帧数量为16时,计算机设备可将帧序列中的以首视频帧为起点,将首视频帧和位于首视频帧之后的连续15帧视频帧共同作为加载缓冲子序列。当确定得到加载缓冲子序列时,计算机设备可将剩余的视频帧共同作为视频帧子序列,也即,将帧序列中的位于加载缓冲子序列之后的视频帧作为视频帧子序列中的视频帧。
在其中一个实施例中,可将一个画面组(GOP,Group of Pictures)所包括的视频帧的数量作为划分参数中的帧数量。画面组指的是一组连续的画面,GOP是视频的帧序列中的一个图片集,其由内部编码帧(也称作I帧)、前向预测帧(也称作P帧)和双向内插帧(也称作B帧)共同组成。
在其中一个实施例中,帧数量可为用户预先设置的一个参数值。比如,用户可做多次试验,得到帧数量、加载缓冲时间和视频画面分辨率三者之间的对应关系,并通过该对应关系,选择合适的帧数量作为划分参数,比如,可将对应用于加载缓冲时间小于或等于预设加载时间阈值、且视频画面分辨率大于或等于预设分辨率阈值的帧数量,作为划分参数。以使得基于该划分参数编码得到的目标视频能够快速被加载且还具有高清晰度。
在其中一个实施例中,可通过服务器与媒体分享平台之间的网络状态来对帧数量进行修正。当媒体分享平台的后台服务器的媒体分享平台之间的数据丢包率小于或等于预设丢包率阈值,或者当数据传输时延小于或等于预设时延阈值时,可认为服务器与媒体分享平台之间的网络状态良好,此时媒体分享平台可快速加载缓冲待播放视频,因此,为了减少更多的视频帧被降低画质,可将划分参数中的帧数量减小预设数量阈值。相应地,当媒体分享平台的后台服务器的媒体分享平台之间的数据丢包率大于预设丢包率阈值,或者当数据传输时延大于预设时延阈值时,可认为服务器与媒体分享平台之间的网络状态有延迟,此时媒体分享平台加载缓冲待播放视频所需的时间较长,因此,为了提升视频的加载缓冲效率,可将划分参数中的帧数量增加预设数量阈值。
上述实施例中,通过将帧序列中的以首视频帧为首的连续帧数量的视频帧,作为加载缓冲子序列中的视频帧,将帧序列中的位于加载缓冲子序列之后的视频帧,作为视频帧子序列中的视频帧,使得后续可基于不同的码率分别对不同的子序列进行编码,从而实现了动态编码的目的。
在其中一个实施例中,确定加载缓冲子序列所对应的第一编码码率,包括:确定加载缓冲子序列所对应的第一原始编码码率;确定加载缓冲子序列所对应的第一码率调整权重;根据第一码率调整权重对第一原始编码码率进行调整,得到加载缓冲子序列所对应的第一编码码率。
具体地,当获取得到加载缓冲子序列时,计算机设备可确定加载缓冲子序列所对应的第一原始编码码率。比如,将目标码率作为第一原始编码码率。进一步地,计算机设备可确定加载缓冲子序列所对应的第一码率调整权重,并根据第一码率调整权重对第一原始编码码率进行调整,得到加载缓冲子序列所对应的第一编码码率。比如,计算机设备将第一码率调整权重乘以第一原始编码码率,得到第一编码码率。
在其中一个实施例中,终端中除运行有媒体分享平台之外,还可运行有视频编码应用。终端可通过视频编码应用展示视频编码配置界面,通过视频编码配置界面对第一原始编码码率和第一码率调整权重进行配置。比如,视频编码配置界面中可展示有第一原始编码码率的输入框和第一码率调整权重的输入框,从而用户可通过相应输入框输入第一原始编码码率和第一码率调整权重,进而视频编码应用可通过用户输入的第一原始编码码率和第一码率调整权重,对待编码视频进行编码,得到目标应用。当获取得到目标应用时,用户可将目标应用上传至媒体分享平台,以使媒体分享平台播放目标应用。
在其中一个实施例中,用户可在视频的加载缓冲时间与视频的画面分辨率之间取折中,通过平衡加载缓冲时间和画质分辨率来确定第一码率调整权重。比如,用户可做多次试验,得到码率调整权重、加载缓冲时间和视频画面分辨率三者之间的对应关系,并通过该对应关系,选择合适的第一码率调整权重,比如,可将对应用于加载缓冲时间小于或等于预设加载时间阈值、且视频画面分辨率大于或等于预设分辨率阈值的码率调整权重,作为第一码率调整权重。以使得基于该第一码率调整权重编码得到的目标视频能够快速被加载且还具有高清晰度。
上述实施例中,通过确定第一原始编码码率和第一码率调整权重,可基于第一码率调整权重对第一原始编码码率进行码率调整,从而使得基于第一编码码率编码得到的目标视频能够快速被加载。
在其中一个实施例中,确定加载缓冲子序列所对应的第一原始编码码率,包括:确定待编码视频的目标量化参数,并根据量化参数与量化步长之间的对应关系,确定与目标量化参数相对应的目标量化步长;基于目标量化步长对加载缓冲子序列进行码率分配,得到加载缓冲子序列的第一原始编码码率。
具体地,当需要确定第一原始编码码率时,计算机设备可获取预先设置的目标量化参数。其中,量化参数(QP,Quantizer Parameter)反映了视频帧中空间细节压缩情况。量化参数越小,量化越精细,视频帧质量越高,产生的码流也越长。比如,QP值越小,则频帧帧中的大部分的细节都会被保留,相应的编码码率也会提升;QP值增大,则频帧帧中的大部分的细节都会被丢弃,图像失真加强,相应的编码码率也会下降。
进一步地,量化参数也可为量化步长的序号,根据量化参数与量化步长之间的对应关系,计算机设备可确定与目标量化参数相对应的目标量化步长,并根据目标量化步长进行码率分配,得到加载缓冲子序列的第一原始编码码率。
在其中一个实施例中,由于需要降低对加载缓冲子序列进行编码后得到的视频文件的体积大小,因此,所设置的第一码率调整权重小于1,比如,第一码率调整权重可为0.85。
在其中一个实施例中,由于量化参数越小,编码码率越大;量化参数越大,编码码率越小。因此,在确定第一码率调整权重时,可将第一码率调整权重作用于待编码视频的目标量化参数,使得计算机设备基于调整后的目标量化参数对视频帧进行编码,得到已编码视频帧。比如,在第一编码权重为0.85时,可认为需要降低15%的编码码率,因此,计算机设备可增加目标量化参数的数值,使得基于数值增加的目标量化参数编码得到的视频帧能够降低15%的编码码率。
在其中一个实施例中,用户可通过视频编码应用展示视频编码配置界面来对待编码视频的目标量化参数进行配置。
在其中一个实施中,参考图5,当获取得到待编码视频时,计算机设备可获取配置的编码参数。其中,编码参数中包括有目标量化参数和第一码率调整权重,目标量化参数包括图像层的量化参数和编码单元的量化参数。进一步地,计算机设备根据第一码率调整权重调整目标量化参数,得到调整后的目标量化参数,并基于调整后的目标量化参数对加载缓冲子序列中的当前待编码视频帧进行编码,得到已编码视频帧。计算机设备确定已编码视频帧所耗费的实际编码比特数,并基于第一编码码率确定期望编码比特数,根据实际编码比特数和期望编码比特数对比特缓存池所包括的缓存比特数目进行更新,以使计算机设备基于比特缓存池所包括的缓存比特数目对下一个待编码视频帧所对应的目标量化参数进行调整。比如,在确定缓存比特数目小于或等于预设比特数目阈值时,可提升目标量化参数的数值,并再次根据第一码率调整权重调整数值提升后的目标量化参数,得到调整后的目标量化参数,通过调整后的目标量化参数对下一帧待编码视频帧进行编码。图5示出了一个实施例中视频帧编码的示意图。
上述实施例中,由于只需设置目标量化参数,即可基于目标量化参数来对加载缓冲子序列进行码率分配,得到第一原始编码码率,因此,提升了第一原始编码码率的确定效率。此外,由于只需设置目标量化参数和第一码率调整权重,即可对待编码视频进行编码,得到可以快速加载缓冲的目标视频,如此,不仅提升了对待编码视频的设置效率,进而提升了视频编码效率。
在其中一个实施例中,确定加载缓冲子序列所对应的第一码率调整权重,包括:向播放目标视频的媒体分享平台发送网络性能测试数据;发送的网络性能测试数据用于触发媒体分享平台返回网络状态数据;基于网络状态数据确定加载缓冲子序列的第一码率调整权重。
其中,网络状态数据包括数据丢包率和数据传输时延中的至少一种。
具体地,当用于视频编码的计算机设备与用于播放目标视频的媒体分享平台位于不同的设备时,比如,当是通过媒体分享平台的后台服务器进行视频编码,通过媒体分享平台播放编码后的目标视频时,计算机设备还可通过与媒体分享平台之间的网络状态,来调整第一码率调整权重。计算机设备可向媒体分享平台发送网络性能测试数据,从而媒体分享平台在接收到网络性能测试数据后,确定接收到的网络性能测试数据的数据丢包率,并将数据丢包率作为拥塞信号与时间戳一起反馈给计算机设备。计算机设备获取媒体分享平台反馈回来的数据丢包率,并利用媒体分享平台反馈回来的时间戳确定数据传输时延,该数据传输时延可以是数据往返时延。
当计算机设备获取得到数据传输时延和数据丢包率中的至少一种时,计算机设备可基于数据传输时延和数据丢包率中的至少一种预测自身与媒体分享平台之间的实际网络带宽,并根据实际网络带宽来调整第一码率调整权重。
在其中一个实施例中,计算机设备确定目标网络带宽,并确定目标网络带宽与实际网络带宽之间的带宽差异,基于目标网络带宽与实际网络带宽之间的差异来调整第一码率调整权重。目标网络带宽可以基于目标码率确定得到,也可基于媒体分享平台所规定的平均码率确定得到。可预先设置带宽差异与权重调整值之间的对应关系,从而计算机设备可基于该对应关系,并根据目标网络带宽与实际网络带宽之间的带宽差异,来对第一码率权重进行调整。比如,当实际网络带宽小于目标网络带宽时,计算机设备可降低第一码率权重,从而基于降低的第一码率调整权重降低第一编码码率,进而基于降低的第一编码码率,得到能够在网络状态较差的环境下快速加载播放的目标视频。当实际网络带宽大于目标网络带宽时,计算机设备可增加第一码率权重,从而基于增加的第一码率权重提升第一编码码率,进而基于提升的第一编码码率,得到不仅能够在网络状态良好的环境下快速加载播放的目标视频,而且该目标视频还具有清晰的画面。如此,便大大提升了用户的观看体验。
上述实施例中,通过根据网络状态数据来调整第一码率权重,可使得在网络良好时,得到快速加载播放的、具有清晰的画面目标视频。在网络状态较差时,得到快速加载播放的目标视频。
在其中一个实施例中,确定视频帧子序列所对应的第二编码码率,包括:确定视频帧子序列所对应的第二原始编码码率;确定视频帧子序列所对应的第二码率调整权重;根据第二码率调整权重对第二原始编码码率进行调整,得到视频帧子序列所对应的第二编码码率。
具体地,当获取得到视频帧子序列时,计算机设备可确定视频帧子序列所对应的第二原始编码码率。比如,将目标码率作为第二原始编码码率。进一步地,计算机设备可确定视频帧子序列所对应的第二码率调整权重,并根据第二码率调整权重对第二原始编码码率进行调整,得到视频帧子序列所对应的第二编码码率。比如,计算机设备将第二码率调整权重乘以第二原始编码码率,得到第二编码码率。
在其中一个实施例中,用户可通过视频编码应用展示的视频编码配置界面,来对第二原始编码码率和第二码率调整权重进行配置。
在其中一个实施例中,计算机设备确定待编码视频的目标量化参数,并根据量化参数与量化步长间的对应关系,确定与目标量化参数相对应的目标量化步长;基于目标量化步长对视频帧子序列进行码率分配,得到视频帧子序列的第二原始编码码率。
在其中一个实施例中,第二码率调整权重可根据需求自由设置,比如,当用户期望在经历预设帧的画面分辨率降低之后,能够立即恢复到原分辨率时,则将第二码率调整权重设置为1。如此,不仅能够降低加载缓冲目标视频所需的时间,而且能够在短暂地降低画质之后,立即将画质进行恢复,以满足用户的观看要求,提升用户的观看体验。又比如,当网络状态不佳,且用户期望目标视频不仅能够快速加载播放,而且能够流畅播放时,则可将第二码率调整权重设置为小于1的数值。
在其中一个实施例中,参考图6,在对待编码视频进行编码之前,可确定编码参数。其中,编码参数包括目标码率、目标量化参数、划分参数、第一码率调整权重和第二码率调整权重中的至少一种。计算机设备可基于划分参数确定加载缓冲子序列和视频帧子序列,并基于目标码率和第一码率调整权重,确定第一编码码率,基于目标码率和第二码率调整权重确定第二编码码率。计算机设备通过第一编码码率对加载缓冲子序列进行编码,通过第二编码码率对视频帧子序列进行编码,以得到目标视频。图6示出了一个实施中编码参数配置示意图。
上述实施例中,通过确定第二原始编码码率和第二码率调整权重,可基于第二码率调整权重对第二原始编码码率进行码率调整,如此便实现了视频编码。
在其中一个实施例中,在获取待编码视频的帧序列之后,上述方法还包括:当待编码视频的视频时长大于或等于预设时长阈值时,确定帧序列中的待编码视频帧所对应的帧类型;根据帧类型确定待编码视频帧的初始量化等级参数;根据帧序列中的已编码视频帧的实际编码总比特数和期望编码总比特数,对初始量化等级参数进行调整,得到目标量化等级参数;通过目标量化等级参数得到目标量化参数,并根据目标量化参数对待编码视频帧进行编码。
具体地,计算机设备中可设置有多种编码方式,当待编码视频的视频时长大于或等于预设时长阈值时,计算机设备还可采用下述方式来对待编码视频进行编码。为了便于描述,下述将待编码的视频帧称作待编码视频帧,将已编码的视频帧称作已编码视频帧。对于待编码视频的帧序列中的每帧待编码视频帧,计算机设备均确定当前待编码视频帧所对应的帧类型。其中,帧类型包括内部编码帧类型、前向预测帧类型和双向内插帧类型。进一步地,计算机设备确定与当前待编码视频帧的帧类型相对应的初始量化等级参数生成方式,并基于所确定的初始量化等级参数生成方式来生成当前待编码视频帧的初始量化等级参数。
计算机设备确定帧序列中的已编码视频帧,并确定各已编码视频帧在编码时所耗费的实际编码比特数,将各已编码视频帧各自对应的实际编码比特数进行叠加,得到实际编码总比特数。进一步地,计算机设备确定分别为各已编码视频帧分配的期望编码比特数,并将各期望编码比特数进行叠加,得到期望编码总比特数。计算机设备根据实际编码总比特数和期望编码总比特数,对当前待编码视频帧的初始量化等级参数进行调整,得到当前待编码视频帧的目标量化等级参数,并根据目标量化等级参数确定目标量化参数,根据目标数量参数对当前待编码视频帧进行编码,得到已编码视频帧。
在其中一个实施例中,计算机设备可通过下述公式来得到目标量化参数:
abr_buffer[i]=2*RT*sqrt(Ttotal)
qscale_goal[i]=qscale_adjust[i]*overflow[i]
其中,QP[i]指的是第i帧的目标量化参数。Ttotal指的是编码总时间。RT指的是目标码率。abr_buffer[i]指的是平均比特缓冲区。total_bits[i-1]指的是从第1帧起至第i-2帧为止,实际消耗的实际编码总比特数。wanted_bits[i-1指的是从第1帧起至第i-2帧为止,期望消耗的期望编码总比特数。clip3代表,当小于0.5时,则将置于0.5,当大于2时,则将置于2。overflow[i]指得是权重调整因子。qscale_adjust[i]指的是初始量化等级参数。qscale_goal[i]指的是目标量化等级参数。
上述实施例中,根据实际编码总比特数和期望编码总比特数来调整当前待编码视频帧的目标量化参数,使得当前待编码视频帧所消耗的实际编码比特数和预分配的期望编码比特数能够均衡,从而降低超出带宽上限的概率。
在其中一个实施例中,根据帧类型确定待编码视频帧的量化等级参数,包括:当待编码视频帧的帧类型为目标类型时,确定待编码视频帧的模糊复杂度,根据模糊复杂度确定待编码视频帧的原始量化等级参数;确定原始量化等级参数的准确程度,并根据准确程度对原始量化等级参数进行调整,得到待编码视频帧的初始量化等级参数。
具体地,计算机设备中存储有不同帧类型所对应的不同初始量化等级参数的确定方式。在当前待编码视频帧为前向预测帧时,即可认为当前待编码视频帧的帧类型属于目标类型,此时,计算机设备确定当前待编码视频帧的模糊复杂度,并根据模糊复杂度确定待编码视频帧的原始量化等级参数。其中,模糊复杂度是基于已编码视频帧的复杂度进行加权得到的。计算机设备可确定当前待编码视频帧的复杂度,并确定期望编码总比特数,根据当前待编码视频帧的复杂度和期望编码总比特数确定原始量化等级参数的准确程度。计算机设备根据准确程度对原始量化等级参数进行修正处理,得到待编码视频帧的初始量化等级参数,从而后续可基于初始量化等级参数确定目标量化参数。
在其中一个实施例中,计算机设备可基于下述公式确定目标帧类型的待编码视频帧的初始量化等级参数:
qscal_raw[i]=blurred_complexity[i](1-qcompress)
其中,cplxsum[i]和cplxcount[i]为迭代量,cplxsum的初始值为0,cplxcount的初始值也为0。cplxsum[i]表示累计复杂度,其是由i帧之前的视频帧的复杂度的加权累计值得到的,cplxsum[i+1]=cplxsum[i]*0.5+SATD[i]。SATD(Sum ofAbsolute TransformedDifference,绝对误差和)是一种视频残差信号大小的衡量标准。cplxcount[i]表示加权累计帧数。cplxcount[i+1]=cplxcount[i]*0.5+10qscal_raw[i]指的是原始量化等级参数。blurred_complexity[i]指的是第i帧的模糊复杂度。qcompress指的是预设压缩因子。rate_factor[i]指的是原始量化等级参数的准确程度。wanted_bits_window[i]指的是从第1帧起至第i-1帧为止的目标累计比特值,其可为目标码率除以视频帧率。cplxr_sum[i]指的是当前视频帧复杂度,其为根据第i-1帧的量化等级参数估计出的当前帧的复杂度。qscale_adjust[i]指的是初始量化等级参数。
在其中一个实施例中,在当前待编码视频帧为内部编码帧时,计算机设备可根据已编码视频帧的初始量化等级参数,来得到当前待编码视频帧的初始量化等级参数,比如,计算机设备可对各已编码视频帧的初始量化等级参数进行加权求和,得到初始量化等级参数总和,并将初始量化等级参数总和除以已编码视频帧的数量,得到当前待编码视频帧的初始量化等级参数。在当前待编码视频帧为双向内插帧时,计算机设备可确定当前待编码视频帧所参考的参考视频帧,并对各参考视频帧的初始量化等级参数进行加权求和,得到参考量化等级参数总和。计算机设备将参考量化等级参数总和除以参考视频帧的数量,得到当前待编码视频帧的初始量化等级参数。
上述实施例中,通过对原始量化等级参数进行调整,可使得调整后的初始量化等级参数能够更为准确。
在其中一个实施例中,上述方法还包括目标视频播放的步骤,目标视频播放的步骤包括:当得到目标视频时,将目标视频发送至媒体分享平台;其中,发送的目标视频用于触发媒体分享平台展示目标视频;媒体分享平台包括短视频分享平台;当将目标视频发送至短视频分享平台时,目标视频的视频时长小于或等于预设时长阈值。
具体地,可通过多媒体分享平台播放对待编码视频进行编码得到的目标视频。其中,媒体分享平台指的是用以进行视频分享的平台,通过媒体分享平台可进行视频的发布、以及播放已发布的视频。媒体分享平台包括短视频分享平台,其中,短视频分享平台中分享的视频的时长小于或等于预设时长阈值。
在其中一个实施例中,媒体分享平台可为一个独立的应用,也可为母应用下的子应用。子应用是能够在母应用提供的运行环境中运行的应用,母应用则是运行于操作系统上并为子应用提供运行环境的原生应用。比如,媒体分享平台可为即时通信应用中的子应用,当用户期望观看媒体内容时,终端中的即时通信应用可展示媒体分享平台的入口页面,从而用户可通过入口页面触发媒体分享平台展示媒体呈现页面,并通过媒体呈现页面展示上传至媒体分享平台的目标视频。
在其中一个实施例中,即时通信应用可响应于用户针对当前播放的视频的触发操作,更换当前播放的视频。比如,用户可通过触摸滑动操作来更换当前播放的视频。由于当媒体分享平台为短视频分享平台时,在通过触摸滑动操作来更换播放的视频时,用户更注重的是视频的秒开能力,因此,在对视频编码的过程中,通过在码率和画质之间取一个折中,让位于待编码视频首部区域的一部分视频帧的编码码率降低一定比例,以使得编码得到的目标视频能够提升加载速度。
在其中一个实施例中,用户可通过媒体分享平台上传待编码视频,也可通过媒体分享平台上传编码得到的目标视频。当媒体分享平台接收到待编码视频时,媒体分享平台可将待编码视频发送至服务器,以使服务器按照上述方法对待编码视频进行编码,得到目标视频。
上述实施例中,通过将目标视频发送至媒体分享平台,可通过媒体分享平台将接收到的目标视频进行发布,从而实现分享目标视频的目的。
在其中一个实施例中,上述方法还包括体验质量信息的确定步骤,体验质量信息的确定步骤包括:确定目标视频在媒体分享平台中的视频播放信息;根据视频播放信息,确定体验质量信息;体验质量信息用于对待编码视频的编码方式进行优化。
其中,体验质量信息(QOE,Quality of Experience)指的是对视频质量的评价信息。体验质量信息可反映出用户感受到的视频画面质量、视频播放性能或视频观看舒适度等。
具体地,计算机设备可确定各目标视频分别在媒体分享平台中的视频播放信息,并根据各视频播放信息确定体验质量信息。其中,视频播放信息至少包括目标视频在媒体分享平台中的加载缓冲时间、目标视频的展示画质参数以及目标视频的卡顿缓冲时间中的一种。画质参数至少包括画面分辨率、画面色彩饱和度和画面细节丢失率等参数。卡顿缓冲时间指的是从视频卡段起至卡顿结束为止的时间段。进一步地,当确定得到体验质量信息时,计算机设备可根据体验质量信息对上述编码方式进行优化。比如,体验质量信息具体可以为一个用以表征体验质量的数值。当因加载缓冲时间较长,而导致体验质量信息低于预设质量阈值时,可降低第一编码码率。当因画质参数较低而导致体验质量信息低于预设质量阈值时,可提升第一编码码率。
在其中一个实施例中,视频播放信息中还可包括有与目标视频进行互动的互动信息。其中,互动信息包括目标视频的播放量、目标视频的收藏数量和目标视频的点赞数量。从而计算机设备可基于包括有互动信息的视频播放信息来得到体验质量信息,比如,当目标视频的点赞数量越多时,体验质量信息所对应的数值也就越高,当体验质量信息所对应的数值也就越高时,表征用户体验越好。
在其中一个实施例中,计算机设备还可确定网络相关信息,并基于网络相关信息确定服务质量信息,通过服务质量信息对上述的编码方法进行优化。其中,服务质量信息(QoS,Quality of Service)反映了底层分组数据传输的性能指标。网络相关信息包括了目标视频的加载缓冲时间、目标视频播放时的网络时延、目标视频播放时的网络抖动、网络带宽和误码等参数。比如,服务质量信息具体可以为一个用以表征服务质量的数值。当因加网络带宽较低,而导致服务质量信息低于预设服务阈值时,可降低第一编码码率。
上述实施例中,由于体验质量信息反映了用户观看视频的体验,因此,通过确定体验质量信息,可基于体验质量信息优化视频的编码方式,从而通过优化的视频编码方式提升用户体验。
在其中一个实施例中,视频播放信息至少包括目标视频在媒体分享平台中的加载缓冲时间、目标视频的展示画质参数、目标视频的卡顿缓冲时间、目标视频的播放量、目标视频的收藏数量和目标视频的点赞数量中的一种;根据视频播放信息,确定体验质量信息,包括:获取预设的体验质量评价模型,并将视频播放信息输入至体验质量评价模型,得到体验质量信息。
具体地,可预先设置有体验质量评价模型,从而当获取得到视频播放信息时,可将视频播放信息输入至体验质量评价模型中,通过体验质量评价模型输出体验质量信息,从而后续可基于输出的体验质量信息对编码方法进行优化。
本实施例中,由于预先部署有体验质量评价模型,因此,只需将视频播放信息输出至体验质量评价模型中,即可快速得到体验质量信息。
在其中一个具体实施例中,参考图7,提供了一种视频编码方法,该方法包括:
S702,计算机设备获取待编码视频的帧序列,并确定帧序列的划分参数,以及确定位于帧序列首部的首视频帧。
S704,计算机设备将帧序列中的以首视频帧为首的连续帧数量的视频帧,作为加载缓冲子序列中的视频帧。
S706,计算机设备将帧序列中的位于加载缓冲子序列之后的视频帧,作为视频帧子序列中的视频帧;加载缓冲子序列的帧数小于视频帧子序列的帧数。
S708,计算机设备确定待编码视频的目标量化参数,并根据量化参数与量化步长之间的对应关系,确定与目标量化参数相对应的目标量化步长;基于目标量化步长对加载缓冲子序列进行码率分配,得到加载缓冲子序列的第一原始编码码率。
S710,计算机设备确定加载缓冲子序列所对应的第一码率调整权重;根据第一码率调整权重对第一原始编码码率进行调整,得到加载缓冲子序列对应的第一编码码率。
S712,计算机设备确定视频帧子序列所对应的第二原始编码码率;确定视频帧子序列所对应的第二码率调整权重;根据第二码率调整权重对第二原始编码码率进行调整,得到视频帧子序列所对应的第二编码码率;第一编码码率小于第二编码码率。
S714,计算机设备对帧序列进行编码时,对加载缓冲子序列的视频帧按照第一编码码率进行编码,对视频帧子序列的视频帧按照第二编码码率进行编码,得到目标视频。
S716,当得到目标视频时,计算机设备将目标视频发送至媒体分享平台;确定目标视频在媒体分享平台中的视频播放信息;根据视频播放信息,确定体验质量信息;体验质量信息用于对待编码视频的编码方式进行优化。
上述视频编码方法中,通过获取待编视频的帧序列,可对帧序列进行划分,得到加载缓冲子序列和视频帧子序列;通过获取得到加载缓冲子序列和视频帧子序列,可分别确定加载缓冲子序列所对应的第一编码码率和视频帧子序列所对应的第二编码码率,从而基于第一编码码率对加载缓冲子序列进行编码,基于第二编码码率对视频帧子序列进行编码,得到编码后的目标视频。由于可通过不同的编码码率对不同的子序列进行编码,因此,本申请可提升视频编码的灵活性。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供一种应用场景,该应用场景应用上述的视频编码方法。具体地,该视频编码方法在该应用场景的应用如下:
参考图8,当用户期望通过短视频平台发布拍摄的短视频时,用户可将拍摄的短视频上传至短视频平台,从而短视频平台可将用户上传的短视频发送至后台服务器。当后台服务器接收到短视频平台发送的短视频时,后台服务器可将接收到的短视频作为待编码视频,并S801确定待编码视频中的待编码视频帧。S802后台服务器确定待编码视频帧所属的子序列。S803在待编码视频帧属于加载缓冲子序列时,后台服务器可确定第一原始编码码率,S804并判断是否需要对第一原始编码码率进行码率调整。S805当需要对第一原始编码码率进行码率调整时,后台服务器可确定第一码率调整权重,并通过第一码率调整权重对第一原始编码码率进行调整,得到第一编码码率。S806当无需对第一原始编码码率进行码率调整时,后台服务器可直接将第一原始码率作为第一编码码率,S807并通过第一编码码率对待编码视频帧进行编码,得到已编码视频帧。S808当待编码视频帧属于视频帧子序列时,后台服务器确定第二原始码率,S809并判断是否需要对第二原始码率进行码率调整。S810当需要对第二原始码率进行码率调整时,后台服务器获取第二码率调整权重,并通过第二码率调整权重对第二原始码率进行调整,得到第二编码码率。S811当无需对第二原始码率进行码率调整时,后台服务器直接将第二原始码率作为第二编码码率,S812并通过第二编码码率对待编码视频帧进行编码,得到已编码视频帧。图8示出了一个实施例视频编码方法的整体流程示意图。
本申请还另外提供一种应用场景,该应用场景应用上述的视频编码方法。
具体地,该视频编码方法在该应用场景的应用如下:
终端中可运行有在线游戏,当终端需要显示过渡游戏动画时,终端可从服务器中拉取过渡游戏动画所对应的目标视频。服务器可将目标视频进行拆分成多个数据包,分别将数据包依次发送至终端。当终端接收到一定数量的数据包时,终端即可播放目标视频,比如,当终端接收到加载缓冲子序列所对应的数据包时,终端即可开始播放目标视频。其中,该目标视频可为按照上述视频编码方式编码得到的、且存储于服务器中的视频。
上述应用场景仅为示意性的说明,可以理解,本申请各实施例所提供的视频编码方法的应用不局限于上述场景。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的视频编码方法的视频编码装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个视频编码装置实施例中的具体限定可以参见上文中对于视频编码方法的限定,在此不再赘述。
在一个实施例中,如图9所示,提供了一种视频编码装置900,包括:子序列划分模块902、码率确定模块904和视频帧编码模块906,其中:
子序列划分模块902,用于获取待编码视频的帧序列;将帧序列划分为加载缓冲子序列和加载缓冲子序列之后的视频帧子序列;加载缓冲子序列的帧数小于视频帧子序列的帧数;
码率确定模块904,用于确定加载缓冲子序列所对应的第一编码码率,并确定视频帧子序列所对应的第二编码码率;第一编码码率小于第二编码码率;
视频帧编码模块906,用于对帧序列进行编码时,对加载缓冲子序列的视频帧按照第一编码码率进行编码,对视频帧子序列的视频帧按照第二编码码率进行编码,得到目标视频。
在其中一个实施例中,参考图10,子序列划分模块902还包括首视频帧确定模块9021,用于确定帧序列的划分参数,并确定位于帧序列首部的首视频帧;以首视频帧为基准,并按照划分参数对帧序列进行划分,得到加载缓冲子序列和视频帧子序列。
在其中一个实施例中,划分参数包括帧数量;首视频帧确定模块9021还用于将帧序列中的以首视频帧为首的连续帧数量的视频帧,作为加载缓冲子序列中的视频帧;将帧序列中的位于加载缓冲子序列之后的视频帧,作为视频帧子序列中的视频帧。
在其中一个实施例中,码率确定模块904还包括第一码率确定模块9041,用于确定加载缓冲子序列所对应的第一原始编码码率;确定加载缓冲子序列所对应的第一码率调整权重;根据第一码率调整权重对第一原始编码码率进行调整,得到加载缓冲子序列所对应的第一编码码率。
在其中一个实施例中,第一码率确定模块9041还用于确定待编码视频的目标量化参数,并根据量化参数与量化步长之间的对应关系,确定与目标量化参数相对应的目标量化步长;基于目标量化步长对加载缓冲子序列进行码率分配,得到加载缓冲子序列的第一原始编码码率。
在其中一个实施例中,第一码率确定模块9041还用于向播放目标视频的媒体分享平台发送网络性能测试数据;发送的网络性能测试数据用于触发媒体分享平台返回网络状态数据;基于网络状态数据确定加载缓冲子序列的第一码率调整权重。
在其中一个实施例中,码率确定模块904还包括第二码率确定模块9042,用于确定视频帧子序列所对应的第二原始编码码率;确定视频帧子序列所对应的第二码率调整权重;根据第二码率调整权重对第二原始编码码率进行调整,得到视频帧子序列所对应的第二编码码率。
在其中一个实施例中,视频编码装置900还用于当待编码视频的视频时长大于或等于预设时长阈值时,确定帧序列中的待编码视频帧所对应的帧类型;根据帧类型确定待编码视频帧的初始量化等级参数;根据帧序列中的已编码视频帧的实际编码总比特数和期望编码总比特数,对初始量化等级参数进行调整,得到目标量化等级参数;通过目标量化等级参数得到目标量化参数,并根据目标量化参数对待编码视频帧进行编码。
在其中一个实施例中,视频编码装置900还用于当待编码视频帧的帧类型为目标类型时,确定待编码视频帧的模糊复杂度,根据模糊复杂度确定待编码视频帧的原始量化等级参数;确定原始量化等级参数的准确程度,并根据准确程度对原始量化等级参数进行调整,得到待编码视频帧的初始量化等级参数。
在其中一个实施例中,视频编码装置900还包括视频发送模块908,用于当得到目标视频时,将目标视频发送至媒体分享平台;其中,发送的目标视频用于触发媒体分享平台展示目标视频;媒体分享平台包括短视频分享平台;当将目标视频发送至短视频分享平台时,目标视频的视频时长小于或等于预设时长阈值。
在其中一个实施例中,视频发送模块908还用于确定目标视频在媒体分享平台中的视频播放信息;根据视频播放信息,确定体验质量信息;体验质量信息用于对待编码视频的编码方式进行优化。
在其中一个实施例中,视频播放信息至少包括目标视频在媒体分享平台中的加载缓冲时间、目标视频的展示画质参数、目标视频的卡顿缓冲时间、目标视频的播放量、目标视频的收藏数量和目标视频的点赞数量中的一种;视频发送模块908还用于获取预设的体验质量评价模型,并将视频播放信息输入至体验质量评价模型,得到体验质量信息。
上述视频编码装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储视频编码数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种视频编码方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (16)
1.一种视频编码方法,其特征在于,所述方法包括:
获取待编码视频的帧序列;
将所述帧序列划分为加载缓冲子序列和所述加载缓冲子序列之后的视频帧子序列;所述加载缓冲子序列的帧数小于所述视频帧子序列的帧数;
确定所述加载缓冲子序列所对应的第一编码码率,并确定所述视频帧子序列所对应的第二编码码率;所述第一编码码率小于所述第二编码码率;
对所述帧序列进行编码时,对所述加载缓冲子序列的视频帧按照所述第一编码码率进行编码,对所述视频帧子序列的视频帧按照所述第二编码码率进行编码,得到目标视频。
2.根据权利要求1所述的方法,其特征在于,所述将所述帧序列划分为加载缓冲子序列和所述加载缓冲子序列之后的视频帧子序列,包括:
确定所述帧序列的划分参数,并确定位于所述帧序列首部的首视频帧;
以所述首视频帧为基准,并按照所述划分参数对所述帧序列进行划分,得到加载缓冲子序列和视频帧子序列。
3.根据权利要求2所述的方法,其特征在于,所述划分参数包括帧数量;所述以所述首视频帧为基准,并按照所述划分参数对所述帧序列进行划分,得到加载缓冲子序列和视频帧子序列,包括:
将所述帧序列中的以所述首视频帧为首的连续帧数量的视频帧,作为加载缓冲子序列中的视频帧;
将所述帧序列中的位于所述加载缓冲子序列之后的视频帧,作为视频帧子序列中的视频帧。
4.根据权利要求1所述的方法,其特征在于,所述确定所述加载缓冲子序列所对应的第一编码码率,包括:
确定所述加载缓冲子序列所对应的第一原始编码码率;
确定所述加载缓冲子序列所对应的第一码率调整权重;
根据所述第一码率调整权重对所述第一原始编码码率进行调整,得到所述加载缓冲子序列所对应的第一编码码率。
5.根据权利要求4所述的方法,其特征在于,所述确定所述加载缓冲子序列所对应的第一原始编码码率,包括:
确定所述待编码视频的目标量化参数,并根据量化参数与量化步长之间的对应关系,确定与所述目标量化参数相对应的目标量化步长;
基于所述目标量化步长对所述加载缓冲子序列进行码率分配,得到所述加载缓冲子序列的第一原始编码码率。
6.根据权利要求4所述的方法,其特征在于,所述确定所述加载缓冲子序列所对应的第一码率调整权重,包括:
向播放目标视频的媒体分享平台发送网络性能测试数据;发送的所述网络性能测试数据用于触发所述媒体分享平台返回网络状态数据;
基于所述网络状态数据确定所述加载缓冲子序列的第一码率调整权重。
7.根据权利要求1所述的方法,其特征在于,所述确定所述视频帧子序列所对应的第二编码码率,包括:
确定所述视频帧子序列所对应的第二原始编码码率;
确定所述视频帧子序列所对应的第二码率调整权重;
根据所述第二码率调整权重对所述第二原始编码码率进行调整,得到所述视频帧子序列所对应的第二编码码率。
8.根据权利要求1所述的方法,其特征在于,在所述获取待编码视频的帧序列之后,所述方法还包括:
当所述待编码视频的视频时长大于或等于预设时长阈值时,确定所述帧序列中的待编码视频帧所对应的帧类型;
根据所述帧类型确定所述待编码视频帧的初始量化等级参数;
根据所述帧序列中的已编码视频帧的实际编码总比特数和期望编码总比特数,对所述初始量化等级参数进行调整,得到目标量化等级参数;
通过所述目标量化等级参数得到目标量化参数,并根据所述目标量化参数对所述待编码视频帧进行编码。
9.根据权利要求8所述的方法,其特征在于,所述根据所述帧类型确定所述待编码视频帧的初始量化等级参数,包括:
当所述待编码视频帧的帧类型为目标类型时,确定所述待编码视频帧的模糊复杂度,根据所述模糊复杂度确定所述待编码视频帧的原始量化等级参数;
确定所述原始量化等级参数的准确程度,并根据所述准确程度对所述原始量化等级参数进行调整,得到所述待编码视频帧的初始量化等级参数。
10.根据权利要求1至9任意一项所述的方法,其特征在于,所述方法还包括:
当得到目标视频时,将所述目标视频发送至媒体分享平台;
其中,发送的目标视频用于触发所述媒体分享平台展示所述目标视频;所述媒体分享平台包括短视频分享平台;当将所述目标视频发送至所述短视频分享平台时,所述目标视频的视频时长小于或等于预设时长阈值。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
确定所述目标视频在所述媒体分享平台中的视频播放信息;
根据所述视频播放信息,确定体验质量信息;所述体验质量信息用于对待编码视频的编码方式进行优化。
12.根据权利要求10所述的方法,其特征在于,所述视频播放信息至少包括目标视频在媒体分享平台中的加载缓冲时间、目标视频的展示画质参数、目标视频的卡顿缓冲时间、目标视频的播放量、目标视频的收藏数量和目标视频的点赞数量中的一种;
所述根据所述视频播放信息,确定体验质量信息,包括:
获取预设的体验质量评价模型,并将所述视频播放信息输入至所述体验质量评价模型,得到体验质量信息。
13.一种视频编码装置,其特征在于,所述装置包括:
子序列划分模块,用于获取待编码视频的帧序列;将所述帧序列划分为加载缓冲子序列和所述加载缓冲子序列之后的视频帧子序列;所述加载缓冲子序列的帧数小于所述视频帧子序列的帧数;
码率确定模块,用于确定所述加载缓冲子序列所对应的第一编码码率,并确定所述视频帧子序列所对应的第二编码码率;所述第一编码码率小于所述第二编码码率;
视频帧编码模块,用于对所述帧序列进行编码时,对所述加载缓冲子序列的视频帧按照所述第一编码码率进行编码,对所述视频帧子序列的视频帧按照所述第二编码码率进行编码,得到目标视频。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
16.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210501878.8A CN117082243A (zh) | 2022-05-10 | 2022-05-10 | 视频编码方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210501878.8A CN117082243A (zh) | 2022-05-10 | 2022-05-10 | 视频编码方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117082243A true CN117082243A (zh) | 2023-11-17 |
Family
ID=88713979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210501878.8A Pending CN117082243A (zh) | 2022-05-10 | 2022-05-10 | 视频编码方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117082243A (zh) |
-
2022
- 2022-05-10 CN CN202210501878.8A patent/CN117082243A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9398301B2 (en) | Parallel video encoding based on complexity analysis | |
US9497464B2 (en) | GOP-independent dynamic bit-rate controller | |
CN109660879B (zh) | 直播丢帧方法、系统、计算机设备和存储介质 | |
Ray et al. | Vantage: optimizing video upload for time-shifted viewing of social live streams | |
US20170347159A1 (en) | Qoe analysis-based video frame management method and apparatus | |
CN109788316B (zh) | 码率控制、视频转码方法与装置、计算机设备及存储介质 | |
US10827181B1 (en) | Differential adaptive bitrate streaming based on scene complexity | |
US8660181B2 (en) | Method of compressing video data and a media player for implementing the method | |
CN108810545B (zh) | 用于视频编码的方法、装置、计算机可读介质及电子设备 | |
JP5164866B2 (ja) | ビデオ画像シーケンスの時間的頻度を適合させる方法および装置 | |
TW201404170A (zh) | 用於可調適視訊串流之技術 | |
US11330263B1 (en) | Machine learning based coded size estimation in rate control of video encoding | |
JP2022516517A (ja) | メディアタイトルのバッファ制約バージョンを生成する際の符号化演算の最適化 | |
CN116634151A (zh) | 视频处理方法、装置、计算机设备、存储介质及程序产品 | |
US20080267284A1 (en) | Moving picture compression apparatus and method of controlling operation of same | |
CN117082243A (zh) | 视频编码方法、装置、计算机设备和存储介质 | |
US9467691B2 (en) | Video system for displaying image data, method and computer program | |
CN108124155B (zh) | 一种码率控制方法、装置及电子设备 | |
US20220245449A1 (en) | Method for training a single non-symmetric decoder for learning-based codecs | |
Jiménez et al. | Choosing the best video compression codec depending on the recorded environment | |
Fernandez et al. | An Interactive Video Streaming Architecture Featuring Bitrate Adaptation. | |
CA2927653C (en) | Cloud encoding system | |
US11997366B2 (en) | Method and apparatus for processing adaptive multi-view streaming | |
CN115037701B (zh) | 视频处理方法、装置、服务器及介质 | |
US20240179325A1 (en) | Methods and systems for quality of experience-centric adaptive bitrate encoding for live video streaming |
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 |