RTCInboundRtpStreamStats
RTCInboundRtpStreamStats
是 WebRTC API 中的一个字典,用于报告与 RTCPeerConnection
本地端接收 RTP 流相关的统计信息。
可以通过迭代 RTCStatsReport
(由 RTCPeerConnection.getStats()
或 RTCRtpReceiver.getStats()
返回)来获取统计信息,直到找到一个 type
为 inbound-rtp
的报告。
实例属性
averageRtcpInterval
-
一个浮点值,表示两个连续的复合 RTCP 数据包之间的平均 RTCP 间隔。
bytesReceived
-
一个 64 位整数,表示迄今为止为此媒体源接收到的字节总数。
fecPacketsDiscarded
-
一个整数值,表示为此源接收到的 RTP 前向纠错 (FEC) 数据包的数量,其中丢弃了纠错有效负载。
fecPacketsReceived
-
一个整数值,表示为此源接收到的 RTP FEC 数据包的总数。例如,当 FEC 数据包与媒体内容一起带内到达时,此计数器也可能会递增;例如,Opus 就会出现这种情况。
firCount
-
一个整数值,表示此接收器已发送给发送器的完整帧请求 (FIR) 数据包的总数。这指示了流延迟的频率,需要跳过帧才能赶上。此值仅适用于视频流。
framesDecoded
-
一个长整数值,表示迄今为止为此媒体源正确解码的视频帧总数。这是如果未丢弃任何帧将呈现的帧数。仅对视频流有效。
lastPacketReceivedTimestamp
-
一个
DOMHighResTimeStamp
,指示为此源接收最后一个数据包的时间。另一方面,timestamp
属性指示生成统计信息对象的时间。 nackCount
-
一个整数值,表示此接收器已发送的负确认 (NACK) 数据包的总数。
packetsDuplicated
-
一个整数值,表示由于重复而丢弃的数据包总数。这些数据包未由
packetsDiscarded
计数。 packetsFailedDecryption
-
一个整数,计算无法解密的 RTP 数据包总数。这些数据包未由
packetsDiscarded
计数。 perDscpPacketsReceived
-
键值对的记录,其中字符串作为键映射到 32 位整数值,每个值指示此接收器为此 RTP 流从此源接收到的每个区分服务代码点 (DSCP) 的数据包总数。
pliCount
-
一个整数,指定接收器使用图像丢失指示 (PLI) 数据包通知发送器一个或多个帧的某些编码视频数据已丢失的次数。这仅适用于视频流。
qpSum
-
一个 64 位值,包含此 RTP 接收器解码的每一帧的 QP 值之和。可以通过将此值除以
framesDecoded
来确定每帧的平均 QP。仅对视频流有效。 receiverId
-
一个字符串,指示与流的接收器关联的
RTCAudioReceiverStats
或RTCVideoReceiverStats
对象的标识符。此 ID 在多次调用getStats()
时保持稳定。 remoteId
-
一个字符串,标识
RTCRemoteOutboundRtpStreamStats
对象,该对象提供与此相同 SSRC 的远程对等方的统计信息。此 ID 在多次调用getStats()
时保持稳定。 sliCount
-
一个整数,指示接收器向发送器发送切片丢失指示 (SLI) 帧的次数,以告知发送器一个或多个连续的(就扫描顺序而言)视频宏块已丢失或损坏。仅适用于视频流。
trackIdentifier
-
包含与入站流关联的
MediaStreamTrack
的id
值的字符串。 trackId
已弃用-
一个字符串,标识表示接收轨道的统计信息对象;此对象属于以下两种类型之一:
RTCReceiverAudioTrackAttachmentStats
或RTCReceiverVideoTrackAttachmentStats
。此 ID 在多次调用getStats()
时保持稳定。
在 RTP 流的接收器处测量的统计信息
这些统计信息是在 RTP 流的接收端测量的,无论它是本地还是远程。
packetsReceived
-
为此同步源接收到的 RTP 数据包总数,包括重传。
packetsLost
-
为此同步源丢失的 RTP 数据包总数。请注意,如果接收到的数据包多于发送的数据包,则此值可能为负。
jitter
-
为此同步源的包抖动,以秒为单位测量。
所有媒体类型都包含的标准字段
codecId
-
一个字符串,唯一标识用于生成与此 RTP 流关联的
RTCCodecStats
对象的检查对象。 kind
-
一个字符串,如果关联的
MediaStreamTrack
仅为音频,则其值为"audio"
;如果轨道包含视频,则其值为"video"
。此值将与RTCCodecStats.codec
指示的媒体类型以及轨道的kind
属性的值匹配。以前称为mediaType
。 ssrc
-
一个 32 位整数,标识此
RTCRtpStreamStats
对象涵盖的 RTP 数据包的源。此值根据 RFC 3550 规范生成。 trackId
-
一个字符串,唯一标识表示关联
MediaStreamTrack
的RTCMediaStreamTrackStats
对象。这不同于MediaStreamTrack.id
的值。 transportId
-
一个字符串,唯一标识用于生成与此 RTP 流关联的
RTCTransportStats
对象的检查对象。
仅本地测量
这些属性是在本地计算的,并且仅对接收媒体流的设备可用。它们的主要目的是检查连接的错误恢复能力,因为它们提供了有关丢失数据包、丢失帧以及数据压缩程度的信息。
firCount
-
发送方接收到的全部帧内请求 (FIR) 数据包总数。此统计信息仅对接收流的设备可用,并且仅适用于视频轨道。当流的接收端落后或丢失数据包并且无法继续解码流时,会发送 FIR 数据包;流的发送端接收 FIR 数据包并通过发送完整帧而不是增量帧来响应,从而让接收方“追赶”。此数字越高,表示此类问题出现的频率越高,这可能是网络拥塞或接收设备过载的迹象。
nackCount
-
接收方通过向发送方发送否定确认 (NACK,也称为“通用 NACK”) 数据包来通知发送方一个或多个 RTP 数据包已丢失的次数。此值仅对接收方可用。
pliCount
-
流的接收端向发送方发送图像丢失指示 (PLI) 数据包的次数,指示它已丢失一个或多个帧的一些编码视频数据。只有接收方具有此值,并且它仅对视频轨道有效。
qpSum
-
与迄今为止在此
RTCRtpStreamStats
对象描述的视频轨道上接收到的每个帧关联的量化参数 (QP) 值的总和。一般来说,此数字越高,表示视频轨道的压缩程度越高。结合RTCReceivedRtpStreamStats.framesDecoded
或RTCInboundRtpStreamStats.framesEncoded
,您可以近似计算这些帧的平均 QP,请记住编解码器通常会在帧内甚至改变量化器值。还要记住,QP 的值在不同的编解码器之间可能会有所不同,因此此值仅在与相同的编解码器进行比较时才可能有用。
常用实例属性
以下属性对所有 WebRTC 统计信息对象都是通用的。
id
-
唯一标识正在监控以生成此统计信息集的对象的字符串。
timestamp
-
一个
DOMHighResTimeStamp
对象,指示为该统计信息对象获取样本的时间。 type
-
一个值为
"inbound-rtp"
的字符串,指示对象包含的统计信息类型。
示例
规范
规范 |
---|
WebRTC 统计信息 API 的标识符 # dom-rtcstatstype-inbound-rtp |
浏览器兼容性
BCD 表仅在浏览器中加载