TRTCRemoteStatistics class

Remote audio/video metrics

Annotations
  • @JsonSerializable(explicitToJson: true, includeIfNull: false)

Constructors

TRTCRemoteStatistics({String userId = "", int audioPacketLoss = -1, int videoPacketLoss = -1, int width = -1, int height = -1, int frameRate = -1, int videoBitrate = -1, int audioSampleRate = -1, int audioBitrate = -1, int jitterBufferDelay = -1, int point2PointDelay = -1, int audioTotalBlockTime = -1, int audioBlockRate = -1, int videoTotalBlockTime = -1, int videoBlockRate = -1, int finalLoss = -1, int remoteNetworkUplinkLoss = -1, int remoteNetworkRTT = -1, TRTCVideoStreamType streamType = TRTCVideoStreamType.big})
TRTCRemoteStatistics.fromJson(Map<String, dynamic> json)
factory

Properties

audioBitrate int
  • Field description: local audio bitrate (Kbps)
  • getter/setter pair
    audioBlockRate int
  • Field description: audio playback lag rate (%)
  • Audio playback lag rate (audioBlockRate) = cumulative audio playback lag duration (audioTotalBlockTime)/total audio playback duration
  • getter/setter pair
    audioPacketLoss int
  • 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".
  • getter/setter pair
    audioSampleRate int
  • Field description: local audio sample rate (Hz)
  • getter/setter pair
    audioTotalBlockTime int
  • Field description: cumulative audio playback lag duration (ms)
  • getter/setter pair
    finalLoss int
  • Field description: total packet loss rate (%) of the audio/video stream
  • Deprecated, please use audioPacketLoss and videoPacketLoss instead.
  • getter/setter pair
    frameRate int
  • Field description: remote video frame rate (fps)
  • getter/setter pair
    hashCode int
    The hash code for this object.
    no setterinherited
    height int
  • Field description: remote video height in px
  • getter/setter pair
    jitterBufferDelay int
  • 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 .
  • getter/setter pair
    point2PointDelay int
  • 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.
  • getter/setter pair
    remoteNetworkRTT int
  • 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 .
  • getter/setter pair
    remoteNetworkUplinkLoss int
  • 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.
  • getter/setter pair
    runtimeType Type
    A representation of the runtime type of the object.
    no setterinherited
    streamType TRTCVideoStreamType
  • Field description: video stream type
  • getter/setter pair
    userId String
  • Field description: user ID
  • getter/setter pair
    videoBitrate int
  • Field description: remote video bitrate (Kbps)
  • getter/setter pair
    videoBlockRate int
  • Field description: video playback lag rate (%)
  • Video playback lag rate (videoBlockRate) = cumulative video playback lag duration (videoTotalBlockTime)/total video playback duration
  • getter/setter pair
    videoPacketLoss int
  • 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".
  • getter/setter pair
    videoTotalBlockTime int
  • Field description: cumulative video playback lag duration (ms)
  • getter/setter pair
    width int
  • Field description: remote video width in px
  • getter/setter pair

    Methods

    noSuchMethod(Invocation invocation) → dynamic
    Invoked when a nonexistent method or property is accessed.
    inherited
    toJson() Map<String, dynamic>
    toString() String
    A string representation of this object.
    inherited

    Operators

    operator ==(Object other) bool
    The equality operator.
    inherited