tencent cloud

Feedback

Last updated: 2024-02-02 18:49:21

    Overview

    In TRTCCloud, you can adjust the video quality in the following ways:
    TRTCCloud.enterRoom TRTCAppScene parameter: For selecting your application scenario.
    TRTCCloud.setVideoEncoderParam: For setting encoding parameters.
    TRTCCloud.setNetworkQosParam: Used for setting up network regulation policies.
    This document describes how to configure these parameters to make the video quality of the TRTC SDK meet your project-specific needs. You can also see the following demos:

    Supported Platforms

    iOS
    Android
    Mac OS
    Windows
    Web
    Electron
    Flutter
    For detailed operations on how to set the screen quality on the Web, please refer to the Configuration Guide.

    Room Scenario

    Scenario Type
    Scenario Introduction
    TRTC_APP_SCENE_VIDEOCALL
    Within the context of video calling, 720p and 1080p high-definition image quality is supported. A single room can accommodate up to 300 simultaneous online users, with a maximum of 50 users speaking at the same time.
    TRTC_APP_SCENE_LIVE
    In the context of interactive video broadcasting, the mic can be smoothly turned on/off without switching latency, with host latency as low as 300 milliseconds. Supports live streaming for hundreds of thousands of concurrent viewers, with playback delay reduced to 1000 milliseconds.
    Note: In this scenario, you need to specify the current user's role using the 'role' field in TRTCParams.
    TRTC_APP_SCENE_AUDIOCALL
    In the audio call context, it supports 48 kHz duplex audio calls. A single room accommodates up to 300 concurrent online users, with a maximum of 50 people speaking at once.
    TRTC_APP_SCENE_VOICE_CHATROOM
    In the context of interactive audio live streaming, microphones can be switched on and off smoothly without delay. The host experiences a low latency of fewer than 300 milliseconds. It accommodates hundreds of thousands concurrent viewer users, with the broadcast delay reduced to 1000 milliseconds.
    Note: In this scenario, you need to specify the current user's role using the 'role' field in TRTCParams.

    TRTCVideoEncParam

    Recommended configuration

    Application Scenario
    videoResolution
    videoFps
    videoBitrate
    Video call (mobile)
    640x360
    15
    550kbps
    Video conferencing (primary image on macOS or Windows)
    1280x720
    15
    1200kbps
    Video conferencing (primary image on mobile device)
    640x360
    15
    900kbps
    Video conferencing (small image)
    320x180
    15
    250kbps
    Online education (teacher on macOS or Windows)
    960x540
    15
    850kbps
    Online education (teacher on iPad)
    640x360
    15
    550kbps
    Online education (student)
    320x180
    15
    250kbps

    Detailed description of fields

    (int) videoResolution The encoding resolution (TRTCCloudDef.TRTC_VIDEO_RESOLUTION_ ), for instance, 640 x 360, indicates the width (in pixels) x height (in pixels) of the output image.We have only predefined horizontal (landscape) resolutions in the TRTCVideoResolution enumeration where the width >= height. If you want to use a vertical (portrait) resolution, you need to set resMode to Portrait.
    Note:
    Because many hardware codecs only support pixel widths that are divisible by 16, the actual resolution encoded by the SDK may not be exactly the same as configured by the parameter; instead, it will be automatically corrected based on a multiple of 16. For example, the resolution 640 x 360 may be adapted to 640 x 368 inside the SDK.
    (int) videoResolutionMode This parameter designates the screen orientation resolution (TRTCCloudDef.TRTC_VIDEO_RESOLUTION_MODE_). Since TRTCVideoResolution only defines horizontal screen resolution, if you want to use vertical screen resolutions like 360 x 640, you'd need to set resMode as TRTCVideoResolutionModePortrait. Generally, PCs and Macs employ horizontal (Landscape) resolution, while smartphones use vertical (Portrait) resolution.
    (int) videoFps The Frame Rate (FPS) refers to the number of frames to be encoded per second. A recommended setting is 15 FPS, which assures sufficient video fluidity without compromising clarity due to an excessive number of frames per second. If you require higher smoothness, settings of 20 FPS or 25 FPS can be used. However, resist settings above 25 FPS, since the conventional frame rate for movies is 24 FPS.
    (int) videoBitrate Video Bitrate (Bitrate) refers to how much Kbit binary data the encoder outputs per second after encoding. If you set videoBitrate to 800kbps, the encoder will produce 800kbit video data per second. If stored into a file, the size of this file would amount to 800kbit, which is equivalent to 100KB, or 0.1MB.
    A higher video bitrate is not always better; instead, it should be chosen appropriately based on the resolution as shown in the table below.

    Resolution-bitrate reference table

    Resolution Definition
    Aspect Ratio
    Recommended Bitrate(VideoCall)
    Recommended Bitrate(LIVE)
    TRTCVideoResolution_120_120
    1:1
    80kbps
    120kbps
    TRTCVideoResolution_160_160
    1:1
    100kbps
    150kbps
    TRTCVideoResolution_270_270
    1:1
    200kbps
    300kbps
    TRTCVideoResolution_480_480
    1:1
    350kbps
    525kbps
    TRTCVideoResolution_160_120
    4:3
    100kbps
    150kbps
    TRTCVideoResolution_240_180
    4:3
    150kbps
    225kbps
    TRTCVideoResolution_280_210
    4:3
    200kbps
    300kbps
    TRTCVideoResolution_320_240
    4:3
    250kbps
    375kbps
    TRTCVideoResolution_400_300
    4:3
    300kbps
    450kbps
    TRTCVideoResolution_480_360
    4:3
    400kbps
    600kbps
    TRTCVideoResolution_640_480
    4:3
    600kbps
    900kbps
    TRTCVideoResolution_960_720
    4:3
    1000kbps
    1500kbps
    TRTCVideoResolution_160_90
    16:9
    150kbps
    250kbps
    TRTCVideoResolution_256_144
    16:9
    200kbps
    300kbps
    TRTCVideoResolution_320_180
    16:9
    250kbps
    400kbps
    TRTCVideoResolution_480_270
    16:9
    350kbps
    550kbps
    TRTCVideoResolution_640_360
    16:9
    550kbps
    900kbps
    TRTCVideoResolution_960_540
    16:9
    850kbps
    1300kbps
    TRTCVideoResolution_1280_720
    16:9
    1200kbps
    1800kbps
    TRTCVideoResolution_1920_1080
    16:9
    2000kbps
    3000kbps

    TRTCNetworkQosParam

    QosPreference

    In an environment where network bandwidth is ample, clarity and fluidity can be balanced. However, when a user's network conditions are not optimal, the decision needs to be made whether to prioritize clarity or fluidity. This designation can be made through the preference parameter within TRTCNetworkQosParam.
    Smoothness preferred (TRTCVideoQosPreferenceSmooth) When users experience a weak network, the display could turn blurry and may contain many mosaics, but smoothness can be maintained with minimal or no stutter.
    Quality preferred (TRTCVideoQosPreferenceClear) When users are constrained by a weak network, the image will strive to remain as clear as possible, but stuttering might be a frequent occurrence.

    ControlMode

    Select the TRTCQosControlModeServer for the controlMode parameter. The TRTCQosControlModeClient is used by the Tencent Cloud Research and Development team for internal debugging purposes, please do not focus on it.

    Common Misconceptions

    1. Is a higher resolution better? A higher resolution necessitates a higher bit rate for support. If a resolution of 1280 x 720 is chosen, but the bit rate is specified as 200kbps, the picture will contain a substantial blur. It is recommended to refer to the Resolution-bitrate reference table while making adjustments.
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support