Agora.io provides building blocks for you to add real-time voice and video communications through a simple and powerful SDK. You can integrate the Agora SDK to enable real-time communications in your own application quickly.
After integrating the Agora SDK, you can call different sets of APIs to implement voice/video communications in different scenarios.
Agora SDK | Functions | Description |
---|---|---|
Voice SDK | Voice Call Interactive Live Audio Streaming |
The Voice SDK package size is smaller than the Video SDK package size and applies to voice-only calls and voice-only interactive live streaming. |
Video SDK | Video Call Interactive Live Video Streaming |
Provides both voice and video functions. |
RTM SDK | Real-time Messaging | Provides a stable messaging mechanism for real-time messaging scenarios that require low latency and high concurrency for a global audience. |
Recording Add-on | On-premise Recording Cloud Recording |
Records and saves voice/video calls and interactive live streaming on your server. |
SD-RTN™, or Software Defined Real-time Network, is a real-time transmission network built by Agora and is the only network infrastructure specifically designed for real-time communications in the world.
All audio and video services provided by the Agora SDK are deployed and transmitted through the Agora SD-RTN™. Agora deploys over 250 data centers worldwide that use intelligent dynamic routing algorithms to achieve millisecond latency and ensure high availability of Agora's service.
Feature | Description |
---|---|
Global network coverage | |
Mass access capability | |
QoS (Quality of Service) capability enhancement | |
QoS-based dynamic routing | |
SLA (Service Level Agreement) guarantee | |
Global network reliability | |
Compatibility and Interoperability | |
UDP (User Datagram Protocol) optimization | Optimizes multiple private protocols based on the UDP |
Self-developed audio and video codecs | |
Anti-packet-loss optimization |
Agora is the only RTC service provider in the world using self-developed audio and video codecs. This allows Agora to have unique advantages in audio and video qualities.
Immersive visual experience
Continuous network detection: Network detection before and after encoding, and network friendliness
Dynamic network flow control: Maintains a dynamic balance of network bandwidth resources
Highly efficient anti-loss coding products: Optimized coding algorithms and smooth video transmission that minimizes network impact
Packet loss compensation: Automatically repairs content to ensure the best experience
Visual enhancement: Image enhancement based on machine learning
Things you need to know before using the Agora SDK.
Agora Console is a site for developers to manage Agora projects and services.
Agora Console provides an intuitive interface for developers to make payments, query, manage and accomplish other operations when using Agora services. After registering an Agora account, developers can use the following main features:
Agora also provides RESTful APIs, so developers can implement some of the above features directly, such as create a project and fetch usage numbers.
App ID is a random string created within Agora Console and is the unique identifier of an app.
Agora uses App ID to identify each app and provides billing and other statistical data services based on it. After signing up within Agora Console, you can create multiple apps, each with a unique App ID. When initializing a client,you need to pass an App ID as an argument. Clients created by different App IDs cannot communicate with each other. See Get an App ID.
An App Certificate is a random string created within Agora Console. It enables token authentication and is one of the required arguments for generating a token. See Enable the App Certificate.
A token, also known as a dynamic key, is used by the Agora server for dynamic authentication.
A token is used in situations requiring high security, such as in a production environment. You need a token for authentication when joining an RTC channel or when logging into the Agora RTM system.
See Set up Authentication for details.
A channel is created by a developer calling the methods provided by Agora for transmitting real-time data.
Agora uses different channels to transmit different types of data. The RTC channel transmits audio or video data, while the RTM channel transmits messaging or signaling data. RTC channels and RTM channels are independent of each other.
Additional components provided by Agora, such as On-premise Recording and Cloud Recording, can join the RTC channel and provide real-time recording, transmission acceleration, media playback, and content moderation.
Agora identifies channels by channel name. Users with the same channel name join the same channel and interact with each other. A channel no longer exists when the last user leaves the channel.
The SDK applies different optimization methods according to the channel profile. Agora supports the following channel profiles:
Channel Profile | Description |
---|---|
Communication | One-on-one or group calls, where all users in the channel can talk freely. |
Live Interactive Streaming | In an interactive live streaming channel, users have two client roles: Host and audience. The host sends and receives audio/video, and the audience receives audio/video with the sending function disabled. |
A user ID (UID) identifies a user in the channel. Each user in the same channel should have a unique user ID.
A stream is an object that contains audio/video data. Users in a channel can publish the local stream and subscribe to the remote streams from other users.
Publishing is the action of sending the user's audio and/or video data to the channel. Usually, the published object is a media stream created by the audio data sampled from a microphone and/or the video data captured by a camera. Developers can also publish media streams from other sources, including an online music file and the user's screen.
After publishing succeeds, the SDK continues sending media data to other users in the channel. By publishing one's stream and subscribing to others' streams, users have real-time voice or video calls with each other.
Subscribing is the action of receiving media streams published to the channel. A user can receive other users' audio and/or video data by subscribing to their streams. A user can subscribe to one or more streams published by other users.
Developers can either directly play the subscribed streams or process them, for example by taking screenshots, or recording the streams.