inVStats 是打印的 RTCStatistics 中的inbound-rtp
<<==inVStats:{
bytesReceived = 1165644;从远程端点接收到的总字节数。
codecId = "CIT01_98_level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e034";视频编解码器的ID和设置。这通常包括编解码器的类型、级别和其他参数。
decoderImplementation = VideoToolbox;用于解码视频流的实现或库。在此例中,它使用VideoToolbox。
firCount = 0;前向纠错(Forward Error Correction)请求的数量。FIR是RTCP包的一种,用于请求发送丢失的数据包。
frameHeight = 1072;
frameWidth = 1920;
framesAssembledFromMultiplePackets = 177;从多个数据包组装的帧的数量。
framesDecoded = 352;成功解码的帧的数量。
framesDropped = 0;由于各种原因(如解码失败、延迟等)而丢弃的帧的数量。
framesPerSecond = 60;视频流的帧率。
framesReceived = 353;接收到的帧的总数(无论是否解码或丢弃)。
freezeCount = 0;视频流冻结的次数。
googTimingFrameInfo = "3581608452,-7,-7,-3,-3,-1,-7,-7,896360511,896360513,896360523,896360531,896360539,0,1";特定于Google的定时信息,通常与视频帧的接收和处理时间相关。
headerBytesReceived = 31512;
jitter = "0.002";
jitterBufferDelay = "2.617117";
jitterBufferEmittedCount = 353;
jitterBufferMinimumDelay = "3.093577";
jitterBufferTargetDelay = "3.093577";
keyFramesDecoded = 2;
kind = video;
lastPacketReceivedTimestamp = "1718596401003.651";
mid = 1;
minPlayoutDelay = 0;
nackCount = 0;
packetsLost = 0;
packetsReceived = 1206;
pauseCount = 0;
pliCount = 0;
powerEfficientDecoder = 0;
retransmittedBytesReceived = 53159;
retransmittedPacketsReceived = 62;
rtxSsrc = 3364710051;
ssrc = 3443866392;
totalAssemblyTime = "0.5962839999999999";
totalDecodeTime = "2.434341";
totalFreezesDuration = 0;
totalInterFrameDelay = "5.714";
totalPausesDuration = 0;
totalProcessingDelay = "5.083143";
totalSquaredInterFrameDelay = "0.09602600000000015";
trackIdentifier = "447bb41e-0d28-4853-a101-d165b4d71863";
transportId = T01;
} ==>>
bytesReceived = 1165644; // 从远程端点接收到的总字节数。这表示视频流或媒体会话期间,接收到的数据量。
codecId = "CIT01_98_level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e034"; // 视频编解码器的ID和设置。这指定了使用的视频编解码器类型(CIT01_98可能是自定义或特定于应用的),以及编解码器的配置参数,如是否允许级别不对称、包化模式、配置文件级别ID等。
decoderImplementation = VideoToolbox; // 用于解码视频流的实现或库。在此例中,使用的是Apple的VideoToolbox库,这是一个硬件加速的视频解码解决方案。
firCount = 0; // 前向纠错(Forward Error Correction)请求的数量。FIR是RTCP包的一种,用于请求发送丢失的数据包。这里的值为0,意味着没有发出任何FIR请求。
frameHeight = 1072; // 视频帧的高度,以像素为单位。这表示视频帧的垂直尺寸。
frameWidth = 1920; // 视频帧的宽度,以像素为单位。这表示视频帧的水平尺寸。
framesAssembledFromMultiplePackets = 177; // 从多个数据包组装的帧的数量。这表明有177个视频帧是由多个网络数据包组装而成的。
framesDecoded = 352; // 成功解码的帧的数量。这表示在视频流或会话期间,有352个帧被成功解码并可用于显示。
framesDropped = 0; // 由于各种原因(如解码失败、延迟等)而丢弃的帧的数量。这里的值为0,表示没有帧被丢弃。
framesPerSecond = 60; // 视频流的帧率。这表示视频流每秒包含60帧。
framesReceived = 353; // 接收到的帧的总数(无论是否解码或丢弃)。这包括所有接收到的帧,无论它们是否被成功解码或由于某种原因被丢弃。
freezeCount = 0; // 视频流冻结的次数。这里的值为0,表示视频流在播放过程中没有出现过冻结现象。
googTimingFrameInfo = "3581608452,-7,-7,-3,-3,-1,-7,-7,896360511,896360513,896360523,896360531,896360539,0,1"; // 特定于Google的定时信息,通常与视频帧的接收和处理时间相关。这是Google提供的一种用于诊断和分析的详细时间戳信息。
headerBytesReceived = 31512; // 接收到的头部字节数。这通常包括RTP头、RTCP头或其他协议头的数据量。
jitter = "0.002"; // 网络抖动(Jitter)。这是衡量网络传输中数据包到达时间间隔的变化程度的指标。值越小,网络传输越稳定。
jitterBufferDelay = "2.617117"; // 抖动缓冲区的延迟。为了应对网络抖动,通常使用抖动缓冲区来平滑数据包到达的不规则性。这个值表示抖动缓冲区引入的额外延迟。
jitterBufferEmittedCount = 353; // 从抖动缓冲区发出的帧数量。这表示经过抖动缓冲区平滑处理后,发出的视频帧数量。
jitterBufferMinimumDelay = "3.093577"; // 抖动缓冲区的最小延迟。这表示抖动缓冲区设置的最小延迟值。
jitterBufferTargetDelay = "3.093577"; // 抖动缓冲区的目标延迟。这是抖动缓冲区试图维持的延迟值,以优化播放质量和网络效率。
keyFramesDecoded = 2; // 解码的关键帧数量。关键帧(也称为I帧或IDR帧)是视频流中不依赖其他帧就能独立解码的帧。
kind = video; // 媒体流的类型。这里指定为视频流。
lastPacketReceivedTimestamp = "1718596401003.651"; // 最后接收到的数据包的时间戳。这通常用于同步和诊断目的。
mid = 1; // 媒体标识符(Media ID)。在多媒体会话中,这用于唯一标识特定的媒体流(如音频、视频等)。
minPlayoutDelay = 0; // 最小播放延迟。这表示视频帧在接收后需要等待的最短时间才能播放,以确保足够的缓冲和流畅性。
nackCount = 0; // 负确认(Negative Acknowledgment)的数量。NACK是RTCP包的一种,用于请求发送者重新发送丢失或损坏的数据包。这里的值为0,意味着没有发出任何NACK请求。
packetsLost = 0; // 丢失的数据包数量。在传输过程中,由于网络问题或其他原因,一些数据包可能无法成功接收。这里的值为0,表示没有数据包丢失。
packetsReceived = 1206; // 接收到的数据包总数。这表示在视频流或会话期间,接收到的RTP或RTCP数据包的总数。
pauseCount = 0; // 视频播放暂停的次数。这可能是由于网络延迟、解码问题或其他原因导致的。这里的值为0,表示视频播放没有出现过暂停现象。
pliCount = 0; // 图片丢失指示(Picture Loss Indication)的数量。PLI是RTCP包的一种,用于通知发送者某些帧可能已经丢失或损坏。这里的值为0,意味着没有发出任何PLI请求。
powerEfficientDecoder = 0; // 是否使用节能解码器。这里的值为0,表示没有使用节能解码器(或该信息未被设置)。
retransmittedBytesReceived = 53159; // 接收到的重传字节数。当数据包丢失或损坏时,发送者可能会重新发送这些数据包。这里的值表示接收到的重传数据包的字节总数。
retransmittedPacketsReceived = 62; // 接收到的重传数据包数量。这表示由于数据包丢失或损坏,接收到的重新发送的数据包的总数。
rtxSsrc = 3364710051; // RTX的SSRC标识符。RTX(Retransmission)是用于数据包重传的RTP扩展。这里的SSRC标识符用于标识与RTX相关的RTP流。
ssrc = 3443866392; // SSRC标识符。SSRC(Synchronization Source)是RTP中的一个标识符,用于唯一标识RTP流中的同步源。
totalAssemblyTime = "0.5962839999999999"; // 总组装时间。这表示将接收到的数据包组装成视频帧所需的总时间。
totalDecodeTime = "2.434341"; // 总解码时间。这表示将接收到的视频帧解码为可显示图像所需的总时间。
totalFreezesDuration = 0; // 视频流总冻结时长。这表示在视频流播放过程中,视频冻结的总时间(以秒为单位)。这里的值为0,表示没有出现过视频冻结现象。
totalInterFrameDelay = "5.714"; // 总帧间延迟。这表示连续帧之间的平均时间差(以秒为单位)。它可以用于衡量视频的流畅性和连续性。
totalPausesDuration = 0; // 视频播放总暂停时长。这表示视频播放过程中,由于各种原因导致的总暂停时间(以秒为单位)。这里的值为0,表示没有出现过视频播放暂停现象。
totalProcessingDelay = "5.083143"; // 总处理延迟。这表示从接收到数据包到最终显示视频帧所需的总时间(以秒为单位),包括组装、解码和其他处理步骤。
totalSquaredInterFrameDelay = "0.09602600000000015"; // 总帧间延迟的平方和。这是一个统计量,用于衡量帧间延迟的分散程度或变化性。
trackIdentifier = "447bb41e-0d28-4853-a101-d165b4d71863"; // 跟踪标识符。这通常用于唯一标识视频流或会话中的某个特定媒体轨道。
transportId = T01; // 传输标识符。这可能用于唯一标识特定的传输流或会话。