RTCInboundRtpStreamStats

Baseline 广泛可用 *

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

* 此特性的某些部分可能存在不同级别的支持。

WebRTC API 的 RTCInboundRtpStreamStats 字典用于报告与本地 RTCPeerConnection 上 RTP 流接收端相关的统计信息。

可以通过迭代 RTCPeerConnection.getStats()RTCRtpReceiver.getStats() 返回的 RTCStatsReport 来获取统计信息,直到找到一个 typeinbound-rtp 的报告。

实例属性

audioLevel

一个数字,表示接收到的轨道的音频级别。对于视频流未定义。

bytesReceived

一个正整数,表示此媒体源迄今已接收到的总字节数。

concealedSamples

一个正整数,表示由于数据包丢失或到达太晚而无法播放而必须隐藏的样本数。对于视频流未定义。

concealmentEvents

一个正整数,表示隐藏事件的数量,其中单个事件计入非隐藏样本之后的所有连续隐藏样本。对于视频流未定义。

estimatedPlayoutTimestamp 实验性

一个 DOMHighResTimeStamp,表示此接收器轨道的估计播放时间。

fecPacketsDiscarded

一个正整数值,表示已为此源接收到的 RTP 前向纠错 (FEC) 数据包数量,其中纠错负载已被丢弃。

fecPacketsReceived

一个正整数值,表示为此源接收到的前向纠错 (FEC) 数据包总数。

frameHeight

一个正整数,表示最后解码帧的高度,以像素为单位。对于音频流和第一个帧解码之前未定义。

framesAssembledFromMultiplePackets 实验性

一个正整数,表示此 RTP 流中由多个 RTP 数据包组成的正确解码帧的总数。对于音频流未定义。

framesDecoded

一个长整数值,表示此媒体源迄今已正确解码的视频帧总数。这是如果没有任何帧被丢弃,则将渲染的帧数。对于音频流未定义。

framesPerSecond

一个正整数,表示最后一秒解码的帧数。对于音频流未定义。

framesReceived

一个正整数,表示此 RTP 流接收到的完整帧总数。对于音频流未定义。

frameWidth

一个正整数,表示最后解码帧的宽度,以像素为单位。对于音频流和第一个帧解码之前未定义。

freezeCount 实验性

一个正整数,表示此接收器经历的视频冻结总数。对于音频流未定义。

headerBytesReceived

一个正整数,表示为此 SSRC 接收到的 RTP 头部和填充字节总数,包括重传。

insertedSamplesForDeceleration

一个正整数,表示为减慢抖动缓冲区播放而插入的样本数。对于视频流未定义。

jitterBufferDelay

一个数字,表示所有音频样本和完整视频帧在抖动缓冲区中花费的总累计时间,以秒为单位。

jitterBufferEmittedCount

一个正整数,表示从抖动缓冲区输出的音频样本和/或视频帧的总数。

jitterBufferMinimumDelay

一个数字,表示仅考虑抖动和丢包等网络特性可能实现的最小延迟。

jitterBufferTargetDelay

一个数字,表示累计目标抖动缓冲区延迟。

keyFramesDecoded

一个正整数,表示为此 RTP 媒体流成功解码的关键帧总数。对于音频流未定义。

lastPacketReceivedTimestamp

一个 DOMHighResTimeStamp,表示此源接收到最后一个数据包的时间。另一方面,timestamp 属性表示统计对象生成的时间。

一个字符串,唯一标识收发器流的源和目标对。这是相应的 RTCRtpTransceiver.mid 的值,除非该值为 null,在这种情况下统计属性不存在。

packetsDiscarded

一个正整数,表示由于延迟或提前到达而被抖动缓冲区丢弃的 RTP 数据包总数。

pauseCount 实验性

一个正整数,表示此接收器经历的视频暂停次数。对于音频流未定义。

playoutId 实验性

一个字符串,标识音频流对应的 RTCAudioPlayoutStats对于视频流未定义。

remoteId

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

removedSamplesForAcceleration

一个正整数,表示为加速抖动缓冲区播放而删除的样本数。对于视频流未定义。

silentConcealedSamples

一个正整数,表示静默隐藏样本的数量。对于视频流未定义。

totalAssemblyTime 实验性

一个数字,表示组装成功解码的视频帧(通过多个 RTP 数据包传输)所花费的总时间,以秒为单位。对于音频流未定义。

totalAudioEnergy

一个数字,表示在统计对象生命周期内接收到的轨道的总音频能量。对于视频流未定义。

totalDecodeTime

一个数字,表示解码此流中帧所花费的总时间,以秒为单位。对于音频流未定义。

totalFreezesDuration 实验性

一个正数,表示流冻结的总时间,以秒为单位。对于音频流未定义。

totalInterFrameDelay

一个正数,表示连续渲染帧之间花费的总时间,在帧渲染后立即记录。对于音频流未定义。

totalPausesDuration 实验性

一个正数,表示流暂停视频的总时间,以秒为单位。对于音频流未定义。

totalProcessingDelay

一个正数,表示处理音频或视频样本所花费的总时间,以秒为单位。

totalSamplesDuration

一个正数,表示已接收到的所有样本的总持续时间,以秒为单位。对于视频流未定义。

totalSamplesReceived

一个正整数,表示此流接收到的样本总数。对于视频流未定义。

totalSquaredInterFrameDelay

一个正数,表示连续渲染帧之间帧间延迟的平方和,在帧渲染后立即记录。对于音频流未定义。

trackIdentifier

一个字符串,提供与入站流关联的 MediaStreamTrackid 值。

仅限本地的测量

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

nackCount

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

qpSum

一个正整数,提供此 RTP 接收器迄今为止在此统计对象描述的视频轨道上解码的每个帧的 QP 值之和。仅对视频流有效。

在 RTP 流接收器处测量的统计信息

这些统计信息在 RTP 流的接收端测量,无论它是本地的还是远程的。

packetsReceived

同步源 (SSRC) 接收到的 RTP 数据包总数,包括重传。

packetsLost

同步源 (SSRC) 丢失的 RTP 数据包总数。请注意,这可以是负数,因为接收到的数据包可能多于接收器预期的数量。

jitter

同步源 (SSRC) 的数据包抖动,以秒为单位。

常见 RTP 流统计信息

codecId

一个字符串,唯一标识被检查以生成与此 RTP 流关联的 RTCCodecStats 对象的对象。

kind

一个字符串,指示与流关联的 MediaStreamTrack 是音频轨道还是视频轨道。

ssrc

一个 32 位整数,标识此对象提供的 RTP 数据包的来源。此值根据 RFC 3550 规范生成。

transportId

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

常见实例属性

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

id

一个字符串,唯一标识正在监控以生成这组统计信息的对象。

时间戳

一个 DOMHighResTimeStamp 对象,表示为此统计对象采样的时间。

type

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

规范

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

浏览器兼容性

另见