RTCInboundRtpStreamStats

RTCInboundRtpStreamStatsWebRTC API 中的一个字典,用于报告与 RTCPeerConnection 本地端接收 RTP 流相关的统计信息。

可以通过迭代 RTCStatsReport(由 RTCPeerConnection.getStats()RTCRtpReceiver.getStats() 返回)来获取统计信息,直到找到一个 typeinbound-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

一个字符串,指示与流的接收器关联的 RTCAudioReceiverStatsRTCVideoReceiverStats 对象的标识符。此 ID 在多次调用 getStats() 时保持稳定。

remoteId

一个字符串,标识 RTCRemoteOutboundRtpStreamStats 对象,该对象提供与此相同 SSRC 的远程对等方的统计信息。此 ID 在多次调用 getStats() 时保持稳定。

sliCount

一个整数,指示接收器向发送器发送切片丢失指示 (SLI) 帧的次数,以告知发送器一个或多个连续的(就扫描顺序而言)视频宏块已丢失或损坏。仅适用于视频流。

trackIdentifier

包含与入站流关联的 MediaStreamTrackid 值的字符串。

trackId 已弃用

一个字符串,标识表示接收轨道的统计信息对象;此对象属于以下两种类型之一:RTCReceiverAudioTrackAttachmentStatsRTCReceiverVideoTrackAttachmentStats。此 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

一个字符串,唯一标识表示关联 MediaStreamTrackRTCMediaStreamTrackStats 对象。这同于 MediaStreamTrack.id 的值。

transportId

一个字符串,唯一标识用于生成与此 RTP 流关联的 RTCTransportStats 对象的检查对象。

仅本地测量

这些属性是在本地计算的,并且仅对接收媒体流的设备可用。它们的主要目的是检查连接的错误恢复能力,因为它们提供了有关丢失数据包、丢失帧以及数据压缩程度的信息。

firCount

发送方接收到的全部帧内请求 (FIR) 数据包总数。此统计信息仅对接收流的设备可用,并且仅适用于视频轨道。当流的接收端落后或丢失数据包并且无法继续解码流时,会发送 FIR 数据包;流的发送端接收 FIR 数据包并通过发送完整帧而不是增量帧来响应,从而让接收方“追赶”。此数字越高,表示此类问题出现的频率越高,这可能是网络拥塞或接收设备过载的迹象。

nackCount

接收方通过向发送方发送否定确认 (NACK,也称为“通用 NACK”) 数据包来通知发送方一个或多个 RTP 数据包已丢失的次数。此值仅对接收方可用。

pliCount

流的接收端向发送方发送图像丢失指示 (PLI) 数据包的次数,指示它已丢失一个或多个帧的一些编码视频数据。只有接收方具有此值,并且它仅对视频轨道有效。

qpSum

与迄今为止在此 RTCRtpStreamStats 对象描述的视频轨道上接收到的每个帧关联的量化参数 (QP) 值的总和。一般来说,此数字越高,表示视频轨道的压缩程度越高。结合 RTCReceivedRtpStreamStats.framesDecodedRTCInboundRtpStreamStats.framesEncoded,您可以近似计算这些帧的平均 QP,请记住编解码器通常会在帧内甚至改变量化器值。还要记住,QP 的值在不同的编解码器之间可能会有所不同,因此此值仅在与相同的编解码器进行比较时才可能有用。

常用实例属性

以下属性对所有 WebRTC 统计信息对象都是通用的。

id

唯一标识正在监控以生成此统计信息集的对象的字符串。

timestamp

一个 DOMHighResTimeStamp 对象,指示为该统计信息对象获取样本的时间。

type

一个值为 "inbound-rtp" 的字符串,指示对象包含的统计信息类型。

示例

规范

规范
WebRTC 统计信息 API 的标识符
# dom-rtcstatstype-inbound-rtp

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