Join Tencent RTC at NAB Show 2024 in Las Vegas!
Learn more 
Only  $9.9! Get 50,000 minutes with our Starter Plan, perfect for your MVP project.
Only $9.9! Get 50,000 minutes with our Starter Plan, perfect for your MVP project.
Grab It Now 
Join Tencent RTC at NAB Show 2024 in Las Vegas!
Learn more 
Only  $9.9! Get 50,000 minutes with our Starter Plan, perfect for your MVP project.
Only $9.9! Get 50,000 minutes with our Starter Plan, perfect for your MVP project.
Grab It Now 
RTC Engine
Overview
  • Web
    • Demo Quick Run
    • SDK Quick Start
    • Basic Features
      • Screen Sharing
      • Live Streaming
      • Media Device
      • Audio Volume
      • Set Encoding Profile
      • Detect Network Quality
      • Detect Capabilities
    • Advance Features
      • Enable AI Denoiser
      • Enable Audio Mixer
      • Enable Watermark
      • SEI Message
      • Custom Capturing and Rendering
      • Web Beautification Effects
    • Best Practices
      • Optimize Multi-Person Video Calls
      • Handle Autoplay Restriction
      • Handle Firewall Restriction
    • API List
    • Released Notes
    • Supported Platforms
    • Web FAQs
  • Android
    • Integration
      • 1.API Examples
      • 2.Importing the SDK
      • 3.Entering a Room
      • 4.Subscribing to Audio/Video Streams
      • 5.Publish Audio/Video Streams
      • 6.Exiting a Room
      • 7.Sensing Network Quality
      • 8.Enabling Screen Sharing
      • 9.Setting Video Quality
      • 10.Rotating Videos
    • Testing Newwork Quality
    • Custom Capturing and Rendering
    • Custom Audio Capturing and Playback
    • Client APIs
      • Overview
      • TRTCCloud
      • TRTCStatistics
      • TRTCCloudListener
      • TXAudioEffectManager
      • TXBeautyManager
      • TXDeviceManager
      • Type Definition
      • Deprecated Interface
      • Error Codes
    • Release Notes
  • iOS
    • Integration
      • 1.API Examples
      • 2.Importing the SDK
      • 3.Entering a Room
      • 4.Subscribing to Audio/Video Streams
      • 5.Publish Audio/Video Streams
      • 6.Exiting a Room
      • 7.Sensing Network Quality
      • 8.Enabling Screen Sharing
      • 9.Setting Video Quality
      • 10.Rotating Videos
    • Testing Network Quality
    • Custom Capturing and Rendering
    • Custom Audio Capturing and Playback
    • Client APIs
      • Overview
      • TRTCCloud
      • TRTCCloudDelegate
      • TRTCStatistics
      • TXAudioEffectManager
      • TXBeautyManager
      • TXDeviceManager
      • Type Definition
      • Deprecated Interface
      • ErrorCode
    • Release Notes
  • macOS
    • Integration
      • 1.API Examples
      • 2.Importing the SDK
      • 3.Entering a Room
      • 4.Subscribing to Audio/Video Streams
      • 5.Publish Audio/Video Streams
      • 6.Exiting a Room
      • 7.Sensing Network Quality
      • 8.Enabling Screen Sharing
      • 9.Sharing Computer Audio
      • 10.Setting Video Quality
      • 11.Rotating Videos
    • Testing Hardware Devices
    • Testing Network Quality
    • Custom Capturing and Rendering
    • Custom Audio Capturing and Playback
    • Client APIs
      • Overview
      • TRTCCloud
      • TRTCCloudDelegate
      • TRTCStatistics
      • TXAudioEffectManager
      • TXBeautyManager
      • TXDeviceManager
      • Type Definition
      • Deprecated Interface
      • ErrorCode
      • Release Notes
    • Release Notes
  • Windows C++
    • Integration
      • 1.API Examples
      • 2.Importing the SDK
      • 3.Entering a Room
      • 4.Subscribing to Audio/Video Streams
      • 5.Publish Audio/Video Streams
      • 6.Exiting a Room
      • 7.Sensing Network Quality
      • 8.Enabling Screen Sharing
      • 9.Setting Video Quality
      • 10.Rotating Videos
    • Testing Hardware Devices
    • Testing Network Quality
    • Custom Capturing and Rendering
    • Custom Audio Capturing and Playback
    • Client APIs
      • Overview
      • ITRTCCloud
      • ITRTCStatistics
      • TRTCCloudCallback
      • ITXAudioEffectManager
      • ITXDeviceManager
      • Type Definition
      • Deprecated Interface
      • Error Codes
    • Release Notes
  • Electron
    • Integration
      • 1.API Examples
      • 2.Importing the SDK
      • 3.Entering a Room
      • 4.Subscribing to Audio/Video Streams
      • 5.Publish Audio/Video Streams
      • 6.Exiting a Room
      • 7.Sensing Network Quality
      • 8.Enabling Screen Sharing
      • 9.Sharing Computer Audio
      • 10.Setting Video Quality
      • 11.Rotating Videos
    • Client APIs
      • Overview
      • Error Codes
  • Flutter
    • Integration
      • 1.API Examples
      • 2.Importing the SDK
      • 3.Entering a Room
      • 4.Subscribing to Audio/Video Streams
      • 5.Publish Audio/Video Streams
      • 6.Exiting a Room
      • 7.Sensing Network Quality
      • 8.Enabling Screen Sharing
      • 9.Sharing Computer Audio
      • 10.Setting Video Quality
      • 11.Rotating Videos
    • Client APIs
      • Overview
      • Error Codes
  • Unity
    • Integration
      • 1.API Examples
      • 2Importing the SDK
    • Client APIs
      • Overview
      • Error Codes
  • Qt
    • Integration
      • 1.Importing the SDK
  • Overview
    • Overview
  • Pricing
    • RTC-Engine Packages
    • Billing of On-Cloud Recording
    • Billing of MixTranscoding and Relay to CDN
    • Billing Explanation for Subscription Package Duration
    • Billing of Monitoring Dashboard
    • Free Minutes
    • Pay-As-You-Go
  • Concepts
  • Features
  • Performance Statistics
  • FAQs
    • FAQs for Beginners
    • Migration Guide
      • Twilio Video to Tencent RTC
      • Billing
      • Features
      • UserSig
      • Firewall Restrictions
      • How to Downsize Installation Package
      • TRTCCalling for Web
      • Audio and Video Quality
      • Others
