TRTCStatistics
Copyright (c) 2021 Tencent. All rights reserved.
Module: TRTC audio/video metrics (read-only)
Function: the TRTC SDK reports to you the current real-time audio/video metrics (frame rate, bitrate, lag, etc.) once every two seconds
TRTCStatistics
StructType
FuncList | DESC |
Local audio/video metrics | |
Remote audio/video metrics | |
Network and performance metrics |
TRTCLocalStatistics
TRTCLocalStatistics
Local audio/video metrics
EnumType | DESC |
audioBitrate | Field description: local audio bitrate in Kbps, i.e., how much audio data is generated per second |
audioCaptureState | Field description:Audio equipment collection status( 0:Normal;1:Long silence detected;2:Broken sound detected;3:Abnormal intermittent sound detected;) |
audioSampleRate | Field description: local audio sample rate (Hz) |
frameRate | Field description: local video frame rate in fps, i.e., how many video frames there are per second |
height | Field description: local video height in px |
streamType | Field description: video stream type (HD big image | smooth small image | substream image) |
videoBitrate | Field description: local video bitrate in Kbps, i.e., how much video data is generated per second |
width | Field description: local video width in px |
TRTCRemoteStatistics
TRTCRemoteStatistics
Remote audio/video metrics
EnumType | DESC |
audioBitrate | Field description: local audio bitrate (Kbps) |
audioBlockRate | Field description: audio playback lag rate (%) Audio playback lag rate (audioBlockRate) = cumulative audio playback lag duration (audioTotalBlockTime)/total audio playback duration |
audioPacketLoss | Field description: total packet loss rate (%) of the audio stream audioPacketLoss represents the packet loss rate eventually calculated on the audience side after the audio/video stream goes through the complete transfer linkage of "anchor -> cloud -> audience".The smaller the audioPacketLoss , the better. The packet loss rate of 0 indicates that all data of the audio stream has entirely reached the audience.If downLoss is 0 but audioPacketLoss isn't, there is no packet loss on the linkage of "cloud -> audience" for the audiostream, but there are unrecoverable packet losses on the linkage of "anchor -> cloud". |
audioSampleRate | Field description: local audio sample rate (Hz) |
audioTotalBlockTime | Field description: cumulative audio playback lag duration (ms) |
finalLoss | Field description: total packet loss rate (%) of the audio/video stream Deprecated, please use audioPacketLoss and videoPacketLoss instead. |
frameRate | Field description: remote video frame rate (fps) |
height | Field description: remote video height in px |
jitterBufferDelay | Field description: playback delay (ms) In order to avoid audio/video lags caused by network jitters and network packet disorders, TRTC maintains a playback buffer on the playback side to organize the received network data packets. The size of the buffer is adaptively adjusted according to the current network quality and converted to the length of time in milliseconds, i.e., jitterBufferDelay . |
point2PointDelay | Field description: end-to-end delay (ms) point2PointDelay represents the delay of "anchor -> cloud -> audience". To be more precise, it represents the delay of the entire linkage of "collection -> encoding -> network transfer -> receiving -> buffering -> decoding -> playback". point2PointDelay works only if both the local and remote SDKs are on version 8.5 or above. If the remote SDK is on a version below 8.5, this value will always be 0 and thus meaningless. |
remoteNetworkRTT | Field description: round-trip delay (ms) from the SDK to cloud This value represents the total time it takes to send a network packet from the SDK to the cloud and then send a network packet back from the cloud to the SDK, i.e., the total time it takes for a network packet to go through the linkage of "SDK -> cloud -> SDK". The smaller the value, the better. If remoteNetworkRTT is below 50 ms, it means a short audio/video call delay; if remoteNetworkRTT is above 200 ms, it means a long audio/video call delay.It should be explained that remoteNetworkRTT represents the total time spent on the linkage of "SDK -> cloud -> SDK"; therefore, there is no need to distinguish between remoteNetworkUpRTT and remoteNetworkDownRTT . |
remoteNetworkUplinkLoss | Field description: upstream packet loss rate (%) from the SDK to cloud The smaller the value, the better. If remoteNetworkUplinkLoss is 0% , the upstream network quality is very good, and the data packets uploaded to the cloud are basically not lost.If remoteNetworkUplinkLoss is 30% , 30% of the audio/video data packets sent to the cloud by the SDK are lost on the transfer linkage. |
streamType | Field description: video stream type (HD big image | smooth small image | substream image) |
userId | Field description: user ID |
videoBitrate | Field description: remote video bitrate (Kbps) |
videoBlockRate | Field description: video playback lag rate (%) Video playback lag rate (videoBlockRate) = cumulative video playback lag duration (videoTotalBlockTime)/total video playback duration |
videoPacketLoss | Field description: total packet loss rate (%) of the video stream videoPacketLoss represents the packet loss rate eventually calculated on the audience side after the audio/video stream goes through the complete transfer linkage of "anchor -> cloud -> audience".The smaller the videoPacketLoss , the better. The packet loss rate of 0 indicates that all data of the video stream has entirely reached the audience.If downLoss is 0 but videoPacketLoss isn't, there is no packet loss on the linkage of "cloud -> audience" for the video stream, but there are unrecoverable packet losses on the linkage of "anchor -> cloud". |
videoTotalBlockTime | Field description: cumulative video playback lag duration (ms) |
width | Field description: remote video width in px |
TRTCStatistics
TRTCStatistics
Network and performance metrics
EnumType | DESC |
appCpu | Field description: CPU utilization (%) of the current application, Android 8.0 and above systems are not supported |
downLoss | Field description: downstream packet loss rate (%) from cloud to the SDK The smaller the value, the better. If downLoss is 0% , the downstream network quality is very good, and the data packets received from the cloud are basically not lost.If downLoss is 30% , 30% of the audio/video data packets sent to the SDK by the cloud are lost on the transfer linkage. |
gatewayRtt | Field description: round-trip delay (ms) from the SDK to gateway This value represents the total time it takes to send a network packet from the SDK to the gateway and then send a network packet back from the gateway to the SDK, i.e., the total time it takes for a network packet to go through the linkage of "SDK -> gateway -> SDK". The smaller the value, the better. If gatewayRtt is below 50 ms, it means a short audio/video call delay; if gatewayRtt is above 200 ms, it means a long audio/video call delay.It should be explained that gatewayRtt is invalid for cellular network. |
localArray | Field description: local audio/video statistics As there may be three local audio/video streams (i.e., HD big image, smooth small image, and substream image), the local audio/video statistics are an array. |
receiveBytes | Field description: total number of received bytes (including signaling data and audio/video data) |
remoteArray | Field description: remote audio/video statistics As there may be multiple concurrent remote users, and each of them may have multiple concurrent audio/video streams (i.e., HD big image, smooth small image, and substream image), the remote audio/video statistics are an array. |
rtt | Field description: round-trip delay (ms) from the SDK to cloud This value represents the total time it takes to send a network packet from the SDK to the cloud and then send a network packet back from the cloud to the SDK, i.e., the total time it takes for a network packet to go through the linkage of "SDK -> cloud -> SDK". The smaller the value, the better. If rtt is below 50 ms, it means a short audio/video call delay; if rtt is above 200 ms, it means a long audio/video call delay.It should be explained that rtt represents the total time spent on the linkage of "SDK -> cloud -> SDK"; therefore, there is no need to distinguish between upRtt and downRtt . |
sendBytes | Field description: total number of sent bytes (including signaling data and audio/video data) |
systemCpu | Field description: CPU utilization (%) of the current system, Android 8.0 and above systems are not supported |
upLoss | Field description: upstream packet loss rate (%) from the SDK to cloud The smaller the value, the better. If upLoss is 0% , the upstream network quality is very good, and the data packets uploaded to the cloud are basically not lost.If upLoss is 30% , 30% of the audio/video data packets sent to the cloud by the SDK are lost on the transfer linkage. |