CN112040232A - 实时通信的传输方法和装置、实时通信的处理方法和装置 - Google Patents
实时通信的传输方法和装置、实时通信的处理方法和装置 Download PDFInfo
- Publication number
- CN112040232A CN112040232A CN202011213194.5A CN202011213194A CN112040232A CN 112040232 A CN112040232 A CN 112040232A CN 202011213194 A CN202011213194 A CN 202011213194A CN 112040232 A CN112040232 A CN 112040232A
- Authority
- CN
- China
- Prior art keywords
- target
- video
- video stream
- client
- audio
- 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.)
- Granted
Links
- 230000006854 communication Effects 0.000 title claims abstract description 174
- 238000004891 communication Methods 0.000 title claims abstract description 173
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000005540 biological transmission Effects 0.000 title claims abstract description 55
- 238000003672 processing method Methods 0.000 title abstract description 17
- 230000000875 corresponding effect Effects 0.000 claims description 118
- 238000004590 computer program Methods 0.000 claims description 14
- 230000002596 correlated effect Effects 0.000 claims description 13
- 230000001276 controlling effect Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 13
- 230000003139 buffering effect Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/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
- 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
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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
-
- 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
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种实时通信的传输方法和装置、实时通信的处理方法和装置,其中,该实时通信的传输方法包括:通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;对所述第一音视频进行编码,得到第一视频流,其中,所述第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;通过所述第一客户端与第二客户端之间的实时通信连接,将所述第一视频流传输给所述第二客户端。通过本申请,解决了相关技术中的编解码方式存在由于解码时延过大导致的实时音视频通信时效性差的问题。
Description
技术领域
本申请通信技术领域,尤其涉及一种实时通信的传输方法和装置、实时通信的处理方法和装置。
背景技术
在实时音视频通信(RTC)场景下,延迟是重要的技术指标。在优化延迟指标时,需要同时考虑控制成本以及不影响用户体验(即,视频主观质量)。
相关技术中,RTC低延迟技术通过采用LDP编码配置来降低采集端的编码延迟。图1示出了LDP编码方式的帧类型、以及帧与帧之间的参考关系。如图1所示,箭头方向表示被参考,以POC=3的帧为例,它需要参考第0帧(长期参考帧)和第2帧(短期参考帧)进行编码,同时它会被第4帧所参考。已有的LDP编码方式在编码P帧时,一般会同时有长期参考帧和短期参考帧。
然而,对于上述编码方式,由于编解码的参考帧之间存在依赖关系,在解码过程中,在解码一个图像帧时,需要先解码其前面所有的图像帧,造成最大会有一个GOP帧数的解码延迟。
因此,相关技术中的编解码方式,存在由于解码时延过大导致的实时音视频通信时效性差的问题。
发明内容
本申请提供了一种实时通信的传输方法和装置、实时通信的处理方法和装置,以至少解决相关技术中的编解码方式存在由于解码时延过大导致的实时音视频通信时效性差的问题。
根据本申请实施例的一个方面,提供了一种实时通信的传输方法,包括:通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;对所述第一音视频进行编码,得到第一视频流,其中,所述第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;通过所述第一客户端与第二客户端之间的实时通信连接,将所述第一视频流传输给所述第二客户端。
根据本申请实施例的另一个方面,提供了一种实时通信的处理方法,包括:接收第一客户端通过所述第一客户端与第二客户端之间的实时通信连接传输的第一视频流;对所述第一视频流进行解码,得到目标音视频,其中,所述第一视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;通过所述第二客户端的实时通信界面播放所述目标音视频。
根据本申请实施例的又一个方面,提供了一种实时通信的传输装置,包括:采集单元,用于通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;编码单元,用于对所述第一音视频进行编码,得到第一视频流,其中,所述第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;传输单元,用于通过所述第一客户端与第二客户端之间的实时通信连接,将所述第一视频流传输给所述第二客户端。
可选地,编码单元包括:第一编码模块,用于对所述第一音视频中的第一图像组的第一关键帧进行帧内编码,得到第一子视频流;第二编码模块,用于将所述第一关键帧作为参考帧,对所述第一图像组的多个第一非关键帧进行并行编码,得到多个第二子视频流,其中,所述第一视频流包含所述第一子视频流和多个所述第二子视频流,多个所述第一非关键帧和多个所述第二子视频流一一对应。
可选地,所述编码单元包括:第一确定模块,用于确定与候选编码模式对应的目标码率,其中,所述目标码率为在所述候选编码模式下与第二非关键帧对应的码率,所述第二非关键帧为所述第一音视频中的一个非关键帧;第二确定模块,用于确定与所述候选编码模式对应的目标失真,其中,所述目标失真为在所述候选编码模式下与所述第二非关键帧对应的失真;选取模块,用于根据所述目标码率和所述目标失真,从多个所述候选编码模式中选取出目标编码模式;第三编码模块,用于以与所述第二非关键帧对应的第二关键帧作为参考帧,使用所述目标编码模式对所述第二非关键帧进行编码,得到目标子视频码流,所述第一视频流包括所述目标子视频码流。
可选地,所述选取模块包括:确定子模块,用于将所述目标码率和所述目标失真的加权和,确定为与所述候选编码模式对应的模型选取参数值;选取子模块,用于从多个所述候选编码模式中选取出与最小模型选取参数值对应的所述目标编码模式。
可选地,所述装置还包括:确定单元,用于在所述将所述目标码率和所述目标失真的加权和,确定为与所述候选编码模式对应的模型选取参数值之前,确定与所述第二非关键帧对应的目标拉格朗日系数,其中,所述目标拉格朗日系数与所述第二非关键帧和所述第二关键帧之间的目标距离正相关,所述目标失真的权重为固定值,所述目标码率的权重为所述目标拉格朗日系数。
可选地,所述确定单元包括:第三确定模块,用于确定与所述第二非关键帧对应的初始拉格朗日系数;第四确定模块,用于根据所述初始拉格朗日系数、所述第二非关键帧所在的第二图像组的目标长度、以及所述目标距离,确定所述目标拉格朗日系数,其中,所述目标拉格朗日系数与所述初始拉格朗日系数和所述目标距离正相关,与所述目标长度负相关。
可选地,所述装置还包括:检测单元,用于在所述通过与第一客户端对应的目标采集设备进行音视频采集之前,检测到对所述第一客户端执行的加入操作,其中,所述加入操作用于加入多个所述第二客户端之间的实时通信;第一接收单元,用于响应所述加入操作,接收多个所述第二客户端中的目标客户端传输的第二视频流,其中,所述第二视频流为与所述目标客户端对应的视频流中从当前时刻开始的视频流;第一解码单元,用于对所述第二视频流进行解码,得到第二音视频,其中,所述第二视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;播放单元,用于在所述第一客户端上的实时通信界面的目标区域内播放所述第二音视频。
可选地,所述装置还包括:第二接收单元,用于在所述对所述第二视频流进行解码,得到第二音视频之前,在所述第二视频流的起始帧为非关键帧的情况下,接收对与所述第二视频流的起始帧对应的第三关键帧进行编码得到的第三视频流;第二解码单元,用于对所述第三视频流进行解码,得到与所述第三关键帧匹配的目标关键帧。
根据本申请实施例的又一个方面,提供了一种实时通信的处理装置,包括:第一接收单元,用于接收第一客户端通过所述第一客户端与第二客户端之间的实时通信连接传输的第一视频流;第一解码单元,用于对所述第一视频流进行解码,得到目标音视频,其中,所述第一视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;播放单元,用于通过所述第二客户端的实时通信界面播放所述目标音视频。
可选地,所述第一解码单元包括:第一解码模块,用于对所述第一视频流中的第一目标子视频流进行帧内解码,得到目标图像组的第一目标关键帧;第二解码模块,用于将所述第一目标关键帧作为参考帧,对所述第一视频流中的多个第二目标子视频流进行并行解码,得到所述目标图像组的多个目标非关键帧,其中,所述目标音视频包含所述第一目标关键帧和多个所述目标非关键帧,多个所述第二目标子视频流与多个所述目标非关键帧一一对应。
可选地,所述装置还包括:检测单元,用于在所述接收第一客户端通过所述第一客户端与第二客户端之间的实时通信连接传输的第一视频流之前,检测到对所述第二客户端执行的加入操作,其中,所述加入操作用于加入多个所述第一客户端之间的实时通信;控制单元,用于响应所述加入操作,控制显示所述第二客户端的实时通信界面,其中,所述第一视频流为与任一个所述第一客户端对应的视频流中从当前时刻开始的视频流。
可选地,所述装置还包括:第二接收单元,用于在所述对所述第一视频流进行解码,得到目标音视频之前,在所述第一视频流的起始帧为非关键帧的情况下,接收对与所述第一视频流的起始帧对应的第二目标关键帧进行编码得到的第二视频流;第二解码单元,用于对所述第二视频流进行解码,得到与所述第二目标关键帧匹配的第三目标关键帧。
根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
在本申请实施例中,采用一个图像组中的非关键帧仅参考关键帧进行编解码的方式,通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;对第一音视频进行编码,得到第一视频流,其中,第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;通过第一客户端与第二客户端之间的实时通信连接,将第一视频流传输给第二客户端,由于一个图像组中的非关键帧仅参考关键帧进行编解码,在解码第N帧时,无需等待解码其前面所有的图像帧即可对其解码,可以实现降低采集端的编码延迟和播放端的解码延迟的目的,达到了减少编解码时延、提高实时音视频通信时效性的技术效果,进而解决了相关技术中的编解码方式存在由于解码时延过大导致的实时音视频通信时效性差的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是一种可选的LDP编码模式的示意图;
图2是根据本申请实施例的一种可选的实时通信的传输方法的硬件环境的示意图;
图3是根据本申请实施例的一种可选的实时通信的传输方法的流程示意图;
图4是根据本申请实施例的一种可选的RTC全链路流程示意图;
图5是根据本申请实施例的一种可选的LDP编码的参考帧模式的示意图;
图6是根据本申请实施例的一种可选的实时通信的处理方法的流程示意图;
图7是根据本申请实施例的一种可选的低延迟编码方法的流程示意图;
图8是根据本申请实施例的一种可选的实时通信的传输装置的结构框图;
图9是根据本申请实施例的一种可选的实时通信的传输装置的结构框图;
图10是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本领域技术人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
1.视频编码:是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式,常见的视频编解码标准有H.264、H.265、AVS、AV1等等。
2.RTC(Real-time Communications,实时通信):狭义一般称为实时音视频,最典型的应用为直播连麦、实时音视频通话、视频会议、交互式在线教育等。RTC从功能流程上来说,包含采集端(采集、前处理、编码)、传输端(采集端至服务器、服务器之间、服务器至播放端的传输)、播放端(解码、缓冲、渲染)等很多环节。
3.延迟:是网络传输中的一个重要指标,表征数据从一个端点到另外一个端点所需的时间,一般使用毫秒、秒等作为其单位。RTC中的延迟通常指采集端开始视频采集,至播放端视频渲染完成的时间间隔。
4.TCP(Transmission Control Protocol,传输控制协议)/UDP(User DatagramProtocol,用户数据报协议):最常见的两种底层网络传输协议,用于通过Internet(网络)发送数据位(称为数据包)的协议,但两者以不同的方式工作。TCP的特点是数据传输可靠但是速度慢,UDP的特点是速度快延迟低但可能丢包。RTC场景中通常选择以UDP为核心的传输协议,如SRT(Secure Reliable Transport,一种视频流协议),QUIC(Quick UDP InternetConnection,快速UDP互联网连接)等。
5.网络抖动:由于数据包的大小,网络路由的路径选择等众多因素,无法保证数据包的延迟时间是一致的,数据包和数据包延迟的差异称为抖动。也就是说,数据包的延时值忽大忽小的现象称之为抖动。
6.编码延迟:是指编码过程中产生的延迟,即视频帧输入至编码完成生成码流所消耗的时间。
7.LDP(Low Delay P,低延迟P帧)编码:每个GOP内第一帧以I帧编码,后续帧全部以P帧编码,编码每个P帧时,只参考播放顺序在其前的图像。通过避免后向参考,以保证编解码顺序与显示顺序一致,降低编解码延迟。视频编码中除了LDP编码模式外,还有All-Intra(全I帧)编码配置和Random-Access(随机访问)编码配置。
8.编码帧类型,编码帧通常分为3种类型:I帧(内部编码帧)亦称为关键帧,作为视频流中的随机访问点,采取帧内预测的方式编码(帧内编码),不参考其他帧,通常编码质量较高,压缩效率低;P帧(预测编码帧),通过参考前向的I帧或前向的其他P帧,采用帧间预测、或者帧内与帧间预测结合的方式编码,压缩效率高;B帧(双向预测编码帧),可参考前向与后向的帧进行预测编码,压缩效率最高。
9.POC(PictureOrder Count,图像序列号):表示视频编码时,源视频帧的显示顺序。
10.GOP(Group Of Pictures,编码组):在视频编码中,GOP是一组多帧连续编码帧序列,用于辅助解码时随机访问,通常每一个GOP以I帧开头。
11.CDN(Content Delivery Network,即内容分发网络),是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容。
12、CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体):是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片。
13.视频编码的失真:编码前的原始视频与编码后的视频的差异。
14.视频编码的码率:编码后视频每秒的bit数(比特数),单位通常为kbps(千比特每秒)。
15.拉格朗日系数:视频编码中用于平衡视频失真和视频码率的参数。
16.原始像素/预测像素/残差:原始像素是指视频编码前的原始像素值,预测像素是指编码时依据帧内或帧间预测得到的像素值,残差:原始像素与预测像素的差值。
17.VR(Virtual Reality,虚拟现实):是指综合利用计算机图形系统和各种显示及控制等接口设备,在计算机上生成的、可交互的三维环境中提供沉浸感觉的技术。
根据本申请实施例的一个方面,提供了一种实时通信的传输方法。可选地,在本实施例中,上述实时通信的传输方法可以应用于如图2所示的由编码端(编码设备,第一设备)202、解码端(解码设备,第二设备)204和播放设备206所构成的硬件环境中。如图2所示,编码端202通过网络与解码端204进行连接,可以在编码端202(和/或解码端204)上或独立于编码端202(和/或解码端204)设置数据库,用于为编码端202(和/或解码端204)提供数据存储服务。解码端204和播放设备206可以是独立的两个设备,也可以是同一设备,本实施例中对此不作限定。
如图2所示,编码端202可以用于对输入的待传输视频进行编码,得到对应的视频码流,并通过网络将视频码流传输给解码端204;解码端204可用于对接收到的视频码流进行解码,得到对应的视频,并将得到的视频通过播放设备206进行播放。
上述网络可以包括但不限于:广域网、城域网或局域网,编码端202和解码端204可以是终端设备,也可以是服务器,可以但不限于是以下至少之一:PC、手机、平板电脑、VR设备等。本申请实施例的实时通信的传输方法可以由编码端202来执行,该编码端202可以是终端设备,还可以是服务器。其中,终端设备执行本申请实施例的实时通信的传输方法也可以是由安装在其上的客户端来执行。
需要说明的是,对于实时通信的场景,编码端和解码端可以是双向的,也就是,一个终端设备可以作为编码端,对采集到的音视频进行编码,并传输给对端设备,也可以作为解码端,对对端设备传输来的视频码流进行解码。
以由编码端202(第一设备)来执行本实施例中的实时通信的传输方法为例,图3是根据本申请实施例的一种可选的实时通信的传输方法的流程示意图,如图3所示,该方法的流程可以包括以下步骤:
步骤S302,通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频。
本实施例中的实时通信的传输方法可以应用于具有实时通信(RTC)需求的场景,例如,直播连麦,实时音视频通话,视频会议,交互式在线教育等,第一音视频可以是直播连麦的视频、实时音视频、视频会议的视频、交互式在线教育的视频等,本实施例中对此不作限定。
需要说明的是,与直播相比,RTC要求延迟更低。RTC的一个具体应用可以是直播场景中的直播连麦,也就是低延时直播。普通直播一般采用TCP协议,使用CDN进行内容分发,会有几秒甚至十几秒的延时,主播和观众的互动只能通过文字短消息等方式进行。而直播连麦采用的是UDP协议,内容实时传输,主播和观众可以进行音视频连麦互动,实时沟通,延时一般低至几百毫秒。
对于RTC场景,参与实时通信的多个设备之间可以通过网络经由服务器进行通信连接。RTC全链路流程如图4所示,涉及到的设备可以分为三端:采集端,传输端,播放端。对于某个设备,在其进行音视频采集时,其可以作为采集端,在其接收视频流、解码并播放视频流时,其可以作为播放端。
可选地,在本实施例中,第一设备上运行有第一客户端,第二设备上可以运行有第二客户端,第一客户端和第二客户端之间可以建立实时通信连接。在作为采集端时,各个客户端可以通过调用对应设备上或者对应设备外接的音视频采集设备(比如,内置摄像头,外接摄像头)进行音视频采集。在作为播放端时,各个客户端可以接收对端传输的视频流,对视频流进行解码,并将解码得到的音视频通过对应设备的显示部件(例如,屏幕)进行播放。
在进行实时通信的过程中,第一设备可以通过与第一客户端对应的目标采集设备(例如,摄像头)进行音视频采集,得到待传输的第一音视频。
步骤S304,对第一音视频进行编码,得到第一视频流,其中,第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码。
第一音视频是目标采集设备所采集到的实时音视频。对于采集到的第一音视频,第一设备(第一设备上的编码器)可以对第一音视频进行编码,得到第一视频流。
在实时通信的过程中,延迟的产生可以分为三方面,如下:
(1)采集端的延迟,包括:CMOS成像及颜色格式转换的耗时,图像内容的前处理如美颜、去噪等耗时,以及编码耗时带来的延迟;
(2)传输端的延迟,包括:全链路的采集端至服务器至播放端设置的传输延迟,影响因素有传输数据大小、传输协议和传输网络环境等;
(3)播放端的延迟包括视频解码延迟,为了防止网络抖动的缓冲延迟,以及播放设备的渲染延迟等。
对于RTC低延迟方式,通过LDP编码配置来降低采集端的编码延迟;通过定制的UDP协议(如,QUIC)来代替TCP协议降低传输端的延迟;通过优化播放端的动态缓冲区大小来降低播放端的延迟。
采用已有的LDP编解码方式,由于编解码的参考帧之间存在依赖关系,在解码过程中,在解码一个图像帧时,需要先解码其前面所有的图像帧,造成最大会有一个GOP帧数的解码延迟。
可选地,在本实施例中,在对第一音视频进行编码时,非关键帧仅参考同一图像组中的关键帧进行编码。对应地,在解码时,非关键帧仅参考同一图像组中的关键帧进行解码(如图5所示),避免了LDP编解码方式中视频帧之间的链式依赖关系。在解码一个图像帧时,只需要先解码与其对应的关键帧,解码延迟会大大降低。
在进行音视频编码时,可以直接对采集到的各个图像帧进行编码,也可以在采集到一个图像组之后,以图像组为单位进行编码,本实施例中对此不作限定。
需要说明的是,采用非关键帧仅参考关键帧进行编码的编码方式可以是在一些场景下执行的,例如,网络传输延迟较高,多方实时通话的场景等。编码器可以在切换条件满足时进行编码方式的切换,例如,从上述非关键帧仅参考关键帧进行编码的编码方式切换到其他图像质量更高的编码方式,上述切换条件可以是:网络传输延迟低于一个阈值,多方实时通话切换为双方实时通话,本实施例中对此不作限定。
步骤S306,通过第一客户端与第二客户端之间的实时通信连接,将第一视频流传输给第二客户端。
对于编码得到的第一视频流,第一音视频中的不同图像帧对应于第一视频流中的不同子视频流。各个图像帧对应的视频码流中可以携带有参考指示信息,参考指示信息可以指示当前帧是否为关键帧,所参考的关键帧,当前帧和所参考的关键帧之间的距离,还可以用于指示其他编码参数,本实施例中对此不做限定。
第一设备可以通过第一客户端与第二客户端之间的实时通信连接,将第一视频流传输给第二客户端。例如,在一个图像帧编码完成之后,第一设备可以通过该实时通信连接将该图像帧编码得到的视频码流传输给第二客户端。又例如,在一个图像组编码完成之后,第一设备可以通过该实时通信连接将该图像组编码得到的视频码流传输给第二客户端。
第一设备可以通过网络将第一视频流传输给服务器,由服务器将第一视频流转发给第二设备(第二客户端)。对于第二设备,第二设备可以接收第一客户端通过第一客户端与第二客户端之间的实时通信连接传输的该第一视频流,比如,从服务器接收该第一视频流。
按照视频流中携带的图像帧的参考指示信息,或者,根据预先配置的参考关系,第二客户端可以确定第一视频流中的各个图像帧的类型(关键帧或者非关键帧)。如果是非关键帧,第二客户端可以确定非关键帧参考的关键帧。按照图像帧之间的参考关系,第二设备可以对第一视频流进行解码,得到目标音视频,目标音视频是与第一音视频匹配的音视频。
由于是按照图像帧执行编解码,在解码得到目标音视频的各个图像帧之后,第二客户端可以按照图像帧的播放顺序依次播放各个图像帧。解码视频流和播放音视频可以是同时进行的,也就是,在一个图像帧解码完成之后,如果按照播放顺序当前待播放的图像帧为解码图像帧之后,则可以播放该解码图像帧。
第二客户端上可以显示有实时通信界面,目标音视频可以是在该实时通信界面上全屏播放,或者,在实时通信界面的一定区域内播放,本实施例中对此不作限定。
通过上述步骤S302至步骤S306,通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;对第一音视频进行编码,得到第一视频流,其中,第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;通过第一客户端与第二客户端之间的实时通信连接,将第一视频流传输给第二客户端,解决了相关技术中的编解码方式存在由于解码时延过大导致的实时音视频通信时效性差的问题,减少了编解码时延,提高了实时音视频通信的时效性。
作为一种可选的实施例,对第一音视频进行编码,得到第一视频流包括:
S11,对第一音视频中的第一图像组的第一关键帧进行帧内编码,得到第一子视频流;
S12,将第一关键帧作为参考帧,对第一图像组的多个第一非关键帧进行并行编码,得到多个第二子视频流,其中,第一视频流包含第一子视频流和多个第二子视频流,多个第一非关键帧和多个第二子视频流一一对应。
第一音视频是按照图像组进行编码的,每个图像组可以包含一个关键帧和多个非关键帧,例如,第一图像组包括第一关键帧和多个第一非关键帧,不同类型的图像帧对应的编码方式是不同的。
对于第一关键帧,第一设备可以对第一关键帧进行帧内编码,得到第一子视频流。在得到第一子视频流之后,第一设备可以通过实时通信连接将第一子视频流传输给第二客户端。在对第一关键帧进行帧内编码之前,第一设备可以缓存第一关键帧的副本,从而可以缓存的副本作为第一非关键帧的参考帧。
对于任一个第一非关键帧,第一设备可以将第一关键帧作为参考帧,对第一关键帧进行帧间编码,或者,帧间编码结合帧内编码。由于非关键帧仅参考同一图像组的关键帧,可以对多个第一非关键帧进行并行编码,得到与各第一非关键帧对应的子视频码流。多个第一非关键帧进行并行编码得到的视频码流为多个第二子视频流,多个第一非关键帧与多个第二子视频码流一一对应。第一视频流包含第一子视频流和多个第二子视频流。
本实施例中所提供的编码方式,每一个P帧只参考其对应的I帧,不再参考其前一帧,也即,每一帧只保留长期参考帧而放弃短期参考帧。相比于已有的LDP模式,该方式解除了各P帧在编码或解码时的依赖关系,可以做到完全并行处理,降低了编码及解码的延迟。
需要说明的是,多个非关键帧并行编码是指多个非关键帧的编解码是独立的,即,多个非关键帧的编解码互不干扰,各非关键帧编码完成之后,可以将得到的视频码流直接传输给对端设备,而无需等待其他非关键帧的编码结果。
通过本实施例,通过对多个非关键帧进行并行编解码,避免了LDP编码模式中,其编解码过程的并行性所受到限制,提高了视频编解码的效率,减小了编解码时延。
作为一种可选的实施例,对第一音视频进行编码,得到第一视频流包括:
S21,确定与候选编码模式对应的目标码率,其中,目标码率为在候选编码模式下与第二非关键帧对应的码率,第二非关键帧为第一音视频中的一个非关键帧;
S22,确定与候选编码模式对应的目标失真,其中,目标失真为在候选编码模式下与第二非关键帧对应的失真;
S23,根据目标码率和目标失真,从多个候选编码模式中选取出目标编码模式;
S24,以与第二非关键帧对应的第二关键帧作为参考帧,使用目标编码模式对第二非关键帧进行编码,得到目标子视频码流,第一视频流包括目标子视频码流。
对于视频编码器来说,视频编码后的失真与码率无法兼顾,即,码率越小则失真会越大,或失真越小则码率会越大。整个编码的过程为了平衡失真和码率的关系,可以根据失真和码率选取非关键帧的编码模式。
为了兼顾失真和码率,编码器内可以有很多编码模式,不同的编码模式对应于编码过程或者子过程的一种选择,比如,图像块的大小,参考块的搜索方向,参考块的搜索步长,与滤波相关的选择,对于其他影响码率和失真的配置方式,均可作为编码模式的一种选择。视频编码过程可以是一个模式选择的过程,以保证在超低延迟下的码率平稳度。
对于预先配置与非关键帧对应的多个候选编码模式。对于一个候选编码模式,第一设备可以首先确定在该候选编码模式下与当前待编码的第二非关键帧对应的码率,得到目标码率,以及确定该候选编码模式下与第二非关键帧对应的失真,得到目标失真,第二非关键帧为第一音视频中的任一个非关键帧。目标码率和目标失真是编码器或者其他处理器根据编码模式和第二非关键帧计算得到的,而不需要对第二非关键帧进行实际的编码。
不同候选编码模式的目标码率和目标失真是不同的。根据目标码率和目标失真,第一设备可以从多个候选编码模式中选取出目标编码模式,目标编码模式是对第二非关键帧进行编码所使用的编码模式。编码模式的选取规则可以有多种,例如,从目标码率小于或者等于目标码率阈值的一个或多个候选编码模式中选取出目标编码模式,又例如,从目标失真小于或者等于目标失真阈值的一个或多个候选编码模式中选取出目标编码模式。
在对第二非关键帧进行编码时,第一设备可以以与第二非关键帧对应的第二关键帧(同于图像组中的关键帧)作为参考帧,使用目标编码模式对第二非关键帧进行编码,得到目标子视频码流。
通过本实施例,根据码率和失真选取对非关键帧进行编码的编码模式,可以减少传输延迟和播放延迟,兼顾视频质量和时效性。
作为一种可选的实施例,根据目标码率和目标失真,从多个候选编码模式中选取出目标编码模式包括:
S31,将目标码率和目标失真的加权和,确定为与候选编码模式对应的模型选取参数值;
S32,从多个候选编码模式中选取出与最小模型选取参数值对应的目标编码模式。
对一个候选编码模式,第一设备可以将与其对应的目标码率和目标失真的加权和,确定与该候选编码模式对应的模型选取参数值,该模型选取参数值为与该模式对应的编码代价J。
目标编码模式的选取公式可以如公式(1)所示:
min{J},wherein J=D+λ·R(1)
其中,D为失真,R为码率,λ为拉格朗日系数,J表示综合考虑失真和码率的编码代价。由公式(1)可知,λ越大,码率R的权重越大,编码器倾向于选择码率小而失真大的模式,反之亦然。按照公式(1),最终目标是使综合编码代价最小。
作为一种可选的示例,编码器可以遍历多个编码模式,找到编码代价J最低的那一种模式进行实际编码。参见公式(1),其中存在某些模式,会使得码率R很大但是失真D很小;也存在某些模式,码率很小但失真很大。由公式(1)可知,当λ越大,码率R的权重越大,为了使编码代价J更小,编码器会倾向于选择码率小而失真大的模式,反之亦然。
比例,假设有2个模式:模式1的D1=100,R1=10;模式2的D2=10,R2=100。当λ=2,J1=D1+λ*R1=100+20=120,J2=10+200=210,则J1<J2,故最终会选择模式1;当λ=0.5,J1=100+5=105,J2=10+50=60,则J2<J1,故最终会选择模式2。可见,λ越大,编码器越会选择码率小的模式,最终的编码结果,码率也更小。
按照各个候选编码模式对应的模型选取参数值(编码代价),第一设备(或者,编码器)可以从多个候选编码模式中选取出模型选取参数值做小的编码模式,作为目标编码模式。
通过本实施例,通过选取编码代价最小的编码模式进行实际编码,可以兼顾失真和码率,提高编码模式选取的合理性。
作为一种可选的实施例,在将目标码率和目标失真的加权和,确定为与候选编码模式对应的模型选取参数值之前,上述方法还包括:
S41,确定与第二非关键帧对应的目标拉格朗日系数,其中,目标拉格朗日系数与第二非关键帧和第二关键帧之间的目标距离正相关,目标失真的权重为固定值,目标码率的权重为目标拉格朗日系数。
相关技术中的LDP参考帧模式下,GOP内所有P帧的码率相对较稳定。而采用每个P帧仅参考其对应的I帧的超低延迟模式下,可以从编解码的并行度上降低延迟。然而,由于参考帧仅保留一个长期参考帧,丢弃了短期参考帧,会导致GOP内越靠后的P帧,其距离参考帧(GOP的第一帧I帧)越远,故预测像素与原始像素的残差越大,在相同的编码参数下其码率会越高,即,在一个GOP内,越靠后的P帧码率会越高,相较于已有的LDP模式码率波动会更大,故而可能会导致解码端的缓冲延迟增大。
为了解决这一问题,在本实施例中,在编码时调整GOP内P帧的拉格朗日系数λ。调整方式为:对于GOP内越靠后的P帧,令其λ越大,使得该帧码率尽可能和靠前的P帧更接近,保持码率稳定。
对于第二非关键帧,第一设备可以确定与该第二非关键帧对应的目标拉格朗日系数,目标拉格朗日系数与第二非关键帧和第二关键帧之间的目标距离(i,可以表示当前非关键帧是第几个P帧)正相关。
在计算编码代价时,目标失真的权重为固定值,比如,1,目标码率的权重为目标拉格朗日系数,该系数值与第二非关键帧和本图像组的关键帧之间的距离成正比,从而可以保证该非关键帧的码率尽可能和靠前的P帧更接近。
通过本实施例,按照当前P帧和本图像组的I帧之间的距离调整当前P对应的拉格朗日系统,可以保持码率稳定。
作为一种可选的实施例,确定与第二非关键帧对应的目标拉格朗日系数包括:
S51,确定与第二非关键帧对应的初始拉格朗日系数;
S52,根据初始拉格朗日系数、第二非关键帧所在的第二图像组的目标长度、以及目标距离,确定目标拉格朗日系数,其中,目标拉格朗日系数与初始拉格朗日系数和目标距离正相关,与目标长度负相关。
第一设备可以确定与第二非关键帧对应的初始拉格朗日系数,该初始拉格朗日系数可以由编码参数决定,在此不作赘述;然后,根据初始拉格朗日系数、当前图像组的目标长度和目标距离,第一设备可以确定目标拉格朗日系数,这里,目标长度为第二非关键帧所在的第二图像组的长度。
例如,对一个GOP内第i个P帧的拉格朗日系数(即,λi)的计算公式可以如公式(2)所示:
λi=λori·f(gop,i)(2)
其中,λori每个P帧的原始λ,gop表示当前GOP内的图像帧数,f是关于gop和i的函数。
其中,f(gop,i)可以表示为如公式(3)所示的形式:
f(gop,i)=k·i/gop (3)
其中,k为一个经验系数,当i越大,也就是在GOP中位置越靠后,则f(gop,i)越大;同时,若GOP长度越长,则f(gop,i)的变化速率越慢,即相邻帧之间的差距越小。
如果仅改变编码帧的参考关系,对于一个图像组中越靠后的P帧,预测像素与原始像素的残差越大,在相同的编码参数下其码率会越高,防抖动缓冲延迟也会升高。防抖动缓冲延迟是指:每帧图像编码完后大小差异越大(码率波动越大),在播放端需要的缓冲也越大,缓冲延迟也会越大。
通过调整每个P帧的拉格朗日系数,防止越靠后的P帧码率越大,可以平稳码率(码率波动相对较小),从而可以降低防抖动缓冲延迟,进而降低播放端的缓冲延迟。
通过本实施例,通过改变GOP内各P帧的拉格朗日系数,来降低超低延迟参考帧配置下引起的码率波动,从而降低播放端的缓冲延迟。
作为一种可选的实施例,在通过与第一客户端对应的目标采集设备进行音视频采集之前,上述方法还包括:
S61,检测到对第一客户端执行的加入操作,其中,加入操作用于加入多个第二客户端之间的实时通信;
S62,响应加入操作,接收多个第二客户端中的目标客户端传输的第二视频流,其中,第二视频流为与目标客户端对应的视频流中从当前时刻开始的视频流;
S63,对第二视频流进行解码,得到第二音视频,其中,第二视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;
S64,在第一客户端上显示实时通信界面,并在实时通信界面的目标区域内显示第二音视频。
开始进行音视频采集可以是在检测到用户进入到与第二客户端的实时通话(实时通信)之后触发的。如果实时通话是第一客户端和第二客户端两者之间的通话,从启动实时通话到结束实时通话是一个完整的过程,客户端对于采集的音视频可以按照图像组进行编码和解码,编解码过程与前述类似,在此不做赘述。
可选地,实时通话是第一客户端和多个第二客户端之间的通话。在第一客户端加入之前,多个第二客户端之间已经开启了实时通话。第一设备可以通过触摸屏、或者其他输入设备检测到对第一客户端执行的加入操作,加入操作用于加入多个第二客户端之间的实时通信,比如,用户可以点击多人聊天会话中的加入实时通话的入口,触发进入到进行中的实时通话。
响应加入操作,第一客户端可以跳转至实时通话界面,同时从服务器获取各第二客户端在当前时刻(加入到实时通信的时刻)之后的视频流,不同第二客户端的编解码过程(接收视频流、解析视频流以及播放对应的音视频)是独立的。
对于多个第二客户端中的目标客户端,第一设备可以接收目标客户端(多个第二客户端中的任一个客户端)传输的第二视频流,第二视频流为与目标客户端对应的视频流中从当前时刻开始的视频流。由于目标客户端在第一客户端加入前已经在实时通信中,因此,与目标客户端对应的视频流不少于第二视频流。
需要说明的是,由于按照图像组进行编解码,因此,对于一个客户端,在采集侧、服务器侧和/或播放端可以至少保存与该客户端对应的当前图像组(或者,对应的视频码流),或者,至少保存与该客户端对应的当前图像组的关键帧和当前非关键帧(或者,对应的视频码流)。
对于第二视频流,第一客户端可以采用前述第二客户端解码第一视频流的方式进行解码,得到对应的第二音视频。不同第二客户端解码得到的音视频是不同的。在解码得到第二音视频之后,第一设备可以在第一客户端的实时通信界面的目标区域内播放第二音视频,不同第二客户端解码得到的音视频在上述实时通信界面中的显示区域可以是不重叠的。
通过本实施例,再加入已有实时通信时接收对端在加入时刻之后的视频流,可以减少网络资源占用,提高编解码效率,进而保证音视频通信时效性。
作为一种可选的实施例,在对第二视频流进行解码,得到第二音视频之前,上述方法还包括:
S71,在第二视频流的起始帧为非关键帧的情况下,接收对与起始帧对应的第三关键帧进行编码得到的第三视频流;
S72,对第三视频流进行解码,得到与第三关键帧匹配的目标关键帧。
如果第二视频流的起始帧(第一起始帧)是非关键帧,则解码该起始帧、以及该起始帧所在的图像组(第三图像组)中位于该起始帧之后的非关键帧时,需要使用同一图像组的关键帧。在编码侧,上述关键帧为第三关键帧,对第三关键帧进行编码得到的码流为第三视频流。
第一设备可以接收该第三视频流,对第三视频流进行解码(比如,帧内解码),得到与第三关键帧匹配的目标关键帧。第三视频流与第二视频流可以是同时接收的(例如,服务器在确定起始帧为非关键帧之后主动推送的),也可以是先后接收的(例如,第一设备在确定起始帧为非关键帧之后主动获取的),本实施例中对此不作限定。
目标关键帧是第三关键帧经过编码、传输和解码过程后得到的,因此,目标关键帧和第三关键帧之间是匹配的,但不一定完成相同。得到的目标关键帧可以用于对该起始帧以及同一图像组中该起始帧之后的非关键帧进行解码,解码过程与前述类似,在此不做赘述。
通过本实施例,通过获取与起始帧对应的关键帧的视频流,并解码出对应的关键帧,可以保证视频编解码的准确性,同时可以减少对网络资源的占用(起始帧之前的非关键帧可以不需要传输)。
根据本申请实施例的另一个方面,还提供了一种实时通信的处理方法。可选地,在本实施例中,上述实时通信的处理方法可以应用于如图2所示的由编码端202、解码端204和播放设备206所构成的硬件环境中。已经进行过说明的,在此不做赘述。
本申请实施例的实时通信的处理方法可以由解码端204来执行,该解码端204可以是终端设备(如,第二设备)。其中,终端设备执行本申请实施例的实时通信的处理方法也可以是由安装在其上的客户端来执行。以由解码端204(第二设备)来执行本实施例中的实时通信的处理方法为例,图6是根据本申请实施例的一种可选的实时通信的处理方法的流程示意图,如图6所示,该方法的流程可以包括以下步骤:
步骤S602,接收第一客户端通过第一客户端与第二客户端之间的实时通信连接传输的第一视频流;
步骤S604,对第一视频流进行解码,得到目标音视频,其中,第一视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;
步骤S606,通过第二客户端的实时通信界面播放目标音视频。
本实施例中的实时通信的处理方法可以用于解码并播放通过上述任一项实时通信的传输方法对第一音视频进行编码所得到的视频码流。已经进行了说明的,在此不做赘述。
通过上述步骤S602至步骤S606,接收第一客户端通过第一客户端与第二客户端之间的实时通信连接传输的第一视频流;对第一视频流进行解码,得到目标音视频,其中,第一视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;通过第二客户端的实时通信界面播放目标音视频,解决了相关技术中的编解码方式存在由于解码时延过大导致的实时音视频通信时效性差的问题,减少了编解码时延,提高了实时音视频通信的时效性。
作为一种可选的实施例,对第一视频流进行解码,得到目标音视频包括:
S81,对第一视频流中的第一目标子视频流进行帧内解码,得到目标图像组的第一目标关键帧;
S82,将第一目标关键帧作为参考帧,对第一视频流中的多个第二目标子视频流进行并行解码,得到目标图像组的多个目标非关键帧,其中,目标音视频包含第一目标关键帧和多个目标非关键帧,多个第二目标子视频流与多个目标非关键帧一一对应。
在对第一视频流进行解码时,可以按照图像组的播放顺序依次解码。第一视频流中与目标图像组(任一个图像组)对应的视频包含:与目标图像组的关键帧对应的第一目标子视频流,与多个非关键帧对应的多个第二目标子视频流。
解码设备可以首先对第一目标子视频流进行帧内解码,得到目标图像组的第一目标关键帧;然后,将第一目标关键帧作为参考帧,对第一视频流中的多个第二目标子视频流进行并行解码,得到目标图像组的多个目标非关键帧。解码过程与前述实施例中的编码过程是类似的,在此不作赘述。
作为一种可选的实施例,在接收第一客户端通过第一客户端与第二客户端之间的实时通信连接传输的第一视频流之前,上述方法还包括:
S91,检测到对第二客户端执行的加入操作,其中,加入操作用于加入多个第一客户端之间的实时通信;
S92,响应加入操作,控制显示第二客户端的实时通信界面,其中,第一视频流为与任一个第一客户端对应的视频流中从当前时刻开始的视频流。
在接收视频流之前,第二客户端可以首先加入到与其他设备的实时通话(实时通信)中。上述实时通话可以是第二客户端和第一客户端之间的双方实时通话,也可以是第二客户端和多个第一客户端之间的多方实时通话。第二客户端加入多方实时通话的过程与前述实施例中第一客户端加入多方实时通话的过程类似,在此不做赘述。
作为一种可选的实施例,在对第一视频流进行解码,得到目标音视频之前,上述方法还包括:
S101,在第一视频流的起始帧为非关键帧的情况下,接收对与第一视频流的起始帧对应的第二目标关键帧进行编码得到的第二视频流;
S102,对第二视频流进行解码,得到与第二目标关键帧匹配的第三目标关键帧。
第二设备获取第一视频流的起始帧的关键帧的方式与前述实施例中第一设备获取第二视频流的起始帧的关键帧的方式类似,在此不做赘述。
下面结合可选示例对本申请实施例中的实时通信的传输方法和实时通信的处理方法进行解释说明。
在如图1所示的LDP编码模式中,其编解码过程的并行性受到限制,无法实现帧级并行编解码;并且,在解码过程中,最大会有一个GOP帧数的解码延迟。同时,已有的LDP低延迟编码,仅考虑了降低编码端延迟,并未考虑传输延迟和播放延迟;并且,仅考虑降低编码延迟可能反而会导致传输延迟和播放延迟升高。
在本示例中提供的是一种面向RTC场景的低延迟编码方法,通过优化编码配置,降低采集端和播放端的延迟(优化音视频编/解码,防抖动缓存),以降低全链路的延迟:通过改变编码的参考帧关系,提出一种超低延迟参考帧模式,提高编解码的并行度,以此来降低采集端的编码延迟和播放端的解码延迟;通过改变GOP内各P帧的拉格朗日系数,来降低在低延迟参考帧配置下引起的码率波动,从而降低播放端的缓冲延迟。
如图7所示,本示例中所提供的低延迟编码方法的流程可以包括以下步骤:
步骤S702,建立第一设备的第一客户端和第二设备的第二客户端之间的实时通信连接。
步骤S704,对采集端采集的音视频进行编码,得到对应的视频码流,通过实施通信连接传输给播放端。
在实时通信的过程中,第一设备和第二设备中的任一端即可作为采集端,又可作为播放端。在第一设备作为采集端时,第二设备可以作为播放端,在第二设备作为采集端时,第一设备可以作为播放端。
对于采集端,采集端可以进行音视频采集,得到对应的音视频。在进行一定的数据前处理之后,采集端可以进行音视频编码,编码的部件可以为编码器。音视频编码可以是基于图像组进行的。对于一个图像组的关键帧,可以对该图像组的关键帧进行帧内编码;对于一个图像组的非关键帧,可以首先确定当前待编码非关键帧的目标参考视频帧,按照目标参考视频帧,对该图像组的非关键帧进行帧间编码,或者,帧内编码结合帧间编码。
作为一种可选的实施方式,确定当前待编码非关键帧的参考视频帧可以包括:可以将当前图像组的关键帧,确定为目标参考视频帧。这里,非关键帧的参考帧可以仅为同一图像组的关键帧。
作为另一种可选的实施方式,当前图像组的多个非关键帧可以被划分为多个片段,确定当前待编码非关键帧的参考视频帧可以包括:在当前待编码非关键帧为当前片段的第一个非关键帧的情况下,可以将当前图像组的关键帧,确定为目标参考视频帧;在当前待编码非关键帧不是当前片段的第一个非关键帧的情况下,可以将当前待编码非关键帧的前一个非关键帧,确定为目标参考视频帧。
可选地,在当前待编码非关键帧允许参考多帧的情况下,可以将当前图像组的关键帧、以及当前片段中位于当前待编码非关键帧之前的至少一个非关键帧,确定为目标参考视频帧。
可选地,在对多个非关键帧进行编码时,可以对当前图像组中处于各个片段相同位置上的非关键帧进行并行编码。
可选地,在确定当前待编码非关键帧的参考视频帧之前,可以首先确定多个非关键帧所划分为的多个片段。可以根据目标延迟时间(时延需求,用户可以忍受的最大延迟时间)和目标编解码时间(编解码一帧的用时),确定目标级数(目标延迟帧数,用户能够忍耐的最大延迟帧数),其中,目标延迟时间为允许的最大延迟时间,目标编解码时间为一个视频帧的编解码时间,编解码时间包含编码所用的时间和解码所用的时间,目标级数为在目标延迟时间内允许编解码出的视频帧的数量;按照目标级数,确定与当前图像组对应的多个片段,其中,每个片段中包含的非关键帧的数量小于或者等于目标级数。
可选地,根据目标延迟时间和目标编解码时间,确定目标级数包括:确定目标延迟时间与第一编解码时间的目标时间差值,第一编解码时间为一个图像组的关键帧的编解码时间;将目标时间差值与第二编解码时间的商,确定为目标级数,其中,第二编解码时间为一个图像组的非关键帧的编解码时间,目标级数为在目标延迟时间内允许编解码出的非关键帧的数量,目标编解码时间包含第一编解码时间和第二编解码时间。
除了确定目标参考视频帧以外,为了均衡失真和码率,编码器可以从多个编码模式中选取中目标编码模式。对于各个编码模式,可以按照公式(1)计算出各个编码模式对应的编码代价。
在计算编码代价之前,编码器可以首先调整当前待编码非关键帧的拉格朗日系数,以保证一个图像组中越靠后的P帧拉格朗日系数越大,计算拉格朗日系数的方式可以但不限于如公式(2)和公式(3)所示的方式。
可选地,除了通过改变拉格朗日系数来调整P帧的码率以外,也可以通过调整量化参数QP(Quote-Printable)来达到近似效果,在一个GOP内越靠后的帧,令其QP越大。
对于多个编码模式,编码器可以分别计算各个编码模式对应的编码代价,并从多个编码模式中选取出编码代价最小的编码模式,作为目标编码模式。
按照目标参考视频帧和目标编码模式,编码器可以对当前非关键帧进行编码,得到对应的视频流,视频码流可以携带本视频帧的参考帧的参考指示信息。在对一个图像组的各个视频帧进行编码,得到对应的视频流之后,采集端可以将得到的视频流通过实时通信连接传输到播放端。
步骤S706,播放端可以对接收到的视频流进行解码,得到对应的音视频,并通过播放器播放解码得到的音视频。
播放端在接收到对端传输的视频流之后,可以按照视频流中的参考指示信息,确定各个视频帧的参考帧,并按照参考关系对视频流进行解码,得到对应的音视频,并通过播放器播放解码得到的音视频。
通过本示例,通过优化编码配置,降低采集端和播放端的延迟,通过改变P帧的拉格朗日系数,平稳码率,降低播放端缓冲延迟,以此降低全链路的延迟,可以满足RTC等低延迟场景的需求。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的又一个方面,提供了一种用于实施上述实时通信的传输方法的实时通信的传输装置。图8是根据本申请实施例的一种可选的实时通信的传输装置的结构框图,如图8所示,该装置可以包括:
采集单元802,用于通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;
编码单元804,与采集单元802相连,用于对第一音视频进行编码,得到第一视频流,其中,第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;
传输单元806,与编码单元804相连,用于通过第一客户端与第二客户端之间的实时通信连接,将第一视频流传输给第二客户端。
需要说明的是,该实施例中的采集单元802可以用于执行上述步骤S302,该实施例中的编码单元804可以用于执行上述步骤S304,该实施例中的传输单元806可以用于执行上述步骤S306。
通过上述模块,通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;对第一音视频进行编码,得到第一视频流,其中,第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;通过第一客户端与第二客户端之间的实时通信连接,将第一视频流传输给第二客户端,解决了相关技术中的编解码方式存在由于解码时延过大导致的实时音视频通信时效性差的问题,减少了编解码时延,提高了实时音视频通信的时效性。
作为一种可选的实施例,编码单元804包括:
第一编码模块,用于对第一音视频中的第一图像组的第一关键帧进行帧内编码,得到第一子视频流;
第二编码模块,用于将第一关键帧作为参考帧,对第一图像组的多个第一非关键帧进行并行编码,得到多个第二子视频流,其中,第一视频流包含第一子视频流和多个第二子视频流,多个第一非关键帧和多个第二子视频流一一对应。
作为一种可选的实施例,编码单元804包括:
第一确定模块,用于确定与候选编码模式对应的目标码率,其中,目标码率为在候选编码模式下与第二非关键帧对应的码率,第二非关键帧为第一音视频中的一个非关键帧;
第二确定模块,用于确定与候选编码模式对应的目标失真,其中,目标失真为在候选编码模式下与第二非关键帧对应的失真;
选取模块,用于根据目标码率和目标失真,从多个候选编码模式中选取出目标编码模式;
第三编码模块,用于以与第二非关键帧对应的第二关键帧作为参考帧,使用目标编码模式对第二非关键帧进行编码,得到目标子视频码流,第一视频流包括目标子视频码流。
作为一种可选的实施例,选取模块包括:
确定子模块,用于将目标码率和目标失真的加权和,确定为与候选编码模式对应的模型选取参数值;
选取子模块,用于从多个候选编码模式中选取出与最小模型选取参数值对应的目标编码模式。
作为一种可选的实施例,上述装置还包括:
确定单元,用于在将目标码率和目标失真的加权和,确定为与候选编码模式对应的模型选取参数值之前,确定与第二非关键帧对应的目标拉格朗日系数,其中,目标拉格朗日系数与第二非关键帧和第二关键帧之间的目标距离正相关,目标失真的权重为固定值,目标码率的权重为目标拉格朗日系数。
作为一种可选的实施例,确定单元包括:
第三确定模块,用于确定与第二非关键帧对应的初始拉格朗日系数;
第四确定模块,用于根据初始拉格朗日系数、第二非关键帧所在的第二图像组的目标长度、以及目标距离,确定目标拉格朗日系数,其中,目标拉格朗日系数与初始拉格朗日系数和目标距离正相关,与目标长度负相关。
作为一种可选的实施例,上述装置还包括:
检测单元,用于在通过与第一客户端对应的目标采集设备进行音视频采集之前,检测到对第一客户端执行的加入操作,其中,加入操作用于加入多个第二客户端之间的实时通信;
第一接收单元,用于响应加入操作,接收多个第二客户端中的目标客户端传输的第二视频流,其中,第二视频流为与目标客户端对应的视频流中从当前时刻开始的视频流;
第一解码单元,用于对第二视频流进行解码,得到第二音视频,其中,第二视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;
播放单元,用于在第一客户端上的实时通信界面的目标区域内播放第二音视频。
作为一种可选的实施例,上述装置还包括:
第二接收单元,用于在对第二视频流进行解码,得到第二音视频之前,在第二视频流的起始帧为非关键帧的情况下,接收对与第二视频流的起始帧对应的第三关键帧进行编码得到的第三视频流;
第二解码单元,用于对第三视频流进行解码,得到与第三关键帧匹配的目标关键帧。
根据本申请实施例的又一个方面,提供了一种用于实施上述实时通信的处理方法的实时通信的处理装置。图9是根据本申请实施例的一种可选的实时通信的处理装置的结构框图,如图9所示,该装置可以包括:
第一接收单元902,用于接收第一客户端通过第一客户端与第二客户端之间的实时通信连接传输的第一视频流;
第一解码单元904,与接收单元902相连,用于对第一视频流进行解码,得到目标音视频,其中,第一视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;
播放单元906,与解码单元904相连,用于通过第二客户端的实时通信界面播放目标音视频。
需要说明的是,该实施例中的第一接收单元902可以用于执行上述步骤S602,该实施例中的第一解码单元904可以用于执行上述步骤S604,该实施例中的播放单元906可以用于执行上述步骤S606。
通过上述模块,通过接收第一客户端通过第一客户端与第二客户端之间的实时通信连接传输的第一视频流;对第一视频流进行解码,得到目标音视频,其中,第一视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;通过第二客户端的实时通信界面播放目标音视频,解决了相关技术中的编解码方式存在由于解码时延过大导致的实时音视频通信时效性差的问题,减少了编解码时延,提高了实时音视频通信的时效性。
作为一种可选的实施例,第一解码单元904包括:
第一解码模块,用于对第一视频流中的第一目标子视频流进行帧内解码,得到目标图像组的第一目标关键帧;
第二解码模块,用于将第一目标关键帧作为参考帧,对第一视频流中的多个第二目标子视频流进行并行解码,得到目标图像组的多个目标非关键帧,其中,目标音视频包含第一目标关键帧和多个目标非关键帧,多个第二目标子视频流与多个目标非关键帧一一对应。
作为一种可选的实施例,上述装置还包括:
检测单元,用于在接收第一客户端通过第一客户端与第二客户端之间的实时通信连接传输的第一视频流之前,检测到对第二客户端执行的加入操作,其中,加入操作用于加入多个第一客户端之间的实时通信;
控制单元,用于响应加入操作,控制显示第二客户端的实时通信界面,其中,第一视频流为与任一个第一客户端对应的视频流中从当前时刻开始的视频流。
作为一种可选的实施例,上述装置还包括:
第二接收单元,用于在对第一视频流进行解码,得到目标音视频之前,在第一视频流的起始帧为非关键帧的情况下,接收对与第一视频流的起始帧对应的第二目标关键帧进行编码得到的第二视频流;
第二解码单元,用于对第二视频流进行解码,得到与第二目标关键帧匹配的第三目标关键帧。
根据本申请实施例的又一个方面,还提供了一种实时通信系统,包括:运行有第一客户端的第一设备,运行有第二客户端的第二设备,所述第一设备和所述第二设备通过实时通信连接相连,其中,第一设备可以包含本申请实施例中提供的上述任一项实时通信的传输装置(或者,第一设备为上述实时通信的传输装置),第二设备可以包含本申请实施例中提供的上述任一项实时通信的处理装置(或者,第二设备为上述实时通信的处理装置)。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图2所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种用于实施上述实时通信的传输方法和/或实时通信的处理方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
图10是根据本申请实施例的一种可选的电子设备的结构框图,如图10所示,包括处理器1002、通信接口1004、存储器1006和通信总线1008,其中,处理器1002、通信接口1004和存储器1006通过通信总线1008完成相互间的通信,其中,
存储器1006,用于存储计算机程序;
处理器1002,用于执行存储器1006上所存放的计算机程序时,实现如下步骤:
S1,通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;
S2,对第一音视频进行编码,得到第一视频流,其中,第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;
S3,通过第一客户端与第二客户端之间的实时通信连接,将第一视频流传输给第二客户端。
可选地,处理器1002,用于执行存储器1006上所存放的计算机程序时,实现如下步骤:
S1,接收第一客户端通过第一客户端与第二客户端之间的实时通信连接传输的第一视频流;
S2,对第一视频流进行解码,得到目标音视频,其中,第一视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;
S3,通过第二客户端的实时通信界面播放目标音视频。
可选地,在本实施例中,上述的通信总线可以是PCI (Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA (Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,上述存储器1002中可以但不限于包括上述实时通信的传输装置中的采集单元802、编码单元804以及传输单元806。此外,还可以包括但不限于上述实时通信的传输装置中的其他模块单元,本示例中不再赘述。
作为另一种示例,上述存储器1002中可以但不限于包括上述实时通信的处理装置中的第一接收单元902、第一解码单元904以及播放单元906。此外,还可以包括但不限于上述实时通信的处理装置中的其他模块单元,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU (Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP (DigitalSignal Processing,数字信号处理器)、ASIC (Application Specific IntegratedCircuit,专用集成电路)、FPGA (Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图10所示的结构仅为示意,实施上述实时通信的传输方法和/或实时通信的处理方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,终端设备还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行设备投屏的方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;
S2,对第一音视频进行编码,得到第一视频流,其中,第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;
S3,通过第一客户端与第二客户端之间的实时通信连接,将第一视频流传输给第二客户端。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,接收第一客户端通过第一客户端与第二客户端之间的实时通信连接传输的第一视频流;
S2,对第一视频流进行解码,得到目标音视频,其中,第一视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;
S3,通过第二客户端的实时通信界面播放目标音视频。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请实施例的又一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一个实施例中的方法步骤。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (16)
1.一种实时通信的传输方法,其特征在于,包括:
通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;
对所述第一音视频进行编码,得到第一视频流,其中,所述第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;
通过所述第一客户端与第二客户端之间的实时通信连接,将所述第一视频流传输给所述第二客户端。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一音视频进行编码,得到第一视频流包括:
对所述第一音视频中的第一图像组的第一关键帧进行帧内编码,得到第一子视频流;
将所述第一关键帧作为参考帧,对所述第一图像组的多个第一非关键帧进行并行编码,得到多个第二子视频流,其中,所述第一视频流包含所述第一子视频流和多个所述第二子视频流,多个所述第一非关键帧和多个所述第二子视频流一一对应。
3.根据权利要求1所述的方法,其特征在于,所述对所述第一音视频进行编码,得到第一视频流包括:
确定与候选编码模式对应的目标码率,其中,所述目标码率为在所述候选编码模式下与第二非关键帧对应的码率,所述第二非关键帧为所述第一音视频中的一个非关键帧;
确定与所述候选编码模式对应的目标失真,其中,所述目标失真为在所述候选编码模式下与所述第二非关键帧对应的失真;
根据所述目标码率和所述目标失真,从多个所述候选编码模式中选取出目标编码模式;
以与所述第二非关键帧对应的第二关键帧作为参考帧,使用所述目标编码模式对所述第二非关键帧进行编码,得到目标子视频码流,所述第一视频流包括所述目标子视频码流。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标码率和所述目标失真,从多个所述候选编码模式中选取出目标编码模式包括:
将所述目标码率和所述目标失真的加权和,确定为与所述候选编码模式对应的模型选取参数值;
从多个所述候选编码模式中选取出与最小模型选取参数值对应的所述目标编码模式。
5.根据权利要求4所述的方法,其特征在于,在所述将所述目标码率和所述目标失真的加权和,确定为与所述候选编码模式对应的模型选取参数值之前,所述方法还包括:
确定与所述第二非关键帧对应的目标拉格朗日系数,其中,所述目标拉格朗日系数与所述第二非关键帧和所述第二关键帧之间的目标距离正相关,所述目标失真的权重为固定值,所述目标码率的权重为所述目标拉格朗日系数。
6.根据权利要求5所述的方法,其特征在于,所述确定与所述第二非关键帧对应的目标拉格朗日系数包括:
确定与所述第二非关键帧对应的初始拉格朗日系数;
根据所述初始拉格朗日系数、所述第二非关键帧所在的第二图像组的目标长度、以及所述目标距离,确定所述目标拉格朗日系数,其中,所述目标拉格朗日系数与所述初始拉格朗日系数和所述目标距离正相关,与所述目标长度负相关。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述通过与第一客户端对应的目标采集设备进行音视频采集之前,所述方法还包括:
检测到对所述第一客户端执行的加入操作,其中,所述加入操作用于加入多个所述第二客户端之间的实时通信;
响应所述加入操作,接收多个所述第二客户端中的目标客户端传输的第二视频流,其中,所述第二视频流为与所述目标客户端对应的视频流中从当前时刻开始的视频流;
对所述第二视频流进行解码,得到第二音视频,其中,所述第二视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;
在所述第一客户端上的实时通信界面的目标区域内播放所述第二音视频。
8.根据权利要求7所述的方法,其特征在于,在所述对所述第二视频流进行解码,得到第二音视频之前,所述方法还包括:
在所述第二视频流的起始帧为非关键帧的情况下,接收对与所述第二视频流的起始帧对应的第三关键帧进行编码得到的第三视频流;
对所述第三视频流进行解码,得到与所述第三关键帧匹配的目标关键帧。
9.一种实时通信的处理方法,其特征在于,包括:
接收第一客户端通过所述第一客户端与第二客户端之间的实时通信连接传输的第一视频流;
对所述第一视频流进行解码,得到目标音视频,其中,所述第一视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;
通过所述第二客户端的实时通信界面播放所述目标音视频。
10.根据权利要求9所述的方法,其特征在于,所述对所述第一视频流进行解码,得到目标音视频包括:
对所述第一视频流中的第一目标子视频流进行帧内解码,得到目标图像组的第一目标关键帧;
将所述第一目标关键帧作为参考帧,对所述第一视频流中的多个第二目标子视频流进行并行解码,得到所述目标图像组的多个目标非关键帧,其中,所述目标音视频包含所述第一目标关键帧和多个所述目标非关键帧,多个所述第二目标子视频流与多个所述目标非关键帧一一对应。
11.根据权利要求9或者10所述的方法,其特征在于,在所述接收第一客户端通过所述第一客户端与第二客户端之间的实时通信连接传输的第一视频流之前,所述方法还包括:
检测到对所述第二客户端执行的加入操作,其中,所述加入操作用于加入多个所述第一客户端之间的实时通信;
响应所述加入操作,控制显示所述第二客户端的实时通信界面,其中,所述第一视频流为与任一个所述第一客户端对应的视频流中从当前时刻开始的视频流。
12.根据权利要求11所述的方法,其特征在于,在所述对所述第一视频流进行解码,得到目标音视频之前,所述方法还包括:
在所述第一视频流的起始帧为非关键帧的情况下,接收对与所述第一视频流的起始帧对应的第二目标关键帧进行编码得到的第二视频流;
对所述第二视频流进行解码,得到与所述第二目标关键帧匹配的第三目标关键帧。
13.一种实时通信的传输装置,其特征在于,包括:
采集单元,用于通过与第一客户端对应的目标采集设备进行音视频采集,得到待传输的第一音视频;
编码单元,用于对所述第一音视频进行编码,得到第一视频流,其中,所述第一音视频中的非关键帧仅参考同一图像组中的关键帧进行编码;
传输单元,用于通过所述第一客户端与第二客户端之间的实时通信连接,将所述第一视频流传输给所述第二客户端。
14.一种实时通信的处理装置,其特征在于,包括:
第一接收单元,用于接收第一客户端通过所述第一客户端与第二客户端之间的实时通信连接传输的第一视频流;
第一解码单元,用于对所述第一视频流进行解码,得到目标音视频,其中,所述第一视频流中的非关键帧仅参考同一图像组中的关键帧进行解码;
播放单元,用于通过所述第二客户端的实时通信界面播放所述目标音视频。
15.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,
所述存储器,用于存储计算机程序;
所述处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行权利要求1至8中任一项所述的方法步骤、或者执行权利要求9至12中任一项所述的方法步骤。
16.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至8中任一项中所述的方法步骤、或者执行权利要求9至12中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011213194.5A CN112040232B (zh) | 2020-11-04 | 2020-11-04 | 实时通信的传输方法和装置、实时通信的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011213194.5A CN112040232B (zh) | 2020-11-04 | 2020-11-04 | 实时通信的传输方法和装置、实时通信的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112040232A true CN112040232A (zh) | 2020-12-04 |
CN112040232B CN112040232B (zh) | 2021-06-22 |
Family
ID=73573610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011213194.5A Active CN112040232B (zh) | 2020-11-04 | 2020-11-04 | 实时通信的传输方法和装置、实时通信的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112040232B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827104A (zh) * | 2022-05-17 | 2022-07-29 | 咪咕文化科技有限公司 | 时延调整方法、装置、设备及计算机可读存储介质 |
CN115550688A (zh) * | 2021-06-30 | 2022-12-30 | 华为技术有限公司 | 视频码流的处理方法、介质、程序产品和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006062333A1 (en) * | 2004-12-06 | 2006-06-15 | Lg Electronics Inc. | Method of coding and decoding moving picture |
CN101192903A (zh) * | 2007-11-28 | 2008-06-04 | 腾讯科技(深圳)有限公司 | 数据帧编解码控制方法 |
CN102714717A (zh) * | 2009-10-15 | 2012-10-03 | 豪威科技有限公司 | 低成本的视频编码器 |
CN102752596A (zh) * | 2012-07-05 | 2012-10-24 | 深圳广晟信源技术有限公司 | 一种率失真优化方法 |
CN110324277A (zh) * | 2018-03-28 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 实时通信的连接方法、装置、存储介质及电子装置 |
CN110708569A (zh) * | 2019-09-12 | 2020-01-17 | 北京达佳互联信息技术有限公司 | 一种视频处理方法、装置、电子设备及存储介质 |
CN111726620A (zh) * | 2019-03-22 | 2020-09-29 | 浙江宇视科技有限公司 | 一种监控视频背景帧的编码方法、装置、电子设备及介质 |
-
2020
- 2020-11-04 CN CN202011213194.5A patent/CN112040232B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006062333A1 (en) * | 2004-12-06 | 2006-06-15 | Lg Electronics Inc. | Method of coding and decoding moving picture |
CN101192903A (zh) * | 2007-11-28 | 2008-06-04 | 腾讯科技(深圳)有限公司 | 数据帧编解码控制方法 |
CN102714717A (zh) * | 2009-10-15 | 2012-10-03 | 豪威科技有限公司 | 低成本的视频编码器 |
CN102752596A (zh) * | 2012-07-05 | 2012-10-24 | 深圳广晟信源技术有限公司 | 一种率失真优化方法 |
CN110324277A (zh) * | 2018-03-28 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 实时通信的连接方法、装置、存储介质及电子装置 |
CN111726620A (zh) * | 2019-03-22 | 2020-09-29 | 浙江宇视科技有限公司 | 一种监控视频背景帧的编码方法、装置、电子设备及介质 |
CN110708569A (zh) * | 2019-09-12 | 2020-01-17 | 北京达佳互联信息技术有限公司 | 一种视频处理方法、装置、电子设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115550688A (zh) * | 2021-06-30 | 2022-12-30 | 华为技术有限公司 | 视频码流的处理方法、介质、程序产品和电子设备 |
CN114827104A (zh) * | 2022-05-17 | 2022-07-29 | 咪咕文化科技有限公司 | 时延调整方法、装置、设备及计算机可读存储介质 |
CN114827104B (zh) * | 2022-05-17 | 2024-02-23 | 咪咕文化科技有限公司 | 时延调整方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112040232B (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nguyen et al. | An optimal tile-based approach for viewport-adaptive 360-degree video streaming | |
US10630938B2 (en) | Techniques for managing visual compositions for a multimedia conference call | |
CN112040233B (zh) | 视频编码、视频解码方法和装置、电子设备及存储介质 | |
CN111277826B (zh) | 一种视频数据处理方法、装置及存储介质 | |
AU2014275405B2 (en) | Tuning video compression for high frame rate and variable frame rate capture | |
KR101644208B1 (ko) | 이전에 계산된 모션 정보를 이용하는 비디오 인코딩 | |
US9071841B2 (en) | Video transcoding with dynamically modifiable spatial resolution | |
CN1242623C (zh) | 视频编码方法、解码方法以及相关的编码器和解码器 | |
CN112333448B (zh) | 视频编码、解码方法和装置、电子设备和存储介质 | |
CN112351285B (zh) | 视频编码、解码方法和装置、电子设备和存储介质 | |
CN112040232B (zh) | 实时通信的传输方法和装置、实时通信的处理方法和装置 | |
Nguyen et al. | A client-based adaptation framework for 360-degree video streaming | |
CN112040234B (zh) | 视频编码、解码方法和装置、电子设备及存储介质 | |
Carreira et al. | A two-stage approach for robust HEVC coding and streaming | |
US20230247069A1 (en) | Systems and Methods for Adaptive Video Conferencing | |
Skupin et al. | Packet level video quality evaluation of extensive H. 264/AVC and SVC transmission simulation | |
EP1739970A1 (en) | Method for encoding and transmission of real-time video conference data | |
CN112351284B (zh) | 视频编码、解码方法和装置、电子设备和存储介质 | |
CN117354524B (zh) | 编码器编码性能测试方法、装置、设备及计算机介质 | |
CN115767103A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
De Praeter | Towards one video encoder per individual: guided High Efficiency Video Coding | |
CN115733988A (zh) | 一种视频数据处理方法、装置、计算机设备以及存储介质 | |
CN118678146A (zh) | 一种视频播放方法、装置、设备及存储介质 | |
CN116916032A (zh) | 视频编码方法、装置、电子设备及存储介质 | |
CN112040235A (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 |