RTC Engine

Performance Statistics

This document analyzes TRTC’s performance in terms of audio/video quality, latency, smoothness, stability, CPU usage, memory usage, battery consumption, heating, and other key indicators in tests under normal and poor network conditions and in different application scenarios (one-to-one, one-to-many, etc.).

Performance Under Normal and Poor Network Conditions

Scenario

Video call, interactive live streaming, and audio call

Parameter configuration

Video call:
Parameter
Value
Resolution
368 x 640
Bitrate
400 Kbps
Frame rate
15

Interactive live streaming:
Parameter
Value
Resolution
720 x 1280
Bitrate
1200 Kbps
Frame rate
15

Poor network tolerance test

The TRTC SDK was tested for its tolerance to different bad network conditions.


explain
For the metrics used to measure tolerance to poor network conditions, please see Appendix 1: Network Metrics.

Audio MOS under poor network conditions

TRTC can deliver relatively high-quality audio and low latency under poor network conditions. The table below lists TRTC’s performance and mean opinion score (MOS) under different poor network conditions.



Client SDK Performance

Tested devices

Device
Processor
Memory
Android device 1
Qualcomm Snapdragon 835 - 8 cores
6 GB
Android device 2
Kirin 980 - 8 cores
8 GB
iOS device 1
Apple A8 - 2 cores
1 GB
iOS device 2
Apple A13 - 6 cores
4 GB

Parameter configuration

Parameter
Value
Resolution
240 x 320
Bitrate
100 Kbps
Frame rate
15

Test scheme

Scenario: one-to-one, one-to-two, one-to-four, one-to-eight
Duration: 30 min for each scenario
Method: a Linux robot is used to simulate streaming in one-to-many scenarios. Each device is tested independently.

Test result

The TRTC SDK performs well in terms of CPU usage, memory usage, heating, and battery consumption. It uses a small amount of hardware resources but provides quality audio/video services.
App CPU usage:



App memory usage:



System CPU usage



System memory usage



Battery drain after 30 min:



Heat increase after 30 min:




Appendix 1: Network Metrics

Metric
Description
Example
Loss
Packet loss rate
50%: for every 10 packets sent, 5 are lost.
Delay
Network delay
200: Data packets are delivered by the network 200 ms after they are sent by the SDK.
Jitter
Network jitter
300: Packet sending may be delayed 20 ms, 50 ms, 250 ms, 280 ms, or any value up to 300 ms. The average delay is 150 ms.



Appendix 2: Performance Metrics Under Poor Network Conditions

Performance Metric
Description
MOS
An important measure of the audio quality of telecommunication systems. MOS is generated by Spirent Nomad using the POLQA standard. The higher the score, the higher the audio quality.
End-to-end latency
The time from when audio is captured at the sender end to when it is played back at the recipient end
Poor network tolerance test
Spirent Nomad is used to score the SDK under different poor network conditions using the POLQA standard. Foreman video sequences are used to send data, and frame intervals are monitored at the recipient end. Data is collected at 30 points over a course of 10 min or longer. If there are perceptible abnormalities of 3 min at more than 3 data points, or the SDK is unavailable for a relatively long period of time, the SDK is considered intolerant of the network conditions.

notice
Perceptual Objective Listening Quality Analysis (POLQA) is the ITU-T P.863 standard. It is a globally applicable standard used to score speech quality under different network conditions.


Appendix 3: SDK Performance Indicators

Indicator
Description
App CPU usage
Android
Non-normalized CPU usage of the app, which is the same as the results generated by Android Studio Profiler
iOS
CPU usage of the app, which is the same as the results generated by XcodePerfDog usage = Xcode usage / Number of cores
System CPU usage
Android
Non-normalized CPU usage of the device, which is the same as the results generated by Android Studio Profiler
iOS
CPU usage of the device, which is the same as the results generated by XcodePerfDog usage = Xcode usage / number of cores
Memory usage
Android
Proportional set size (PSS), which is the same as the results generated by Android Java API and Meminfo
iOS
Xcode memory, which is obtained via debug gauges
Battery drain
Decrease in battery percentage after 30 min (calculation starts the moment the battery percentage drops from 100% to 99%.)
Heat increase
Temperature is measured with a thermometer when the app is not launched. Then run the app for 30 min under different scenarios. Heat increase = Temperature after 30 min – Temperature when the app is not launched