webrtc调试工具chrome://webrtc-internals介绍

了解webrtc的开发者都应该知道存在chrome://webrtc-internals这样一个调试工具,在Chome的地址栏中输入chrome://webrtc-internals这个命令就会展示出有webrtc相关功能被启用的网页以及通话过程中产生的统计数据,当我们需要分析一通webrtc通话的音视频质量的时候,这些统计数据就派上了大用场,由于chrome://webrtc-internals并无官方的说明文档,有些数据的描述对于非音视频开发者又不太友好,所以本文简单地对其中的一些重要的统计数据作了说明。目前还未深入了解的数据我用了TBD作为标识,后续了解了算法之后我会补充说明。下图所展示的是音视频发送端的统计数据:



自顶而下观察这幅图,我们将这个图分为3个部分来说明:
  1. 第一个部分,也就是绿线的上方(图的顶部)有两个方块,第一个方块展示的是PeerConnection的相关信息,如果有多个PeerConnection的话,那么就会有多个类似的标签页,另外一个方块展示的是GetUserMedia的相关信息,在本文中我们暂时不涉及。
  2. 第二个部分,在图中标示的Time和Event区域(图的上方偏左侧),这个部分主要描述的是PeerConnection建立的流程,相关方法调用的次序以及调用的时间。
  3. 第三个部分,在图中标示的Stats Tables部分(图的右侧以及下半部分),这个部分主要展示的是PeerConnection相关的统计数据,而我们所要说明的就是就是音频以及视频流的统计信息。


所有这些统计数据都来源于Chrome M56版本,可能会与老版本的Chrome存在不一致的地方,如果有些字段的描述不正确,还请指正,我会首先列出发送端的部分描述信息,后续会将接收端的补全。
音频统计数据
aecDivergentFilterFraction :TBD(后续会补全)

audioInputLevel :发送端采集的音频能量大小。

bitsSentPerSecond :每秒发送出去的比特数。

packetsSentPerSecond :每秒发送出去的音频包数。

googEchoCancellationQualityMin :TBD(后续会补全)

googEchoCancellationReturnLoss :TBD(后续会补全)

googEchoCancellationReturnLossEnhancement :TBD(后续会补全)

googResidualEchoLikelihood :Chrome 56中新增的,主要用来标识是否存在回声,范围为0 (没有回声)- 1(有回声),当值大于0.5时表明存在回声。

视频统计数据
bitsSentPerSecond :每秒发送出去的比特数,根据当前网络情况会进行动态调整。

framesEncoded :累计编码出来的视频帧数,没有异常情况的话会一直增长。

packetsLost :发送端从接收端发送过来的RTCP Receiver Report中得到的累积丢包数量,可以和googNacksReceived数据进行对照。

googRtt :Rtt全称为Round-trip time,是发送端从接受端发送过来的RTCP Receiver Report中得到的时间戳通过计算得到的往返时延。

packetsSentPerSecond :Chrome 56中新增的,每秒发送出去的视频包数量。

qpSum :发送端编码出的带有QP值的帧的数量,QP全称为Quantization Parameter。

googAdaptationChanges :发送端因为CPU的负载变化导致的分辨变高或者变低的次数,需要设置googCpuOveruseDetection。

googAvgEncodeMs :发送端平均编码时间,越小越好。

googEncodeUsagePercent :发送端(平均每帧编码时间)/(平均每帧采集时间),反应编码效率。

googFirsReceived :发送端收到的关键帧请求数量,FIR全称为Full Intra Request,一般来说在video conference模式下,有新的参与者进来会发出。

googPlisReceived :发送端收到的关键帧请求数量,PLI全称为Picture Loss Indication,一般来说在解码失败时会发出。

googNacksReceived :发送端收到的重传包请求数量,Nack全称为Negative ACKnowledgement可以和packetsLost数据进行对照。

googFrameHeightSent :发送端发送的分辨率高度,根据当前网络会进行动态调整。

googFrameWidthSent :发送端发送的分辨率宽度,根据当前网络会进行动态调整。

googFrameRateInput :发送端设置的初始帧率。

googFrameRateSent :发送端实际发送的帧率,根据当前网络会进行动态调整。
发布了41 篇原创文章 · 获赞 157 · 访问量 50万+

猜你喜欢

转载自blog.csdn.net/w05980598/article/details/79959704