Concept and Architecture - React Native
VideoSDK provides the APIs to build audio and video apps. It typically includes features such as video and audio calls, chat, cloud recording, simulcasting (RTMP), interactive live streaming (HLS).
Concepts

1. Room
-
Room object in the VideoSDK provides a virtual place for participants to interact and engage in real-time voice, video, and screen-sharing sessions.
-
Room can be uniquely identified by
roomId.
2. Participant
-
Participant is a VideoSDK object that represents each user/client in the room and allows them to share audio/video assets.
-
2.1 Local Participant: The local participant is the one that runs on the user's device. The local participant has control over their own media streams, including the ability to start and stop audio and video.- The local participant in a room can also connect with other participants by transmitting and receiving audio and video streams, exchanging chat messages, and more.
-
2.2 Remote Participant: The remote participant receives audio and video streams from both the local participant and other remote participants. Additionally, they have the ability to exchange audio, video, and chat messages with the local participant. -
Each participant in VideoSDK can be uniquely identified by
participantId.
3. RTCStream & Track
-
An
RTCStreamis one kind of media a participant publishes:audio,video,shareorshareAudio.useParticipantreturns them aswebcamStream,micStream,screenShareStreamandscreenShareAudioStream. -
A track is a continuous flow of audio or video data. Each
RTCStreamholds one track in itstrackproperty. -
To render a video stream, wrap its
trackin the SDK'sMediaStreamand passnew MediaStream([stream.track]).toURL()toRTCView. The SDK plays remote audio for you.
4. Events / Notifications
- Events / Notifications can be used to inform users about various activities happening in a Room, including participant join/leave and new messages. They can also be used to alert users about any SDK-level errors that occur during a call.
5. Session
- A Session is the instance of an ongoing room which has one or more participants in it. A single room can have multiple sessions.
- Each session can be uniquely identified by
sessionId.


6. Cloud Recording
- Cloud recording in VideoSDK refers to the process of recording audio or video content and storing it on a remote server or VideoSDK server.
7. Simulcasting (RTMP)
- RTMP is a popular protocol for live streaming video content from the VideoSDK to platforms such as YouTube, Twitch, Facebook, and others.
- Provide the platform-specific
stream keyandstream URLto stream to that platform.
8. Interactive Live Streaming (ILS)
-
Interactive Live Streaming (ILS) is a low-latency live streaming experience where viewers can actively engage with the host and participate in the live stream in real time.
-
In an interactive live stream (ILS), participants join a room with different modes (
SEND_AND_RECVfor hosts,RECV_ONLYfor the audience). Hosts can publish audio/video and promote or demote audience members during the stream, allowing viewers to participate in activities such as live polling, Q&A sessions, and sending virtual gifts.
9. HTTP Live Streaming (HLS)
-
HTTP Live Streaming (HLS) is a live streaming protocol that delivers video over HTTP using
.m3u8playlists and media segments, making it suitable for distributing live content to large audiences. -
In an HTTP live stream (HLS), hosts can publish audio/video, while viewers can participate in activities such as live polling, Q&A sessions, and sending virtual gifts.
Architecture
This diagram shows the flow for audio and video calls, recording, and live streaming to social media platforms.
Got a Question? Ask us on discord

