Introduction

A video conference with too many hosts may cause network latency and packet loss.

If we set the subscribing stream to the 1-N Mode (set one stream as high and the rest as low), then a maximum of 17 users can join as hosts in an interactive broadcast without any network latency.

A maximum of 17 users is supported on the PC platform, while a maximum of 7 users is supported on the mobile platform.

Implementation

Before proceeding, ensure that you implement a basic live broadcast in your project. See Start a Live Broadcast for details.

Refer to the following steps to enable the video conference of 7+ users:

  1. Before joining a channel, call setParameters("{"che.audio.live_for_comm":true}") to enable multi-party live broadcast mode.

If the version of SDK is v2.3.1 or earlier, you need to call setParameters("{\"che.video.moreFecSchemeEnable\":true}”) to enable ULP FEC and improve the reliability of data transmission.

  1. After joining a channel, the hosts call the enableDualStreamMode method to enable the video dual stream mode.

    After calling the method successfully, the SDK automatically sets the parameters of the low-video stream according to the parameters of the high-video stream.

  2. The hosts call the setRemoteVideoStreamType method to set one subscribed video stream as the high-video stream and other susbcribed streams as the low-video streams.

    Agora does not recommend using video profiles that exceed either a resolution of 640 x 480 or a frame rate of 30 fps.

    Resolution Frame Rate Bitrate
    640 x 480 15 fps 500 Kbps
    640 x 360 15 fps 400 Kbps
    640 x 360 24 fps 800 Kbps
  3. (Optional) Call the setParameters("{"che.video.lowBitRateStreamParameter":{"width":<width>,"height":<height>,"frameRate":<frameRate>,"bitRate":<bitRate>}") to customize the default low-video stream parameters at the application level.

    // Sets the video profile to 320 x 180, 15 fps, and 140 Kbps.
    setParameters("{\"che.video.lowBitRateStreamParameter\":{\"width\":320,\"height\":180,\"frameRate\":15,\"bitRate\":140}}";

    The aspect ratio of the low-stream video profile (width x height) should be identical to that of the preset video profile.

Sample code

We also provide an open-source Large-Group-Video-Chat demo project on Github.

API reference

Considerations

  • Agora recommends using a layout with one big window and multiple small windows: Use a high-stream layout for the big window; Use a low-stream layout for small windows.
  • When a user is offline and receiving the callback indicating that a uid if offline, call the setupRemoteVideo method and set the view as NULL to release all memory resources of the view used by that user.