CN117714729A - 直播视频编码方法、装置、计算机设备及存储介质 - Google Patents
直播视频编码方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117714729A CN117714729A CN202311735743.9A CN202311735743A CN117714729A CN 117714729 A CN117714729 A CN 117714729A CN 202311735743 A CN202311735743 A CN 202311735743A CN 117714729 A CN117714729 A CN 117714729A
- Authority
- CN
- China
- Prior art keywords
- video
- code rate
- target
- coding quality
- current
- 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 78
- 230000006835 compression Effects 0.000 claims abstract description 36
- 238000007906 compression Methods 0.000 claims abstract description 35
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 238000011144 upstream manufacturing Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000011156 evaluation Methods 0.000 claims description 7
- 230000004927 fusion Effects 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 16
- 239000002699 waste material Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000013016 damping Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000003827 upregulation Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000003828 downregulation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/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/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- 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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440281—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
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。
可选地,所述方法还包括:
若所述目标视频编码质量小于所述当前视频编码质量,则基于所述第一目标码率、所述目标视频编码质量、所述当前视频编码质量及预设的第二码率调整算法确定所述第二目标码率;
若所述目标视频编码质量等于所述当前视频编码质量,则判定所述第二目标码率等于所述第一目标码率。
可选地,所述基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率的步骤之后,还包括:
判断所述第二目标码率是否大于所述上行视频带宽;
若所述第二目标码率大于所述上行视频带宽,则在当前时刻的预设时间后,判断在所述预设时间内获取到的上行视频带宽是否保持稳定;
若是,则获取所述当前时刻的预设时间后的时间点所对应的视频编码质量;
将所述目标视频编码质量调整为所述目标视频编码质量等于所述当前时刻的预设时间后的时间点所对应的视频编码质量。
可选地,当所述目标视频编码质量以峰值信噪比表示时,所述根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量包括:
计算所述视频解码帧与所述视频解码帧对应的原始视频帧的峰值信噪比,并将计算得到的峰值信噪比作为所述当前视频编码质量;或
当所述目标视频编码质量以视频多方法评估融合VMAF指标表示时,所述根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量包括:
计算所述视频解码帧与所述视频解码帧对应的原始视频帧的视频多方法评估融合VMAF指标,并将计算得到的VMAF指标作为所述当前视频编码质量。
本申请还提供了一种直播视频编码装置,所述直播视频编码装置包括:
第一获取模块,用于获取视频压缩流,所述视频压缩流采用第一目标码率对直播视频中的当前视频画面组进行编码得到;
解码模块,用于对所述视频压缩流进行解码,得到视频解码帧;
计算模块,用于根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量;
第二获取模块,用于获取当前时刻的上行视频带宽;
决策模块,用于基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率。
本申请还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请通过在编码过程中,对目标码率进行自适应调整,并在自适应调整时,同时考虑上行视频带宽、第一目标码率、预设的目标视频编码质量、当前视频编码质量,从而使得目标码率决策模块决策出的第二目标码率更加精准,减少码率的浪费。此外,本申请在决策过程中,通过对编码后的画质进行实时评估,将实际画质作为反馈信息,结合实时上行视频带宽,自适应调整目标码率,从而可以在保证流畅度的同时,控制编码画质满足预设的目标画质,减少码率的浪费,降低带宽成本。
附图说明
图1为本申请实施例的直播视频编码方法的一实施例的应用环境示意图;
图2为本申请所述的直播视频编码方法的一种实施例的流程图;
图3为本申请所述的直播视频编码方法的另一种实施例的流程图;
图4为本申请一实施例中获取当前时刻的上行视频带宽的步骤细化示意图;
图5为申请一实施例中目标码率决策模块基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率的步骤细化示意图;
图6为本申请所述的直播视频编码方法的另一种实施例的流程图;
图7为本申请所述的直播视频编码装置的一种实施例的程序模块图;
图8为本申请实施例提供的执行直播视频编码方法的计算机设备的硬件结构示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本申请的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
以下为本申请的术语解释:
直播流:直播音视频数据的传输,它能够被作为一个稳定的和连续的流通过网络传输给观众观看。
直播房间:直播服务中,每个主播会有一个唯一标识符,根据标识符可以进入该主播的直播观看页面,即为所述主播房间;
转码:是指为了适应不同的网络带宽、不同的终端处理能力和不同的用户需求,将已经压缩编码的视频码流转换成另一个视频码流。
网络带宽:是指在单位时间(一般指的是1秒钟)内能传输的数据量;
码率:是指在压缩视频时,为视频指定的参数,用以告知压缩软件期望的压缩后视频的大小;码率的英文名为bps(bit per second),即单位时间传送的数据位数。
PSNR(Peak Signal-to-Noise Ratio,峰值信噪比):是用来衡量一个视频编解码器的视频信号和它的背景噪声之间的差异的一个指标。
SSIM(Structural Similarity,结构相似性):是一种用于衡量两张图像相似度的指标。它将图像组成的信息定义为独立于亮度、对比度的结构信息,从而反映了场景中物体的结构属性。与PSNR类似,SSIM也可以用于评估视频质量,但它更注重图像之间的结构相似性,因此可以更好地反映视频中不同物体之间的相似度。
VMAF(Video Multi-method Assessment Fusion,视频多方法评估融合):VMAF是一种基于机器学习的视频评估方法,它结合了多种客观评估方法,如结构相似性、对比度、亮度、色度等,从而对视频进行全面评估。
图1示出了本申请实施例提供的应用场景的一种示意图,该应用场景包括:服务器100、主播终端200和观众终端300。其中,服务器100、主播终端200和观众终端300位于无线网络或有线网络中,服务器100与主播终端200和观众终端300可以进行数据交互。在一些实施方式中,主播终端200的数量(图1中仅示出一个)以及观众终端300的数量(图1中仅示出一个)可以不做限定,观众终端300与主播终端200也可以将服务器100以及CDN(ContentDelivery Network,内容分发网络)作为传输中介,并通过互联网来实现相互间的数据交互。
在本申请实施例中,服务器100可以是单独的服务器,也可以是服务器集群,可以是本地服务器,也可以是云端服务器,具体的服务器类型在本申请实施例中可以不作为限定。主播终端200以及观众终端300可以是移动手机、智能手机、笔记本电脑、台式电脑、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、媒体播放器、智能电视、可穿戴电子设备等,具体的终端设备类型在本申请实施例中可以不作为限定。
在本实施例中,主播终端200内可以安装有直播客户端,该直播客户端用于实现主播进行视频直播。该直播客户端可以是安装在主播终端200上的计算机应用程序(Application,APP),也可以是Web客户端,该Web客户端可指基于Web架构而开发的应用程序。
在本实施例中,观众终端300内可以安装有观众客户端,该观众客户端用于实现观众接收直播内容,并对直播内容进行展示。该观众客户端可以是安装在观众终端300上的计算机应用程序(Application,APP),也可以是Web客户端,该Web客户端可指基于Web架构而开发的应用程序。
相关技术中的编码方法会根据实时上行带宽,对码率采用“迅速降低,缓慢上升”的码率控制方法来提高直播的流畅度和清晰度。
然而,发明人发现上述编码方法没有考虑直播的带宽成本,存在码率浪费的情况。比如对于直播内容比较简单的时候,在上行带宽充足的时候,也会分配较高的码率,导致编码之后的视频中还存在大量的数据冗余,多分配的码率并不会带来更多的清晰度提升,当观看直播的用户很多的时候,会带来巨大的带宽成本浪费。
基于上述问题,本申请通过在编码过程中,对目标码率进行自适应调整,并在自适应调整时,同时考虑上行视频带宽、第一目标码率、预设的目标视频编码质量、当前视频编码质量,从而使得目标码率决策模块决策出的第二目标码率更加精准,减少码率的浪费。此外,本申请在决策过程中,通过对编码后的画质进行实时评估,将实际画质作为反馈信息,结合实时上行视频带宽,自适应调整目标码率,从而可以在保证流畅度的同时,控制编码画质满足预设的目标画质,减少码率的浪费,降低带宽成本。
下面,将在上述示例性应用环境下提供若干个实施例,来说明本申请中的直播视频编码方案。参阅图2,其为本申请一实施例的直播视频编码方法的流程示意图。本申请中的直播视频编码方法可以应用于服务端(服务器),也可以应用于主播终端。本实施例中以所述视频编码方法可以应用于服务端中为例进行说明。需要说明的是,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。从图中可以看出,本实施例中所提供的直播视频编码方法包括:
步骤S20、获取视频压缩流,所述视频压缩流采用第一目标码率对直播视频中的当前视频画面组进行编码得到。
具体地,所述第一目标码率为用于对直播视频中的当前视频画面组进行编码的码率,比如,所述第一目标码率为1024kbps。
所述当前视频画面组为所述直播视频中当前需要进行编码的视频画面组。在一实施方式中,所述当前视频画面组中包含的视频帧画面的数量可以由用户根据实际情况进行设定与调整。当用户没有根据实际情况进行设定时,所述当前视频画面组中包含的视频帧画面的数量为默认值。在另一实施方式中,所述当前视频画面组中包含的视频帧画面的数量也可以由系统根据主播终端的性能进行自动确定。
所述视频压缩流为对所述当前视频画面组中的视频帧画面进行编码后得到的视频数据。
在本实施例中,在采用到直播视频后,主播终端会将所述直播视频中的当前视频画面组输入至视频编码器中,以通过该视频编码器可以采用第一目标码率对直播视频中的当前视频画面组进行编码,得到视频压缩流。其中,该视频编码器的具体类型不作限定。
在本实施例中,当主播开始直播时,所述第一目标码率为预设的初始码率。在直播进行的过程中,主播终端对视频画面组的进行编码的目标码率会自适应调整。也就是说,在主播开始直播时,会采用初始码率对主播在直播过程中采集到的直播视频的第1个视频画面组进行编码,在主播直播的过程中,会采用自适用调整后的目标码率继续对直播视频的第2个视频画面组、第3个视频画面组,…,第N个视频画面组进行编码,直到直播结束。
在一示例性的实施方式中,为了后续可以对直播视频进行编码,参阅图3,主播终端会执行以下操作:
步骤S30,在主播开启直播后,对音频数据和直播视频进行采集。
具体地,当主播开启直播后,会通过音频采集设备对主播的音频进行采集,以及会通过视频采集设备对主播的直播视频进行采集。
其中,音频采集设备可以为拾音器。视频采集设备可以为摄像头。
步骤S31,采用预设的目标音频码率对所述音频数据进行编码,得到音频压缩流。
具体地,在采集到音频数据后,会将采集到的音频数据输入至音频编码器中,以通过该音频编码器采用预设的目标音频码率对所述音频数据进行编码,得到音频压缩流。其中,该音频编码器的具体类型不作限定。
所述目标音频码率为预先设定的对音频数据进行编码的码率。
所述音频压缩流为对音频数据进行编码后得到的数据。
在本实施例中,由于在直播过程中采集到的音频数据的数据量相比于采集到的直播视频的数据量要小很多,因此,本申请在对采集到的音频数据进行编码时,不会对音频数据的码率进行自适应调整,而是将对音频编码进行编码的码率设置为所述目标音频码率,并且在直播过程中保持所述目标音频码率不变。
本实施例中,通过在直播过程中,采用固定的目标音频码率对所述音频数据进行编码,而不采用自适应码率对音频数据进行编码,从而减少计算资源的消耗。
步骤S21,对所述视频压缩流进行解码,得到视频解码帧。
具体地,在得到视频压缩流后,会通过视频解码器对所述视频压缩流进行解码,从而得到视频解码帧。
其中,所述视频解码帧为对所述视频压缩流进行解码后得到的视频帧。所述解码视频帧的数量与所述视频压缩流中包含的视频帧的数量相同。
步骤S22,根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量。
具体地,所述原始视频帧为所述直播视频中还未经过编码处理的视频帧,即为当前视频画面组中的视频帧。
在本实施例中,当前视频编码质量的计算方式与设定的目标视频编码质量有关。
在一示例性的实施方式中,当所述目标视频编码质量以峰值信噪比表示时,所述根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量包括:计算所述视频解码帧与所述视频解码帧对应的原始视频帧的峰值信噪比,并将计算得到的峰值信噪比作为所述当前视频编码质量。
具体地,峰值信噪比(PSNR)可以采用如下计算公式计算得到:
PSNR=10*log10(MAX2/MSE),其中,MAX表示图像中的最大像素值,若每个像素点用8位表示,那么MAX就是255。MSE表示所述视频解码帧对应的原始视频帧与所述视频解码帧的所有像素值的均方误差。
在一实施方式中,当所述视频解码帧存在多帧时,则在确定所述当前视频编码质量时,首先,会分别计算每一帧视频解码帧与对应的原始视频帧的PSNR,在计算得到所有的PSNR后,会将所有的PSNR的平均值或中位数等作为所述当前视频编码质量。
在另一实施方式中,当所述视频解码帧存在多帧时,为了降低计算量,也可以对这多帧视频解码帧中进行抽帧处理,从而抽取部分视频解码帧用于后续对所述当前视频编码质量的计算。其中,具体的抽帧间隔可以根据运行时的计算资源和直播场景进行设定与调整,在本实施例中不作限定。
在一示例性的实施方式中,当所述目标视频编码质量以视频多方法评估融合VMAF指标表示时,所述根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量包括:计算所述视频解码帧与所述视频解码帧对应的原始视频帧的视频多方法评估融合VMAF指标,并将计算得到的VMAF指标作为所述当前视频编码质量。
具体地,VMAF指标是视频多维度混合评价因子,其用于衡量视频的画质质量。
同理,当所述视频解码帧存在多帧时,则在确定所述当前视频编码质量时,首先,会分别计算每一帧视频解码帧与对应的原始视频帧的VMAF指标,在计算得到所有的VMAF指标后,会将所有的VMAF指标的平均值或中位数等作为所述当前视频编码质量。
在另一实施方式中,当所述视频解码帧存在多帧时,为了降低计算量,也可以对这多帧视频解码帧中进行抽帧处理,从而抽取部分视频解码帧用于后续对所述当前视频编码质量的计算。其中,具体的抽帧间隔可以根据运行时的计算资源和直播场景进行设定与调整,在本实施例中不作限定。
步骤S23,获取当前时刻的上行视频带宽。
具体地,所述上行视频带宽指的是当前可以用于对直播视频数据进行上传的带宽。所述上行视频带宽=当前时刻的上行带宽-目标音频码率。
在一示例性的实施方式中,参阅图4,所述获取当前时刻的上行视频带宽包括:
步骤S40,获取当前时刻接收到的音视频码流的文件大小与所述音视频码流的上传时间,所述音视频码流为对所述视频压缩流与所述视频压缩流对应的音频压缩流进行封装后得到的。
具体地,主播终端为了便于视频压缩流与音频压缩流进行传输,在得到视频压缩流与音频压缩流后,会对所述视频压缩流与所述视频压缩流对应的音频压缩流进行封装,从而得到音视频码流。主播终端在得到音视频码流后,会将所述音视频码流上传至服务器,以便服务器可以将所述音视频码流分发给观众进行观看。
当服务器接收到所述音视频码流后,为了适用不同的网络带宽的用户需求,所述服务器在接收到所述音视频码流后,还可以调用转码服务器对所述音视频码流进行转码,从而得到不同分辨率的音视频码流。
在本实施例中,当服务器接收到主播终端在当前时刻上传的音视频码流后,会对所述音视频码流的文件大小以及上传时间进行统计。
步骤S41,根据所述文件大小与所述上传时间计算所述当前时刻的上行带宽。
具体地,上行带宽=文件大小/上传时间。
步骤S42,根据所述上行带宽与所述目标音频码率确定所述当前时刻的上行视频带宽。
具体地,上行视频带宽=所述上行带宽-所述目标音频码率。
本实施例中,先根据所述音视频码流的文件大小与所述音视频码流的上传时间计算所述当前时刻的上行带宽,然后,根据所述上行带宽与所述目标音频码率确定所述当前时刻的上行视频带宽,从而无需调用额外的带宽测量工具测量上行带宽。
在另一实施方式中,所述当前时刻的上行视频带宽可以通过调用带宽测量工具的方式来确定,具体而言,可以通过调用带宽测量工具先测量当前时刻的上行带宽,然后将测量到的上行带宽减去所述目标音频码率,即可以得到当前时刻的上行视频带宽。
步骤S24,基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率。
具体地,可以通过增设目标码率决策模块来基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率。所述目标码率决策模块作为对直播视频进行编码的目标码率进行自适应调整的模块。
所述第二目标码率为用于对所述当前视频画面组的下一视频画面组进行编码的码率。
在本实施例中,目标码率决策模块在对目标码率进行自适应调整时,会同时考虑上行视频带宽、第一目标码率、预设的目标视频编码质量、当前视频编码质量,从而使得决策出的第二目标码率更加精准,减少码率的浪费。
在一示例性的实施方式中,参阅图5,所述基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率的步骤包括:
步骤S50,判断所述第一目标码率是否大于所述上行视频带宽。
具体地,目标码率决策模块在进行决策时,会首先判断所述第一目标码率是否大于所述上行视频带宽。若所述第一目标码率大于所述上行视频带宽,则表明当前的带宽环境较差,需要迅速降低目标码率,否则可能会出现网络阻塞,导致直播卡顿,影响流畅度。
步骤S51,若所述第一目标码率大于所述上行视频带宽,判定所述第二目标码率为所述上行视频带宽与预设数值的乘积,所述预设数值小于1。
具体地,所述第二目标码率=所述上行视频带宽*预设数值,其中,所述预设数值为预先设定的,其具体值可以根据实际情况进行设定与修改,比如,所述预设数值为0.5。所述预设数值也可以根据所述第一目标码率与所述上行视频带宽的差值来确定。
在本实施例中,若所述第一目标码率大于所述上行视频带宽,会快速将所述第二目标码率降为低于所述上行视频带宽,从而避免出现网络阻塞。
步骤S52,若所述第一目标码率小于所述上行视频带宽,则判断所述目标视频编码质量是否大于所述当前视频编码质量。
具体地,若所述第一目标码率小于所述上行视频带宽,则表明当前带宽环境健康,可以满足所述第一目标码率,此时,会判断所述目标视频编码质量是否大于所述当前视频编码质量,以评估是否需要对直播视频的编码质量进行调整。
步骤S53,若所述目标视频编码质量大于所述当前视频编码质量,则基于所述第一目标码率、所述目标视频编码质量、所述当前视频编码质量及预设的第一码率调整算法确定所述第二目标码率。
具体地,若所述目标视频编码质量大于所述当前视频编码质量,则表明当前视频编码质量还达不到目标视频编码质量,需要提高目标码率,以提高视频编码质量。此时,目标码率决策模块会基于所述第一目标码率、所述目标视频编码质量、所述当前视频编码质量及预设的第一码率调整算法来确定出更加准确的第二目标码率。
需要说明的是,通过第一码率调整算法确定出的第二目标码率大于所述第一目标码率。
在一示例性的实施方式中,第一码率调整算法具体如下:
其中,R′tar为所述第二目标码率,Rtar为所述第一目标码率、Qtar为所述目标视频编码质量,Qreal为所述当前视频编码质量,d1为预设的阻尼系数,smax为预先设定的对编码码率上调的最大幅度值。
在本实施例中,通过上述第一码率调整算法可以使得所述当前视频编码质量越接近所述目标视频编码质量时,对码率的调整幅度越小,反之调整则越大。此外,当d1越大时,则码率调整相比于编码质量的差异越迟钝,反之则越灵敏。除此之外,通过在第一码率调整算法中限制码率上调的最大幅度值,从而可以避免码率和编码质量出现巨大波动,影响直播稳定性。
在一示例性的实施方式中,所述第一码率调整算法也可以为:
其中,R′tar为所述第二目标码率,Rtar为所述第一目标码率、Qtar为所述目标视频编码质量,Qreal为所述当前视频编码质量,d1为预设的阻尼系数,smax为预先设定的对编码码率上调的最大幅度值,a为预先设定的大于1的值。
在一示例性的实施方式中,目标码率决策模块基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率的步骤还包括:若所述目标视频编码质量小于所述当前视频编码质量,则基于所述第一目标码率、所述目标视频编码质量、所述当前视频编码质量及预设的第二码率调整算法确定所述第二目标码率;若所述目标视频编码质量等于所述当前视频编码质量,则判定所述第二目标码率等于所述第一目标码率。
具体地,若所述目标视频编码质量小于所述当前视频编码质量,则表明当前视频编码质量超过了目标视频编码质量,需要降低目标码率,以减少码率的浪费。此时,目标码率决策模块会基于所述第一目标码率、所述目标视频编码质量、所述当前视频编码质量及预设的第一码率调整算法来确定出更加准确的第二目标码率。
需要说明的是,通过第二码率调整算法确定出的第二目标码率小于所述第一目标码率。
在一示例性的实施方式中,所述第二码率调整算法具体为:
其中,R′tar为所述第二目标码率,Rtar为所述第一目标码率、Qtar为所述目标视频编码质量,Qreal为所述当前视频编码质量,d2为预设的阻尼系数,smin为预先设定的对编码码率下调的最大幅度值。
在本实施例中,通过上述第二码率调整算法可以使得所述当前视频编码质量越接近所述目标视频编码质量时,对码率的调整幅度越小,反之调整则越大。此外,当d2越大时,则码率调整相比于编码质量的差异越迟钝,反之则越灵敏。除此之外,通过在第二码率调整算法中限制码率下调的最大幅度值,从而可以避免码率和编码质量出现巨大波动,影响直播稳定性。
在本实施例中,当所述目标视频编码质量等于所述当前视频编码质量,则表明当前的码率是合适的,无需再对目标码率进行调整。此时,会判定所述第二目标码率等于所述第一目标码率。
在一示例性的实施方式中,所述第二码率调整算法也可以为:
其中,R′tar为所述第二目标码率,Rtar为所述第一目标码率、Qtar为所述目标视频编码质量,Qreal为所述当前视频编码质量,d2为预设的阻尼系数,smin为预先设定的对编码码率下调的最大幅度值,a为预先设定的大于1的值。
本申请中的视频直播编码方法,通过在编码过程中,对目标码率进行自适应调整,并在自适应调整时,同时考虑上行视频带宽、第一目标码率、预设的目标视频编码质量、当前视频编码质量,从而使得目标码率决策模块决策出的第二目标码率更加精准,减少码率的浪费。此外,本申请在决策过程中,通过对编码后的画质进行实时评估,将实际画质作为反馈信息,结合实时上行视频带宽,自适应调整目标码率,从而可以在保证流畅度的同时,控制编码画质满足预设的目标画质,减少码率的浪费,降低带宽成本。
针对上述视频直播编码方法,还会出现一种特殊情况,即在当前稳定的上行视频带宽环境下,会出现即使目标码率等于所述上行视频带宽,采用该目标码率编码进行编码的编码质量仍会小于目标编码质量,此时,若仍然采用上述决策算法来对目标码率进行调整,则会反复出现决策出的第二目标码率超出上行视频带宽的现象,造成质量的持续波动。为了避免出现该问题,可以在执行完步骤S24之后,继续执行图6中的步骤S60-S63来解决该问题。
从图6中可以看出,其具体可以包括如下步骤:
步骤S60,判断所述第二目标码率是否大于所述上行视频带宽。
具体地,在决策出第二目标码率后,会判断所述第二目标码率是否大于所述上行视频带宽,若所述第二目标码率大于所述上行视频带宽,则表明可能会出现上述问题。若第二目标码率小于所述上行视频带宽,则结束当前流程。
步骤S61,若所述第二目标码率大于所述上行视频带宽,则在当前时刻的预设时间后,判断在所述预设时间内获取到的上行视频带宽是否保持稳定。
具体地,所述预设时间可以根据实际情况进行设定与修改,比如,所述预设时间为1分钟。
在本实施例中,在所述第二目标码率大于所述上行视频带宽时,会等待所述预设时间,并在过了所述预设时间后,会判断在所述预设时间内获取到的上行视频带宽是否保持稳定,若保持稳定,则可以判定当前的网络状况是比较稳定的。
需要说明的是,在判定上行视频带宽是否保持稳定时,并不需要所有获取到的上行视频带宽相同,只要所有的上行视频带宽偏离标准值的程度小于预设值,都可以认为上行视频带宽是保持稳定的。
此外,需要说明的是,在预设时间内获取到的上行视频带宽的数量是由当前是对第几组的视频画面组进行编码确定的,比如,在所述当前时刻是对第1组视频画面组进行编码的,而在经过预设时间后,此时是对第6组视频画面组进行编码的,则该在预设时间内获取到的上行视频带宽包括:在第2组视频画面组进行编码时获取到的上行视频带宽、在第3组视频画面组进行编码时获取到的上行视频带宽、在第4组视频画面组进行编码时获取到的上行视频带宽、在第5组视频画面组进行编码时获取到的上行视频带宽及在第6组视频画面组进行编码时获取到的上行视频带宽。
步骤S62,若是,则获取所述当前时刻的预设时间后的时间点所对应的视频编码质量。
步骤S63,将所述目标视频编码质量调整为所述目标视频编码质量等于所述当前时刻的预设时间后的时间点所对应的视频编码质量。
具体地,若在所述预设时间内获取到的上行视频带宽是保持稳定的,则会将所述当前时刻的预设时间后的时间点所对应的视频编码质量来作为所述目标视频编码质量,即会将此时的实际编码质量来作为所述目标视频编码质量,避免后续对目标码率的反复调整。
参阅图7所示,是本申请直播视频编码装置70一实施例的程序模块图。
本实施例中,直播视频编码装置70包括一系列的存储于存储器上的计算机程序指令,当该计算机程序指令被处理器执行时,可以实现本申请各实施例的直播视频编码功能。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,直播视频编码装置70可以被划分为一个或多个模块,具体可以划分的模块如下:
第一获取模块71,用于获取视频压缩流,所述视频压缩流采用第一目标码率对直播视频中的当前视频画面组进行编码得到;
解码模块72,用于对所述视频压缩流进行解码,得到视频解码帧;
计算模块73,用于根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量;
第二获取模块74,用于获取当前时刻的上行视频带宽;
决策模块75,用于基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率。
在一示例性的实施方式中,第二获取模块74,用于获取当前时刻接收到的音视频码流的文件大小与所述音视频码流的上传时间,所述音视频码流为对所述视频压缩流与所述视频压缩流对应的音频压缩流进行封装后得到的;根据所述文件大小与所述上传时间计算所述当前时刻的上行带宽;根据所述上行带宽与所述目标音频码率确定所述当前时刻的上行视频带宽。
在一示例性的实施方式中,决策模块75,还用于判断所述第一目标码率是否大于所述上行视频带宽;若所述第一目标码率小于所述上行视频带宽,则判断所述目标视频编码质量是否大于所述当前视频编码质量;若所述目标视频编码质量大于所述当前视频编码质量,则基于所述第一目标码率、所述目标视频编码质量、所述当前视频编码质量及预设的第一码率调整算法确定所述第二目标码率。
在一示例性的实施方式中,决策模块75,还用于若所述第一目标码率大于所述上行视频带宽,判定所述第二目标码率为所述上行视频带宽与预设数值的乘积,所述预设数值小于1。
在一示例性的实施方式中,决策模块75,还用于若所述目标视频编码质量小于所述当前视频编码质量,则基于所述第一目标码率、所述目标视频编码质量、所述当前视频编码质量及预设的第二码率调整算法确定所述第二目标码率;若所述目标视频编码质量等于所述当前视频编码质量,则判定所述第二目标码率等于所述第一目标码率。
在一示例性的实施方式中,所述第一码率调整算法具体为:
其中,R′tar为所述第二目标码率,Rtar为所述第一目标码率、Qtar为所述目标视频编码质量,Qreal为所述当前视频编码质量,d1为预设的阻尼系数,smax为预先设定的对编码码率上调的最大幅度值;
所述第二码率调整算法具体为:
其中,R′tar为所述第二目标码率,Rtar为所述第一目标码率、Qtar为所述目标视频编码质量,Qreal为所述当前视频编码质量,d2为预设的阻尼系数,smin为预先设定的对编码码率下调的最大幅度值。
在一示例性的实施方式中,所述直播视频编码装置70还包括判断模块及调整模块。
所述判断模块,用于判断所述第二目标码率是否大于所述上行视频带宽;
所述判断模块,还用于若所述第二目标码率大于所述上行视频带宽,则在当前时刻的预设时间后,判断在所述预设时间内获取到的上行视频带宽是否保持稳定。
第二获取模块74,还用于若所述预设时间内获取到的上行视频带宽保持稳定,则获取所述当前时刻的预设时间后的时间点所对应的视频编码质量。
所述调整模块,用于将所述目标视频编码质量调整为所述目标视频编码质量等于所述当前时刻的预设时间后的时间点所对应的视频编码质量。
在一示例性的实施方式中,当所述目标视频编码质量以峰值信噪比表示时,计算模块73,还用于计算所述视频解码帧与所述视频解码帧对应的原始视频帧的峰值信噪比,并将计算得到的峰值信噪比作为所述当前视频编码质量;或
当所述目标视频编码质量以视频多方法评估融合VMAF指标表示时,计算模块73,还用于计算所述视频解码帧与所述视频解码帧对应的原始视频帧的视频多方法评估融合VMAF指标,并将计算得到的VMAF指标作为所述当前视频编码质量。
图8示意性示出了根据本申请实施例的适于实现直播视频编码方法的计算机设备8的硬件架构示意图。本实施例中,计算机设备8是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。如图8所示,计算机设备8至少包括但不限于:可通过系统总线相互通信链接存储器120、处理器121、网络接口122。其中:
存储器120至少包括一种类型的计算机可读存储介质,该可读存储介质可以是易失性的,也可以是非易失性的,具体而言,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器120可以是计算机设备8的内部存储模块,例如该计算机设备8的硬盘或内存。在另一些实施例中,存储器120也可以是计算机设备8的外部存储设备,例如该计算机设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器120还可以既包括计算机设备8的内部存储模块也包括其外部存储设备。本实施例中,存储器120通常用于存储安装于计算机设备8的操作系统和各类应用软件,例如直播视频编码方法的程序代码等。此外,存储器120还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器121在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其它直播视频编码芯片。该处理器121通常用于控制计算机设备8的总体操作,例如执行与计算机设备8进行数据交互或者通信相关的控制和处理等。本实施例中,处理器121用于运行存储器120中存储的程序代码或者处理数据。
网络接口122可包括无线网络接口或有线网络接口,该网络接口122通常用于在计算机设备8与其它计算机设备之间建立通信链接。例如,网络接口122用于通过网络将计算机设备8与外部终端相连,在计算机设备8与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图8仅示出了具有部件120~122的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器120中的直播视频编码方法可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器121)所执行,以完成本申请。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的直播视频编码方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的直播视频编码方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要筛选出其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种直播视频编码方法,其特征在于,所述方法包括:
获取视频压缩流,所述视频压缩流采用第一目标码率对直播视频中的当前视频画面组进行编码得到;
对所述视频压缩流进行解码,得到视频解码帧;
根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量;
获取当前时刻的上行视频带宽;
基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率。
2.根据权利要求1所述的直播视频编码方法,其特征在于,所述获取当前时刻的上行视频带宽包括:
获取当前时刻接收到的音视频码流的文件大小与所述音视频码流的上传时间,所述音视频码流为对所述视频压缩流与所述视频压缩流对应的音频压缩流进行封装后得到的;
根据所述文件大小与所述上传时间计算所述当前时刻的上行带宽;
根据所述上行带宽与所述目标音频码率确定所述当前时刻的上行视频带宽。
3.根据权利要求1所述的直播视频编码方法,其特征在于,所述基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率的步骤包括:
判断所述第一目标码率是否大于所述上行视频带宽;
若所述第一目标码率小于所述上行视频带宽,则判断所述目标视频编码质量是否大于所述当前视频编码质量;
若所述目标视频编码质量大于所述当前视频编码质量,则基于所述第一目标码率、所述目标视频编码质量、所述当前视频编码质量及预设的第一码率调整算法确定所述第二目标码率。
4.根据权利要求3所述的直播视频编码方法,其特征在于,所述方法还包括:
若所述第一目标码率大于所述上行视频带宽,判定所述第二目标码率为所述上行视频带宽与预设数值的乘积,所述预设数值小于1。
5.根据权利要求3所述的直播视频编码方法,其特征在于,所述方法还包括:
若所述目标视频编码质量小于所述当前视频编码质量,则基于所述第一目标码率、所述目标视频编码质量、所述当前视频编码质量及预设的第二码率调整算法确定所述第二目标码率;
若所述目标视频编码质量等于所述当前视频编码质量,则判定所述第二目标码率等于所述第一目标码率。
6.根据权利要求1至5任一项所述的直播视频编码方法,其特征在于,所述基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率的步骤之后,还包括:
判断所述第二目标码率是否大于所述上行视频带宽;
若所述第二目标码率大于所述上行视频带宽,则在当前时刻的预设时间后,判断在所述预设时间内获取到的上行视频带宽是否保持稳定;
若是,则获取所述当前时刻的预设时间后的时间点所对应的视频编码质量;
将所述目标视频编码质量调整为所述目标视频编码质量等于所述当前时刻的预设时间后的时间点所对应的视频编码质量。
7.根据权利要求1所述的直播视频编码方法,其特征在于,当所述目标视频编码质量以峰值信噪比表示时,所述根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量包括:
计算所述视频解码帧与所述视频解码帧对应的原始视频帧的峰值信噪比,并将计算得到的峰值信噪比作为所述当前视频编码质量;或
当所述目标视频编码质量以视频多方法评估融合VMAF指标表示时,所述根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量包括:
计算所述视频解码帧与所述视频解码帧对应的原始视频帧的视频多方法评估融合VMAF指标,并将计算得到的VMAF指标作为所述当前视频编码质量。
8.一种直播视频编码装置,其特征在于,所述直播视频编码装置包括:
第一获取模块,用于获取视频压缩流,所述视频压缩流采用第一目标码率对直播视频中的当前视频画面组进行编码得到;
解码模块,用于对所述视频压缩流进行解码,得到视频解码帧;
计算模块,用于根据所述视频解码帧与所述视频解码帧对应的原始视频帧计算当前视频编码质量;
第二获取模块,用于获取当前时刻的上行视频带宽;
决策模块,用于基于所述上行视频带宽、所述第一目标码率、预设的目标视频编码质量、所述当前视频编码质量决策出对所述当前视频画面组的下一视频画面组进行编码的第二目标码率。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311735743.9A CN117714729A (zh) | 2023-12-15 | 2023-12-15 | 直播视频编码方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311735743.9A CN117714729A (zh) | 2023-12-15 | 2023-12-15 | 直播视频编码方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117714729A true CN117714729A (zh) | 2024-03-15 |
Family
ID=90149409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311735743.9A Pending CN117714729A (zh) | 2023-12-15 | 2023-12-15 | 直播视频编码方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117714729A (zh) |
-
2023
- 2023-12-15 CN CN202311735743.9A patent/CN117714729A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230308704A1 (en) | Optimization of encoding profiles for media streaming | |
Qin et al. | ABR streaming of VBR-encoded videos: characterization, challenges, and solutions | |
US10645449B2 (en) | Method and apparatus of content-based self-adaptive video transcoding | |
US9225983B2 (en) | Rate-distortion-complexity optimization of video encoding guided by video description length | |
US8934538B2 (en) | Rate-distortion-complexity optimization of video encoding | |
US9049420B1 (en) | Relative quality score for video transcoding | |
CN107846590B (zh) | 一种视频编码的方法和视频编码器 | |
CN109788316B (zh) | 码率控制、视频转码方法与装置、计算机设备及存储介质 | |
CN106688239B (zh) | 视频下载方法、装置及系统 | |
US8842159B2 (en) | Encoding processing for conferencing systems | |
CN101375604A (zh) | 用于编码装置内的速率控制的方法及系统 | |
US11856191B2 (en) | Method and system for real-time content-adaptive transcoding of video content on mobile devices to save network bandwidth during video sharing | |
WO2021129007A1 (zh) | 视频码率的确定方法、装置、计算机设备及存储介质 | |
US20170257635A1 (en) | Rate control for content transcoding | |
JP7342166B2 (ja) | ビデオエンコーディングの交差検証 | |
CN113194276B (zh) | 在视频会议系统中生成动态布局的方法、系统、存储介质 | |
WO2023142665A1 (zh) | 图像处理方法、装置、计算机设备、存储介质及程序产品 | |
CN117714729A (zh) | 直播视频编码方法、装置、计算机设备及存储介质 | |
CN108124155B (zh) | 一种码率控制方法、装置及电子设备 | |
US11582462B1 (en) | Constraint-modified selection of video encoding configurations | |
CN107846595B (zh) | 一种视频编码的方法和视频编码器 | |
KR20240016801A (ko) | 저지연 스트리밍을 위해 동영상을 적응적으로 인코딩하는 방법 및 컴퓨팅 장치 | |
CN118200626A (zh) | 视频处理方法、装置、电子设备及计算机存储介质 | |
CN114430501A (zh) | 一种用于文件转码的内容自适应编码的方法及系统 | |
CN117998088A (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 |