CN110708569B - 一种视频处理方法、装置、电子设备及存储介质 - Google Patents
一种视频处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110708569B CN110708569B CN201910866707.3A CN201910866707A CN110708569B CN 110708569 B CN110708569 B CN 110708569B CN 201910866707 A CN201910866707 A CN 201910866707A CN 110708569 B CN110708569 B CN 110708569B
- Authority
- CN
- China
- Prior art keywords
- frame
- ltr
- idr
- encoded
- 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.)
- Active
Links
Images
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/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, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- 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, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234345—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
-
- 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, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440218—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
-
- 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, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440245—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
Abstract
本申请实施例提供了一种视频处理方法、装置、电子设备及存储介质。采用本申请的视频处理方法,首先将视频播放终端当前产生的连麦视频流编码为IDR编码图像组,发送给连麦视频播放端,然后按照IDR帧间隔为多个LTR帧间隔的编码规则,再次获取当前产生的连麦视频流,编码为多个LTR编码图像组,并依次发送到连麦视频播放端,其中,每个LTR编码图像组的首帧是参考在前的IDR帧或在前的LTR帧编码而成的。本申请利用LTR帧代替本应当编码为IDR帧的帧,扩大了原来的IDR帧间隔,避免了频繁地编码IDR帧,提高了连麦视频流的编码效率,进而改善了连麦视频播放端播放的连麦视频流的质量,有效地提升了用户连麦视频的体验。
Description
技术领域
本申请实施例涉及视频处理技术领域,尤其涉及一种视频处理方法、装置、电子设备及存储介质。
背景技术
随着信息时代的到来,连麦视频已经成为一种非常受欢迎的沟通方式。连麦视频技术通常涉及连麦视频源端和连麦视频播放端,在连麦视频过程中,连麦视频源端产生连麦视频流,通过编码器对连麦视频流进行编码,然后将编码后的连麦视频流实时地发送给连麦视频播放端,连麦视频播放端解码连麦视频流并发送到播放窗口进行播放。
由于连麦视频对实时性具有极高的要求,相关技术中,为了使连麦视频播放端在播放视频流的过程中,能尽快地恢复因为丢失数据而中断的连麦视频流,连麦视频源端在对连麦视频流进行编码的过程中,通常将IDR(Instantaneous Decoding Refresh,立即解码刷新帧)帧间隔(相邻的IDR帧之间的距离)设置得较短。然而,IDR帧的编码效率比普通的P帧的编码效率低,当IDR帧间隔设置得较短时,编码器频繁编码IDR帧,降低了连麦视频流的编码效率。因此,采用相关技术中的这种编码方式得到的连麦视频流需要在很高的码率下才能保证播放出的连麦视频流的质量,极大地降低了用户连麦视频的体验。
发明内容
本申请实施例提供一种视频处理方法、装置、电子设备及存储介质,以改善连麦视频流的质量,提升用户连麦视频的体验。
本申请实施例第一方面提供了一种视频处理方法,所述方法包括:
接收待编码的视频流;
对所述视频流进行编码,得到编码后的视频流,所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
将编码后的视频流发送给视频播放终端。
可选地,所述多个LTR编码图像组各自的首帧是按照以下步骤编码得到的:
确定最新编码的IDR帧;
参考所述最新编码的IDR帧,将所述多个LTR编码图像组中第一个LTR编码图像组的首帧编码为LTR帧或LTRP帧;
确定目标参考帧,所述目标参考帧为所述视频播放终端成功接收到的最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧;
参考所述目标参考帧,将所述多个LTR编码图像组中其他各个LTR编码图像组的首帧编码为LTR帧或LTRP帧。
可选地,所述方法还包括:
接收所述视频播放终端返回的状态信息,所述状态信息表征所述视频播放终端是否成功接收到每次发送的LTR编码图像组的首帧;
确定目标参考帧,包括:
根据每次接收到的状态信息,确定是否将每次发送的LTR编码图像组的首帧作为目标参考帧;
其中,在本次接收到的状态信息表征所述视频播放终端成功接收到本次发送的LTR编码图像组的首帧的情况下,确定目标参考帧为最新编码的IDR帧或该成功接收的首帧;
在本次接收到的状态信息表征所述视频播放终端未成功接收到本次发送的LTR编码图像组的首帧的情况下,确定目标参考帧为最新编码的IDR帧。
可选地,在根据每次接收到的状态信息,确定是否将每次发送的LTR编码图像组的首帧作为目标参考帧之后,所述方法还包括:
在每次接收到的状态信息均表征所述视频播放终端未成功接收到LTR编码图像组的首帧的情况下,将当前接收的待编码的视频流编码为一个IDR编码图像组。
可选地,所述LTR编码图像组中除首帧外的其他帧是按照以下步骤编码得到的:
参考该LTR编码图像组的首帧,编码P帧;或
参考该LTR编码图像组的首帧之后的其它参考帧,编码P帧,所述其他参考帧为已编码的P帧。
可选地,在对所述视频流进行编码,得到编码后的视频流之后,所述方法还包括:
按照以下步骤对编码图像组进行FEC编码:
对所述IDR编码图像组的首帧进行第一保护强度的FEC编码;对所述LTR编码图像组的首帧进行第二保护强度的FEC编码,对所述LTR编码图像组的除首帧外的其他帧进行第三保护强度的FEC编码,所述第一保护强度强于所述第二保护强度,所述第二保护强度强于所述第三保护强度;
将所述编码后的视频流发送给视频播放终端,包括:
将经过FEC编码后的IDR编码图像组和多个LTR编码图像组发送给所述视频播放终端。
可选地,所述方法还包括:
获取网络质量监测结果;
根据所述网络质量监测结果,调整所述LTR帧间隔。
可选地,调整所述LTR帧间隔,包括:
调整所述LTR编码图像组包括的编码图像帧的数量。
本申请实施例第二方面提供一种视频处理方法,应用于视频播放终端中,所述方法包括:
接收编码后的视频流;所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
对所述编码后的视频流中的IDR编码图像组,根据该IDR编码图像组的首帧,对该IDR编码图像组进行解码,对所述编码后的视频流中的每个LTR编码图像组,参考在前的IDR帧或在前的LTR帧,对该LTR编码图像组进行解码,得到解码后的视频流;
播放所述解码后的视频流。
本申请实施例第三方面提供一种视频处理装置,所述视频处理装置包括:
第一接收模块,用于接收待编码的视频流;
编码模块,用于对所述视频流进行编码,得到编码后的视频流,所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
发送模块,用于将编码后的视频流发送给视频播放终端。
可选地,所述编码模块包括:
第一确定模块,用于确定最新编码的IDR帧;
第一LTR帧编码模块,用于参考所述最新编码的IDR帧,将所述多个LTR编码图像组中第一个LTR编码图像组的首帧编码为LTR帧或LTRP帧;
第二确定模块,用于确定目标参考帧,所述目标参考帧为所述视频播放终端成功接收到的最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧;
第二LTR帧编码模块,用于参考所述目标参考帧,将所述多个LTR编码图像组中其他各个LTR编码图像组的首帧编码为LTR帧或LTRP帧。
可选地,所述视频处理装置还包括:
状态信息接收模块,用于接收所述视频播放终端返回的状态信息,该状态信息表征所述视频播放终端是否成功接收到该LTR编码图像组的首帧;
所述第二确定模块包括:
目标参考帧确定模块,用于根据每次接收到的状态信息,确定是否将每次发送的LTR编码图像组的首帧作为目标参考帧;
其中,在本次接收到的状态信息表征所述视频播放终端成功接收到本次发送的LTR编码图像组的首帧的情况下,确定目标参考帧为最新编码的IDR帧或该成功接收的首帧;
在本次接收到的状态信息表征所述视频播放终端未成功接收到本次发送的LTR编码图像组的首帧的情况下,确定目标参考帧为最新编码的IDR帧。
可选地,所述视频处理装置还包括:
强制编码模块,用于在每次接收到的状态信息均表征所述视频播放终端未成功接收到LTR编码图像组的首帧的情况下,将当前接收的待编码的视频流编码为一个IDR编码图像组。
可选地,所述视频处理装置还包括:
第一P帧编码模块,用于参考该LTR编码图像组的首帧,编码P帧;或
第二P帧编码模块,用于参考该LTR编码图像组的首帧之后的其它参考帧,编码P帧,所述其他参考帧为已编码的P帧。
可选地,所述视频处理装置还包括:
FEC编码模块,用于对所述IDR编码图像组的首帧进行第一保护强度的FEC编码;对所述LTR编码图像组的首帧进行第二保护强度的FEC编码,对所述LTR编码图像组的除首帧外的其他帧进行第三保护强度的FEC编码,所述第一保护强度强于所述第二保护强度,所述第二保护强度强于所述第三保护强度;
所述发送模块包括:
发送子模块,用于将经过FEC编码后的IDR编码图像组和多个LTR编码图像组发送给所述视频播放终端。
可选地,所述视频处理装置还包括:
获取模块,用于获取网络质量监测结果;
调整模块,用于根据所述网络质量监测结果,调整所述LTR帧间隔。
可选地,所述调整模块包括:
调整子模块,用于调整所述LTR编码图像组包括的编码图像帧的数量。
本申请实施例第四方面提供一种视频处理装置,所述视频处理装置包括:
第二接收模块,用于接收编码后的视频流;所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
解码模块,用于对所述编码后的视频流中的IDR编码图像组,根据该IDR编码图像组的首帧,对该IDR编码图像组进行解码,对所述编码后的视频流中的每个LTR编码图像组,参考在前的IDR帧或在前的LTR帧,对该LTR编码图像组进行解码,得到解码后的视频流;
播放模块,用于播放所述解码后的视频流。
本申请实施例第五方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第一方面所述的方法中的步骤。
本申请实施例第六方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面所述的方法的步骤。
采用本申请提供的视频处理方法,首先获取待编码的视频流,将该待编码的视频流编码为IDR编码图像组,将该IDR编码图像组发送给视频播放终端,然后按照IDR帧间隔(即:IDR编码图像组的长度)为多个LTR帧间隔(LTR编码图像组的长度)的编码规则,再次获取待编码的视频流,将该待编码的视频流编码为多个LTR编码图像组,并依次发送给视频播放终端,其中,每个LTR编码图像组的首帧是参考在前的IDR帧或在前的LTR帧编码而成的。本申请利用LTR帧代替本应当编码为IDR帧的帧,也即:利用LTR编码图像组代替部分IDR编码图像组,扩大了原来的IDR帧间隔,避免了频繁地对编码效率较低的IDR帧进行编码,从而提高了连麦视频流的编码效率,改善了连麦视频流的质量,有效地提升了用户连麦视频的体验。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例示出的一种实施环境的示意图;
图2是本申请一实施例提出的一种视频处理方法的流程图;
图2A是相关技术中的编码后的连麦视频流的结构示意图;
图2B是本申请一实施例示出的编码后的连麦视频流的结构示意图;
图3是本申请一实施例示出的对多个LTR编码图像组各自的首帧进行编码的流程图;
图4是本申请一实施例示出的调整LTR帧间隔的方法的流程图;
图5是本申请一实施例示出的另一种视频处理方法的流程图;
图6是本申请一实施例示出的一种视频处理装置的结构示意图;
图7是本申请一实施例示出的另一种视频处理装置的结构示意图;
图8是本申请一实施例示出的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本申请一实施例示出的一种实施环境的示意图。参照图1,该实施环境包括:用户端A和用户端B,且用户端A和用户端B均安装有连麦视频软件,用户端A可以为连麦视频源端,用于根据用户端A一侧的用户A的声音以及动作产生连麦视频流,此时用户端B为视频播放终端,用于播放用户端A实时发送的连麦视频流,实现与用户端B一侧的用户B与用户A的连麦视频交互。同理,用户端B也可以为连麦视频源端,用于根据用户端B一侧的用户B的声音以及动作产生连麦视频流,此时用户端A为视频播放终端,用于播放用户端B实时发送的连麦视频流。图1仅示出了本申请的一种实施环境的示意图,如未特别说明,本申请以图1所示的实施环境为例对提供的视频处理方法进行说明。
其中,用户端A可以是任意设置有编码器和解码器的终端设备,例如:个人电脑(Personal Computer,PC)、平板电脑、智能手机等终端设备;用户端B可以是任意设置有编码器和解码器的终端设备,例如:个人电脑、平板电脑、智能手机等终端设备。
用户A开启与用户B的连麦视频后,连麦视频源端通过音视频采集装置实时采集连麦视频流,通过编码器对连麦视频流进行编码,然后将编码后的连麦视频流发送给视频播放终端,视频播放终端通过解码器解码连麦视频流,然后通过播放窗口展示给用户A或用户B,实现用户A与用户B的连麦视频交互。
在对本申请所提供的视频处理方法进行说明之前,首先参照图1,对相关技术中的用户A与用户B的连麦视频交互过程做简要说明。
在相关技术中,为了满足连麦视频的高时效性要求,保证连麦视频播放端可以快速地恢复因丢失数据而中断的连麦视频流,通常将IDR(Instantaneous DecodingRefresh,立即解码刷新帧)帧间隔设置得较短,当IDR帧间隔较短时,需要频繁地对编码效率较低的IDR帧进行编码,导致对整个连麦视频流的编码效率较低,因此需要连麦视频播放端在较高的码率条件下才能保证播放出的连麦视频流满足一定的质量要求,因此,用户连麦视频的体验较差。
为解决上述问题,相关技术中提出了两种技术方案:
方案一:在对连麦视频流编码时采用较短的IDR帧间隔,针对IDR帧采用第一保护强度的FEC(Forward Error Correction,前向纠错编码)编码,针对普通P帧采用第二保护强度的FEC编码,其中,第一保护强度强于第二保护强度。
方案二:在对连麦视频流编码时采用较短的IDR帧间隔,同时采用FEC技术和SVC(Scalable Video Coding,可伸缩视频编码)技术。例如:在时域上将连麦视频流的P帧交替分成第0层和第1层,规定第0层的P帧只参考第0层的P帧进行编码,第1层的P帧也只参考第0层的P帧进行编码;此外,针对IDR帧,采用保护强度较强的FEC编码,针对第0层的P帧,采用保护强度较弱的FEC编码,针对第1层的P帧,不采用FEC编码。
然而,方案一或方案二在对连麦视频流编码时,都采用了较短的IDR帧间隔,使得编码器频繁地编码IDR帧,如图2A所示,图2A是相关技术中的编码后的连麦视频流的结构示意图。由于IDR帧的编码效率低于普通的P帧的编码效率,因此,不论是方案一还是方案二,对连麦视频流的编码效率都很低,导致视频播放终端需要在较高的码率下才能保证播放出的连麦视频流满足一定的质量要求,因此码率较低的情况下,基于方案一或方案二所实现的连麦视频极大地影响了用户的使用体验。
此外,方案二在采用FEC技术的同时还采用了SVC技术,导致码率的冗余增高,降低了对连麦视频流的编码效率,极大地限制了连麦视频播放端播放的连麦视频流的质量。可见,不论是方案一还是方案二,在改善连麦视频流的质量方面,都有待改进。
本申请针对相关技术中存在的问题,提出了如下技术构思:在采用常规的编码IDR编码图像组的方法对连麦视频流进行编码时,将一部分IDR帧替换为LTR(Long TermReference,长期参考帧)帧,也即:将一部分IDR编码图像组替换为LTR编码图像组,从而增加IDR帧间隔,避免频繁地对编码效率较低的IDR帧进行编码,提升对连麦视频流的编码效率,使得用户在较低的码率下也能观看到质量较高的连麦视频,增强了用户的连麦视频体验。
下面将参照图1,对本申请提供的视频处理方法进行详细说明。
本申请首先提供了一种视频处理方法,应用于连麦视频源端,例如:图1中的用户端A。在实际场景中,连麦视频源端既可以为图1中的用户端A,也可以为用户端B,为便于陈述,本申请以用户端A为连麦视频源端,用户端B为视频播放终端为例,对所提出的视频处理方法进行详细说明。
在本申请各个实施例中,连麦视频源端和视频播放终端采用的编码器采用的编码标准为支持LTR帧技术的编码标准,例如:编码器可以采用H.264标准或者HEVC编码标准对视频流进行编码。
图2是本申请一实施例提出的一种视频处理方法的流程图。参照图2,本申请提供的编码方法包括以下步骤:
步骤S11:接收待编码的视频流。
在本申请中,连麦视频源端开启与视频播放终端的连麦视频后,连麦视频源端通过音视频采集装置实时获取用户产生的连麦视频流,即待编码的视频流。
步骤S12:对所述视频流进行编码,得到编码后的视频流,所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的。连麦视频源端获取到待编码的视频流后,首先将该待编码的视频流编码为一个以IDR帧为首帧的IDR编码图像组。
在本申请中,相邻的两个IDR帧之间的所有的编码图像组为一个GOP(Group ofPictures,图像组),其中,编码图像组包括:IDR编码图像组和LTR编码图像组。一个GOP中包括一个IDR编码图像组和多个LTR编码图像组,且该IDR编码图像组为该GOP中的首个编码图像组。
本申请采用常规的编码方式编码得到IDR编码图像组,例如当规定IDR编码图像组中的P帧为4个时,编码得到的IDR编码图像组的帧序列可以为:IDR P P P P。
连麦视频源端在编码完一个IDR编码图像组后,按照IDR帧间隔为多个LTR帧间隔的编码规则,将获取的待编码的视频流编码为多个LTR编码图像组,且多个LTR编码图像组的首帧是参考在前的IDR帧或在前的LTR帧编码而成的。
按照IDR帧间隔,即按照常规的编码方式得到的IDR帧间隔。将该IDR帧间隔确定为LTR帧间隔,再次获取当前产生的连麦视频流依次编码得到多个LTR编码图像组,示例地,IDR编码图像组的帧序列为:IDR P P P P时,LTR编码图像组的帧序列可以为:LTR P P PP。其中,LTR编码图像组的首帧是参考当前GOP中的IDR帧或者已经编码得到的LTR帧编码而成的。
图2B是本申请一实施例示出的编码后的连麦视频流的结构示意图。参照图2B,采用本申请的视频处理方法编码得到的连麦视频流的一个GOP的长度是图2A中的一个GOP的长度的4倍,也即本申请的IDR帧间隔为相关技术中的IDR帧间隔的4倍。
步骤S13:将编码后的视频流发送给视频播放终端。
在本申请中,连麦视频源端每编码得到一个编码图像组(IDR编码图像组或LTR编码图像组),会立即将该编码图像组发送给视频播放终端,视频播放终端对该编码图像组进行解码,并将解码得到的连麦视频流发送到播放窗口以展示给用户,最终实现连麦双方的连麦视频交互。本申请通过扩大IDR帧之间的间隔来避免频繁地对编码效率较低的IDR帧进行编码,与相关技术中的编码方式相比,本申请能显著提高连麦视频流的编码效率(即:压缩效率),在相同码率下,采用本申请的编码方式得到的连麦视频流的质量,显著高于采用相关技术中的编码方式所得到的连麦视频流的质量。换言之,当连麦视频流的质量相同时,采用本申请的编码方式得到的连麦视频流所要求的码率明显低于采用相关技术中的编码方式得到的连麦视频流所要求的码率,因此,本申请能明显提高用户的连麦视频体验。
采用本申请提供的视频处理方法,首先获取连麦视频源端当前产生的连麦视频流,将该连麦视频流编码为IDR编码图像组,然后将该IDR编码图像组发送给视频播放终端,然后按照IDR帧间隔(即:IDR编码图像组的长度)为多个LTR帧间隔(LTR编码图像组的长度)的编码规则,再次获取当前产生的连麦视频流,将该连麦视频流编码为多个LTR编码图像组,并依次发送给视频播放终端,其中,每个LTR编码图像组的首帧是参考在前的IDR帧或在前的LTR帧编码而成的。本申请利用LTR帧代替本应当编码为IDR帧的帧,也即:利用LTR编码图像组代替部分IDR编码图像组,扩大了原来的IDR帧间隔,避免了频繁地对编码效率较低的IDR帧进行编码,从而提高了对连麦视频流的编码效率,改善了视频播放终端播放出的连麦视频流的质量,有效地提升了用户连麦视频的体验。
本申请还提供了一种对LTR编码图像组的首帧进行编码的方法。图3是本申请一实施例示出的对多个LTR编码图像组各自的首帧进行编码的流程图。参照图3,对多个LTR编码图像组各自的首帧进行编码的过程包括以下步骤:
步骤S21:确定最新编码的IDR帧;
步骤S22:参考所述最新编码的IDR帧,将所述多个LTR编码图像组中第一个LTR编码图像组的首帧编码为LTR帧或LTRP帧;
步骤S23:确定目标参考帧,所述目标参考帧为所述视频播放终端成功接收到的最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧;
步骤S24:参考所述目标参考帧,将所述多个LTR编码图像组中其他各个LTR编码图像组的首帧编码为LTR帧或LTRP帧。
在本申请中,为区分GOP中的首帧与其它帧,将GOP中的首帧命名为IDR帧,在一个GOP中,只有一个IDR帧。实际上,IDR帧也是LTR帧,LTR帧也是LTRP帧(Long Term ReferencePicture,参考LTR帧编码得到的帧)。因此,参考最新编码的IDR帧编码得到的LTR帧也是LTRP帧,也可以写作LTRP帧,实际上,本申请所有的LTR帧都是参考IDR帧或者LTR帧编码得到的,都是LTRP帧,都可以写作LTRP帧,当其写作LTRP帧时,既可以作为长期参考帧,也可以作为短期参考帧。
示例地,在图2B中,对于LTR编码图像组2,最新编码的IDR帧为IDR编码图像组1的首帧,参照该最新编码的IDR帧,LTR编码图像组2可以将其首帧编码为LTR帧或LTRP帧;对于LTR编码图像组3,其目标参考帧可以是IDR编码图像组1的首帧,可以是LTR编码图像组2的首帧(LTR帧或LTRP帧);对于LTR编码图像组4,其目标参考帧可以是IDR编码图像组1的首帧,可以是LTR编码图像组2的首帧(LTR帧或LTRP帧),也可以是LTR编码图像组3的首帧(LTR帧或LTRP帧)。
但是通常情况下,多个LTR编码图像组的首帧是参考在其之前的最新编码得到的编码图形组的首帧(IDR帧、LTR帧或LTRP帧)编码得到的,且最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧均是视频播放终端成功接收到的。在本申请各个实施例中,如未特别说明,编码各个LTR编码图像组的首帧时,是以最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧为有效可参考帧(被视频播放终端成功接收的帧可以作为有效可参考帧)为前提条件的,换言之,连麦视频源端在接收到了视频播放终端返回的表示成功接收到最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧的状态信息(关于状态信息的介绍将在下文说明)之后,可以将这些最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧作为目标参考帧。
在本申请中,连麦视频源端每次向所述视频播放终端发送一个LTR编码图像组后,会接收所述视频播放终端返回的状态信息,所述状态信息表征所述视频播放终端是否成功接收到每次发送的LTR编码图像组的首帧。在此基础上,步骤S23可以包括:
根据每次接收到的状态信息,确定是否将每次发送的LTR编码图像组的首帧作为目标参考帧。
在本申请中,视频播放终端接收到LTR编码图像组后,针对该LTR编码图像组中的每帧,都会向连麦视频源端返回一个状态信息,该状态信息表示视频播放终端是否成功接收到该帧。通常情况下,为了提高编码效率,视频播放终端只会针对接收到的LTR编码图像组的首帧(LTR帧或LTRP帧)返回状态信息。由于本申请对IDR帧进行了高保护强度的FEC编码(关于FEC编码将在下文中说明),因此IDR帧的解码恢复能力最高,在连麦视频流传输过程中基本不会丢失,因此不需要返回状态信息。
其中,在本次接收到的状态信息表征所述视频播放终端成功接收到本次发送的LTR编码图像组的首帧的情况下,确定目标参考帧为最新编码的IDR帧或该成功接收的首帧。
连麦视频源端在发送一个LTR编码图像组后,如果接收到的返回的状态信息表示视频播放终端成功接收到该LTR编码图像组的首帧,那么连麦视频源端在编码下一个LTR编码图像组的首帧时,可以将该帧确定为编码下一个LTR编码图像组的首帧时使用的目标参考帧。
在本次接收到的状态信息表征所述视频播放终端未成功接收到本次发送的LTR编码图像组的首帧的情况下,确定目标参考帧为最新编码的IDR帧。
在本申请中,为保证视频播放终端一定能成功接收到IDR帧,在编码IDR帧时做了保护强度最大的FEC编码。因此,连麦视频源端在发送一个LTR编码图像组后,如果接收到的返回的状态信息表示视频播放终端未成功接收到该LTR编码图像组的首帧,那么连麦视频源端在编码下一个LTR编码图像组的首帧时,可以将最新编码的IDR帧确定为下一个LTR编码图像组的首帧编码时使用的目标参考帧。当然,还可以将该最新编码的IDR帧之后的其它的成功接收到的编码图像组的首帧(LTR帧或LTRP帧)确定为编码下一个LTR编码图像组的首帧时使用的目标参考帧,本申请对此不作具体限制。
此外,连麦视频源端还可以通过视频播放终端发送的状态信息表判断是否成功接收到每一次发送的LTR编码图像组的首帧,若未接收到状态信息表,表示未成功接收到每一次发送的LTR编码图像组的首帧,也可以将最新编码的IDR帧确定为下一个LTR编码图像组的首帧编码时使用的目标参考帧。当然,还可以将该最新编码的IDR帧之后的其它的成功接收到的编码图像组的首帧(LTR帧或LTRP帧)确定为编码下一个LTR编码图像组的首帧时使用的目标参考帧,本申请对此不作具体限制。
可选地,在确定是否将每次发送的LTR编码图像组的首帧作为目标参考帧之后,还可以执行以下步骤:
在每次接收到的状态信息均表征所述视频播放终端未成功接收到LTR编码图像组的首帧的情况下,将当前接收的待编码的视频流编码为IDR编码图像组。
在本申请中,连麦视频源端可以实时地根据连麦视频流传输时的网络质量调整编码规则。网络质量极差的情况下,为了保证连麦视频流能够较为流畅的播放,避免卡顿或者中断,连麦视频源端会立即强制编码IDR编码图像组。
例如:当连麦视频源端连续多次没有接收到视频播放终端返回的关于LTR帧的状态信息,即:视频播放终端除了IDR帧之外,没有接收到其它任何一个LTR帧或者LTRP帧。代表网络质量极差,此时,连麦视频源端停止继续编码LTR编码图像组,改为编码IDR编码图像组,使得视频播放终端可以成功接收到IDR帧,恢复连麦视频流。
本申请实时地对连麦视频进行过程中的网络进行状态监测,当网络质量极差时,为了尽快地恢复连麦视频播放端因丢失数据而中断的连麦视频流,停止编码LTR编码图像组,改为编码IDR编码图像组,保证了连麦双方之间的连麦视频流的流畅度,使得本申请既能在网络质量较好时改善连麦视频流的质量,也能在网络质量较差时保证连麦视频流的流畅度。
在本申请中,LTR编码图像组中除首帧外的其他帧是可以按照以下步骤编码得到:
参考该LTR编码图像组的首帧,编码P帧;或
参考该LTR编码图像组的首帧之后的其它参考帧,编码P帧,所述其他参考帧为已编码的P帧。
由于连麦视频对实时性具有极高的要求,因此在编码连麦视频流时一般不使用B帧技术。
示例地,对于一个序列为LTR P0 P1 P2 P3的LTR编码图像组,LTR帧之后已编码P帧可以作为短期参考帧(P帧是默认作为短期参考帧的),为该LTR编码图像组中还未编码的帧提供参考,例如:P0帧可以参考LTR帧编码(一般情况下,P0帧只参考该LTR图像组里的LTR帧编码),P1帧可以参考LTR帧或P0帧编码,P2帧可以参考LTR帧、P0帧或P1帧编码。此外,当连麦视频源端允许多帧参考时,P2帧可以同时参考LTR帧和P0帧编码,P3帧可以同时参考P1帧和P2帧编码,以此类推。在本申请实施例中,编码P帧的方式为编码IDR图像组时采用的常规的编码P帧的方式,故在此不作赘述。
在本申请中,在对视频流进行编码,得到编码后的视频流之后,还可以按照以下步骤对编码图像组进行FEC编码:
对所述IDR编码图像组的首帧进行第一保护强度的FEC编码;
对所述LTR编码图像组的首帧进行第二保护强度的FEC编码,对所述LTR编码图像组的除首帧外的其他帧进行第三保护强度的FEC编码,所述第一保护强度强于所述第二保护强度,所述第二保护强度强于所述第三保护强度。
本申请为不同类型的帧分别进行了三种不同保护强度的FEC编码,具体为:第一保护强度、第二保护强度以及第三保护强度,第一保护强度强于第二保护强度,第二保护强度强于第三保护强度。
通常情况下,为了保证视频播放终端一定能接收到IDR帧,连麦视频源端会对IDR编码图像组的首帧进行保护强度最强的FEC编码,即:对IDR编码图像组的首帧进行第一保护强度的FEC编码。
在本实施例中,由于使用一部分LTR帧代替了IDR帧,增大了IDR帧间隔,当某个LTR帧出现故障(例如:视频播放终端未成功接收)时,会导致以该LTR帧为参考帧的其它帧无法解码。为了克服这个问题,本申请对每个LTR编码图像组的LTR帧做较强的FEC保护,即:对LTR编码图像组的首帧进行第二保护强度的FEC编码,对除了首帧以外的其他帧做较弱的FEC保护或者不做FEC保护,即:对LTR编码图像组的除首帧外的其他帧进行第三保护强度的FEC编码(当第三保护强度为零时,即不对LTR编码图像组的除首帧外的其他帧进行FEC编码),从而保证了LTR帧的解码恢复能力,避免了视频播放终端在丢失了某个LTR帧时导致的错误传播。在此基础上,步骤S13可以包括:
将经过FEC编码后的IDR编码图像组和多个LTR编码图像组发送给所述视频播放终端。
在本申请中,对IDR帧做最强的FEC保护,对LTR帧做较强的FEC保护,对普通P帧做较弱的FEC保护或者不做FEC保护,在保证IDR帧的解码恢复能力的同时,使LTR帧拥有近似于IDR帧的解码恢复能力,保证了LTR帧的传输的可靠性,进而保证了连麦视频流的正常解码以及播放。通过本申请提供的对LTR编码图像组进行FEC编码的方式,可以代替相关技术中使用的SVC技术,降低了码率的冗余,从而提高了连麦视频流的编码效率,进而改善了解码得到的连麦视频流的质量。
本申请还可以实时监测连麦视频过程中的网络质量,并根据网络质量实时调整LTR帧间隔。
图4是本申请一实施例示出的调整LTR帧间隔的方法的流程图。参照图4,可以采取如下步骤调整LTR帧间隔:
步骤S31:获取网络质量监测结果;
步骤S32:根据所述网络质量监测结果,调整所述LTR帧间隔。
在本申请实施例中,网络质量与码率成正比,网络质量越好,可获得的码率越高,播放出的连麦视频流的质量越高;网络质量越差,可获得的码率越低,播放出的连麦视频流的质量越差。
网络质量与LTR帧间隔也成正比,网络质量越好,LTR帧间隔越大(LTR帧间隔最大时与IDR编码图像组的长度相同。在本申请中,LTR帧间隔可以用LTR编码图像组的长度表示,LTR编码图像组的长度可以用LTR编码图像组中包括的帧的数量表示);网络质量越差,LTR帧间隔越小。
连麦视频源端设置有网络质量监测装置,以实时监测视频播放终端所处的网络质量,并形成网络质量监测结果。连麦视频源端在对连麦视频流进行编码的过程中,可以根据网络质量监测结果实时地调整编码的规则。例如:可以预先将网络质量监测结果划分为多个等级,每个等级对应一个LTR帧间隔。当网络质量监测结果处于某个等级的时长超过预设时长时,将当前的编码规则调整为该等级对应的LTR帧间隔。
本申请实时监测连麦视频过程中的网络质量,并根据网络质量动态调整LTR帧间隔,综合地考虑了视频质量与差错恢复速度,既可以实现在网络质量好的情况下,提高连麦视频播放端的连麦视频流的质量,也可以在网络质量差的情况下,提升差错恢复速度,避免出现卡顿或中断等状况,保证连麦视频播放端的连麦视频流的流畅度。
可选地,步骤S32可以包括:
调整所述LTR编码图像组包括的编码图像帧的数量。
在本实施例中,LTR帧间隔与编码图像组中的图像帧的数量成正比,当编码图像组中的图像帧越多,LTR帧间隔越长,当编码图像组中的图像帧越少,LTR帧间隔越短。因此,调整编码图像组中的图像帧的数量可以调整LTR帧间隔。
本申请将一部分IDR帧替换为LTR帧,一方面,增加了IDR帧间隔,避免了频繁地编码IDR帧,提高了连麦视频流的编码效率,改善了连麦视频的质量;另一方面,通过将一部分IDR帧替换为LTR帧,将所有的帧划分为IDR帧/LTR帧和普通P帧两层,针对LTR帧采用保护强度较强的FEC编码,针对普通P帧采用保护强度较弱的FEC编码,保证了LTR帧的可靠传输,使LTR帧拥有近似于IDR帧的解码恢复能力(也即:拥有与IDR帧相似的差错恢复效果),使得编码的连麦视流实际上拥有了SVC属性,因此,本申请无需采用SVC技术,相对于相关技术减少了码率的冗余,提高了连麦视频流的编码效率。
本申请还提供了一种视频处理方法,应用于视频播放终端,例如:图1中的用户端B。
图5是本申请一实施例示出的另一种视频处理方法的流程图。参照图5,本申请的视频处理方法包括以下步骤:
步骤S41:接收编码后的视频流;所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
步骤S42:对所述编码后的视频流中的IDR编码图像组,根据该IDR编码图像组的首帧,对该IDR编码图像组进行解码,对所述编码后的视频流中的每个LTR编码图像组,参考在前的IDR帧或在前的LTR帧,对该LTR编码图像组进行解码,得到解码后的视频流;
步骤S43:播放所述解码后的视频流。
示例地,视频播放终端在接收到一个IDR编码图像组后,首先解码出该IDR编码图像组的IDR帧,将解码后的IDR帧缓存到DPB(Decoded Picture Buffer,解码图像缓存)中,然后依次解码IDR帧之后的其它P帧,同时将用作短期参考帧的P帧缓存到DPB(DPB中通常设置有两个参考帧缓存队列,一个用于缓存长期参考帧)中,用于解码其它P帧。视频播放终端在接收到一个LTR编码图像组后,首先从DPB中找到LTR帧的参考帧,参考该参考帧解码得到完整的LTR帧,将解码得到的LTR帧按照FIFO(First In First Out,先入先出)的规则缓存到DPB中,然后在依次解码该LTR帧之后的其它帧。
基于同一发明构思,本申请提供了一种视频处理装置600,视频处理装置600配置在连麦视频源端。图6是本申请一实施例示出的一种视频处理装置的结构示意图。参照图6,视频处理装置600包括:
第一接收模块601,用于接收待编码的视频流;
编码模块602,用于对所述视频流进行编码,得到编码后的视频流,所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
发送模块603,用于将编码后的视频流发送给视频播放终端。可选地,所述码模块602包括:
第一确定模块,用于确定最新编码的IDR帧;
第一LTR帧编码模块,用于参考所述最新编码的IDR帧,将所述多个LTR编码图像组中第一个LTR编码图像组的首帧编码为LTR帧或LTRP帧;
第二确定模块,用于确定目标参考帧,所述目标参考帧为所述视频播放终端成功接收到的最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧;
第二LTR帧编码模块,用于参考所述目标参考帧,将所述多个LTR编码图像组中其他各个LTR编码图像组的首帧编码为LTR帧或LTRP帧。
可选地,所述视频处理装置600还包括:
状态信息接收模块,用于接收所述视频播放终端返回的状态信息,所述状态信息表征所述视频播放终端是否成功接收到每次发送的LTR编码图像组的首帧;
所述第二确定模块包括:
目标参考帧确定模块,用于根据每次接收到的状态信息,确定是否将每次发送的LTR编码图像组的首帧作为目标参考帧;
其中,在本次接收到的状态信息表征所述视频播放终端成功接收到本次发送的LTR编码图像组的首帧的情况下,确定目标参考帧为最新编码的IDR帧或该成功接收的首帧;
在本次接收到的状态信息表征所述视频播放终端未成功接收到本次发送的LTR编码图像组的首帧的情况下,确定目标参考帧为最新编码的IDR帧。
可选地,所述视频处理装置600还包括:
强制编码模块,用于在每次接收到的状态信息均表征所述视频播放终端未成功接收到LTR编码图像组的首帧的情况下,将当前接收的待编码的视频流强制编码为一个IDR编码图像组。
可选地,所述视频处理装置600还包括:
第一P帧编码模块,用于参考该LTR编码图像组的首帧,编码P帧;或
第二P帧编码模块,用于参考该LTR编码图像组的首帧之后的其它参考帧,编码P帧,所述其他参考帧为已编码的P帧。
可选地,所述视频处理装置600还包括:
FEC编码模块,用于对所述IDR编码图像组的首帧进行第一保护强度的FEC编码;对所述LTR编码图像组的首帧进行第二保护强度的FEC编码,对所述LTR编码图像组的除首帧外的其他帧进行第三保护强度的FEC编码,所述第一保护强度强于所述第二保护强度,所述第二保护强度强于所述第三保护强度;
所述发送模块603包括:
发送子模块,用于将经过FEC编码后的IDR编码图像组和多个LTR编码图像组发送给所述视频播放终端。
可选地,所述视频处理装置600还包括:
获取模块,用于获取网络质量监测结果;
调整模块,用于根据所述网络质量监测结果,调整所述LTR帧间隔。
可选地,所述调整模块包括:
调整子模块,用于调整所述LTR编码图像组包括的编码图像帧的数量。
基于同一发明构思,本申请提供了另一种视频处理装置700,视频处理装置700配置在视频播放终端。图7是本申请一实施例示出的另一种视频处理装置700的结构示意图。参照图7,视频处理装置700包括:
第二接收模块701,用于接收编码后的视频流;所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
解码模块702,用于对所述编码后的视频流中的IDR编码图像组,根据该IDR编码图像组的首帧,对该IDR编码图像组进行解码,对所述编码后的视频流中的每个LTR编码图像组,参考在前的IDR帧或在前的LTR帧,对该LTR编码图像组进行解码,得到解码后的视频流;
播放模块703,用于播放所述解码后的视频流。基于同一发明构思,本申请另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种电子设备800。图8是本申请一实施例示出的一种电子设备的结构示意图。参照与8,电子设备800包括存储器801、处理器802及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种视频处理方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种视频处理方法,其特征在于,所述方法包括:
接收待编码的视频流;
对所述视频流进行编码,得到编码后的视频流,所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
将编码后的视频流发送给视频播放终端;
其中,所述多个LTR编码图像组各自的首帧是按照以下步骤编码得到的:
确定最新编码的IDR帧;
参考所述最新编码的IDR帧,将所述多个LTR编码图像组中第一个LTR编码图像组的首帧编码为LTR帧或LTRP帧;
确定目标参考帧,所述目标参考帧为所述视频播放终端成功接收到的最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧;
参考所述目标参考帧,将所述多个LTR编码图像组中其他各个LTR编码图像组的首帧编码为LTR帧或LTRP帧。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述视频播放终端返回的状态信息,所述状态信息表征所述视频播放终端是否成功接收到每次发送的LTR编码图像组的首帧;
确定目标参考帧,包括:
根据每次接收到的状态信息,确定是否将每次发送的LTR编码图像组的首帧作为目标参考帧;
其中,在本次接收到的状态信息表征所述视频播放终端成功接收到本次发送的LTR编码图像组的首帧的情况下,确定目标参考帧为最新编码的IDR帧或该成功接收的首帧;
在本次接收到的状态信息表征所述视频播放终端未成功接收到本次发送的LTR编码图像组的首帧的情况下,确定目标参考帧为最新编码的IDR帧。
3.根据权利要求2所述的方法,其特征在于,在根据每次接收到的状态信息,确定是否将每次发送的LTR编码图像组的首帧作为目标参考帧之后,所述方法还包括:
在每次接收到的状态信息均表征所述视频播放终端未成功接收到LTR编码图像组的首帧的情况下,将当前接收的待编码的视频流编码为IDR编码图像组。
4.根据权利要求1所述的方法,其特征在于,所述LTR编码图像组中除首帧外的其他帧是按照以下步骤编码得到的:
参考该LTR编码图像组的首帧,编码P帧;或
参考该LTR编码图像组的首帧之后的其他参考帧,编码P帧,所述其他参考帧为已编码的P帧。
5.根据权利要求1所述的方法,其特征在于,在对所述视频流进行编码,得到编码后的视频流之后,所述方法还包括:
按照以下步骤对编码图像组进行FEC编码:
对所述IDR编码图像组的首帧进行第一保护强度的FEC编码;
对所述LTR编码图像组的首帧进行第二保护强度的FEC编码,对所述LTR编码图像组的除首帧外的其他帧进行第三保护强度的FEC编码,所述第一保护强度强于所述第二保护强度,所述第二保护强度强于所述第三保护强度;
将所述编码后的视频流发送给视频播放终端,包括:
将经过FEC编码后的IDR编码图像组和多个LTR编码图像组发送给所述视频播放终端。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取网络质量监测结果;
根据所述网络质量监测结果,调整所述LTR帧间隔。
7.根据权利要求1所述的方法,其特征在于,调整所述LTR帧间隔,包括:
调整所述LTR编码图像组包括的编码图像帧的数量。
8.一种视频处理方法,其特征在于,应用于视频播放终端中,所述方法包括:
接收编码后的视频流;所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
对所述编码后的视频流中的IDR编码图像组,根据该IDR编码图像组的首帧,对该IDR编码图像组进行解码,对所述编码后的视频流中的每个LTR编码图像组,参考在前的IDR帧或在前的LTR帧,对该LTR编码图像组进行解码,得到解码后的视频流;
播放所述解码后的视频流;
其中,所述多个LTR编码图像组各自的首帧是按照以下步骤编码得到的:
确定最新编码的IDR帧;
参考所述最新编码的IDR帧,将所述多个LTR编码图像组中第一个LTR编码图像组的首帧编码为LTR帧或LTRP帧;
确定目标参考帧,所述目标参考帧为所述视频播放终端成功接收到的最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧;
参考所述目标参考帧,将所述多个LTR编码图像组中其他各个LTR编码图像组的首帧编码为LTR帧或LTRP帧。
9.一种视频处理装置,其特征在于,包括:
第一接收模块,用于接收待编码的视频流;
编码模块,用于对所述视频流进行编码,得到编码后的视频流,所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
发送模块,用于将编码后的视频流发送给视频播放终端;
其中,所述编码模块包括:
第一确定模块,用于确定最新编码的IDR帧;
第一LTR帧编码模块,用于参考所述最新编码的IDR帧,将所述多个LTR编码图像组中第一个LTR编码图像组的首帧编码为LTR帧或LTRP帧;
第二确定模块,用于确定目标参考帧,所述目标参考帧为所述视频播放终端成功接收到的最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧;
第二LTR帧编码模块,用于参考所述目标参考帧,将所述多个LTR编码图像组中其他各个LTR编码图像组的首帧编码为LTR帧或LTRP帧。
10.一种视频处理装置,其特征在于,包括:
第二接收模块,用于接收编码后的视频流;所述编码后的视频流包括:IDR编码图像组和多个LTR编码图像组,所述IDR编码图像组以IDR帧为首帧,所述LTR编码图像组的首帧是按照IDR帧间隔为多个LTR帧间隔的编码规则,参考在前的IDR帧或在前的LTR帧编码而成的;
解码模块,用于对所述编码后的视频流中的IDR编码图像组,根据该IDR编码图像组的首帧,对该IDR编码图像组进行解码,对所述编码后的视频流中的每个LTR编码图像组,参考在前的IDR帧或在前的LTR帧,对该LTR编码图像组进行解码,得到解码后的视频流;
播放模块,用于播放所述解码后的视频流;
其中,所述多个LTR编码图像组各自的首帧是按照以下步骤编码得到的:
确定最新编码的IDR帧;
参考所述最新编码的IDR帧,将所述多个LTR编码图像组中第一个LTR编码图像组的首帧编码为LTR帧或LTRP帧;
确定目标参考帧,所述目标参考帧为所述视频播放终端成功接收到的最新编码的IDR帧、最新编码的LTR帧或最新编码的LTRP帧;
参考所述目标参考帧,将所述多个LTR编码图像组中其他各个LTR编码图像组的首帧编码为LTR帧或LTRP帧。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一所述的方法中的步骤。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1-7任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910866707.3A CN110708569B (zh) | 2019-09-12 | 2019-09-12 | 一种视频处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910866707.3A CN110708569B (zh) | 2019-09-12 | 2019-09-12 | 一种视频处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110708569A CN110708569A (zh) | 2020-01-17 |
CN110708569B true CN110708569B (zh) | 2021-08-13 |
Family
ID=69195425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910866707.3A Active CN110708569B (zh) | 2019-09-12 | 2019-09-12 | 一种视频处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110708569B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125554B (zh) * | 2020-08-25 | 2023-03-10 | 华为技术有限公司 | 一种编解码方法、装置及系统 |
CN112040232B (zh) * | 2020-11-04 | 2021-06-22 | 北京金山云网络技术有限公司 | 实时通信的传输方法和装置、实时通信的处理方法和装置 |
CN112929747B (zh) * | 2021-01-18 | 2023-03-31 | 北京洛塔信息技术有限公司 | 基于网络反馈的视频编码方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009123997A1 (en) * | 2008-04-02 | 2009-10-08 | Cisco Technology, Inc. | Video swithching without instantaneous decoder refresh-frames |
CN103024374A (zh) * | 2011-10-20 | 2013-04-03 | 斯凯普公司 | 视频数据的传输 |
CN107333133A (zh) * | 2016-04-28 | 2017-11-07 | 浙江大华技术股份有限公司 | 一种码流接收设备的码流编码的方法及装置 |
CN107343205A (zh) * | 2016-04-28 | 2017-11-10 | 浙江大华技术股份有限公司 | 一种长期参考码流的编码方法及编码装置 |
CN107439008A (zh) * | 2015-04-09 | 2017-12-05 | 微软技术许可有限责任公司 | 减轻数字视频的互操作性情景中的损失 |
CN108028922A (zh) * | 2015-09-08 | 2018-05-11 | 微软技术许可有限责任公司 | 视频编码 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10027977B2 (en) * | 2013-10-21 | 2018-07-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Encoding method for distribution of multimedia contents with enforcement of commercial advertisement |
-
2019
- 2019-09-12 CN CN201910866707.3A patent/CN110708569B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009123997A1 (en) * | 2008-04-02 | 2009-10-08 | Cisco Technology, Inc. | Video swithching without instantaneous decoder refresh-frames |
CN103024374A (zh) * | 2011-10-20 | 2013-04-03 | 斯凯普公司 | 视频数据的传输 |
CN107439008A (zh) * | 2015-04-09 | 2017-12-05 | 微软技术许可有限责任公司 | 减轻数字视频的互操作性情景中的损失 |
CN108028922A (zh) * | 2015-09-08 | 2018-05-11 | 微软技术许可有限责任公司 | 视频编码 |
CN107333133A (zh) * | 2016-04-28 | 2017-11-07 | 浙江大华技术股份有限公司 | 一种码流接收设备的码流编码的方法及装置 |
CN107343205A (zh) * | 2016-04-28 | 2017-11-10 | 浙江大华技术股份有限公司 | 一种长期参考码流的编码方法及编码装置 |
Non-Patent Citations (1)
Title |
---|
针对计算机模拟输出图像的X264改进算法研究;孙少雄;《中国优秀硕士学位论文全文数据库》;20130930;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110708569A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11184584B2 (en) | Method for image decoding, method for image encoding, apparatus for image decoding, apparatus for image encoding | |
CN110708569B (zh) | 一种视频处理方法、装置、电子设备及存储介质 | |
JP5788101B2 (ja) | メディアデータのネットワークストリーミング | |
JP6562992B2 (ja) | デジタルビデオストリーミングにおけるトリック再生 | |
WO2016131223A1 (zh) | 一种视频帧丢帧方法及视频发送装置 | |
KR20180031547A (ko) | 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치 | |
CN110024409B (zh) | 具有多个接收器的视频流的关键帧削弱的方法和装置 | |
JP5524193B2 (ja) | メディアストリーム処理 | |
CN101938456B (zh) | 一种减小媒体延迟的方法、设备及系统 | |
CN102648584B (zh) | 使用前向纠错检验可用带宽的系统、方法和介质 | |
JP2014529258A (ja) | コード化ビデオデータのネットワークストリーミング | |
CN110519640B (zh) | 视频处理方法、编码器、cdn服务器、解码器、设备及介质 | |
US20110029684A1 (en) | Staggercasting with temporal scalability | |
CN103109528A (zh) | 用于控制和管理多点会议的系统和方法 | |
CN107770600A (zh) | 流媒体数据的传输方法、装置、设备和存储介质 | |
CN110996122B (zh) | 视频帧传输方法、装置、计算机设备及存储介质 | |
JP2018011365A (ja) | ストリーミングサービスを提供する方法及び装置 | |
US20160182911A1 (en) | De-juddering techniques for coded video | |
JP4373088B2 (ja) | マルチメディア通信端末 | |
JP2011530907A (ja) | チャネル切替のためのメディアストリームの分離 | |
US8928728B2 (en) | Systems, methods, and media for controlling a presentation of data images in a video stream | |
US20130346831A1 (en) | Method of generating forward error correction packet and server and client apparatus employing the same | |
CN104780387A (zh) | 一种视频传输方法及系统 | |
CN111866574A (zh) | 一种移动端流媒体实时倒放方法 | |
CN117579843B (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 |