At Video SDK, weβre building tools to help companies create world-class collaborative products with capabilities for live audio/video, cloud recordings, RTMP/HLS streaming, and interaction APIs.
π₯³ Get 10,000 minutes free every month! Try it now!
- π₯οΈ Demo App
- β‘ Quick Setup
- π§ Prerequisites
- π¦ Running the Sample App
- π₯ Meeting Features
- π§ Key Concepts
- π Token Generation
- 𧩠Project OverView
- π Examples
- π VideoSDK's Documentation
- π¬ Join Our Community
Curious to see it in action? Check out our live demo here.
- React v16 or later
- Node v10 or later
- A valid Video SDK Account
Follow these steps to get the sample app up and running:
git clone https://github.com/videosdk-live/videosdk-rtc-react-sdk-example.git
Open your favorite code editor and copy the example environment file:
cp .env.example .env
Generate a temporary token from your Video SDK Account and update the .env
file:
REACT_APP_VIDEOSDK_TOKEN="YOUR_TEMPORARY_TOKEN"
Install the necessary packages:
npm install
Bingo, it's time to push the launch button.
npm run start
Unlock a suite of powerful features to enhance your meetings:
Feature | Documentation | Description |
---|---|---|
π Precall Setup | Setup Precall | Configure audio, video devices and other settings before joining the meeting. |
β³ Waiting Lobby | Waiting Lobby | Virtual space for participants to wait before joining the meeting. |
π€ Join Meeting | Join Meeting | Allows participants to join a meeting. |
πͺ Leave Meeting | Leave Meeting | Allows participants to leave a meeting. |
π€ Toggle Mic | Mic Control | Toggle the microphone on or off during a meeting. |
π· Toggle Camera | Camera Control | Turn the video camera on or off during a meeting. |
π₯οΈ Screen Share | Screen Share | Share your screen with other participants during the call. |
πΈ Image Capture | Image Capturer | Capture images of other participant from their video stream, particularly useful for Video KYC and identity verification scenarios. |
π Change Input Device | Switch Input Devices | Switch between different audio and video input devices. |
π Change Audio Output | Switch Audio Output | Select an output device for audio during a meeting. |
βοΈ Optimize Tracks | Track Optimization | Enhance the quality and performance of media tracks. |
π¬ Chat | In-Meeting Chat | Exchange messages with participants through a Publish-Subscribe mechanism. |
π Whiteboard | Whiteboard | Collaborate visually by drawing and annotating on a shared whiteboard. |
π File Sharing | File Sharing | Share files with participants during the meeting. |
πΌ Recording | Recording | Record the meeting for future reference. |
π‘ RTMP Livestream | RTMP Livestream | Stream the meeting live to platforms like YouTube or Facebook. |
π Real-time Transcription | Real-time Transcription | Generate real-time transcriptions of the meeting. |
π Toggle Remote Media | Remote Media Control | Control the microphone or camera of remote participants. |
π« Mute All Participants | Mute All | Mute all participants simultaneously during the call. |
ποΈ Remove Participant | Remove Participant | Eject a participant from the meeting. |
Understand the core components of our SDK:
-
Meeting
- A Meeting represents Real-time audio and video communication.Note: Don't confuse the terms Room and Meeting; both mean the same thing π
-
Sessions
- A particular duration you spend in a given meeting is referred as a session, you can have multiple sessions of a specific meetingId. -
Participant
- A participant refers to anyone attending the meeting session. Thelocal participant
represents yourself (You), while all other attendees are consideredremote participants
. -
Stream
- A stream refers to video or audio media content that is published by either thelocal participant
orremote participants
.
The token is used to create and validate a meeting using API and also initialize a meeting.
π οΈ Development Environment
:
- You may use a temporary token for development. To create a temporary token, go to VideoSDK's dashboard .
π Production Environment
:
- You must set up an authentication server to authorize users for production. To set up an authentication server, please take a look at our official example repositories. videosdk-rtc-api-server-examples
-
components/DropDown.js : A dropdown component for selecting audio input devices (microphones), monitoring audio via the Web Audio API, and managing microphone settings.
-
components/DropDownCam.js : A dropdown component for selecting camera devices and managing camera permissions.
-
components/DropDownSpeaker.js : Allows users to select speakers, test them with sample sounds, and track playback progress for confirmation.
-
components/NetworkStats.js : Displays real-time network statistics, such as upload and download speeds.
-
components/screens/JoiningScreen.js
: Provides users the option to create or join a meeting, manage webcam and mic status, select devices (microphone, camera, speakers), check permissions, preview video, and monitor network statistics to ensure proper setup before entering the meeting. -
api.js
: Includes all API calls for creating and validating meetings. -
components/MeetingDetailsScreen.js
: Displays options for creating or joining a meeting.
components/screens/WaitingToJoin.js
: Displays a Lottie animation with messages while waiting to join the meeting. This screen is shown until theisMeetingJoined
flag is true, which is received from themeeting
initialized usinguseMeeting()
from@videosdk.live/react-sdk
.
-
components/ParticipantView.js
: Displays a single participant's video with a corner display for the participant's name. -
components/ParticipantGrid.js
: Displays a grid of participants shown on the main screen. -
meeting/components/ParticipantView.js
: Manage how many participants will be displayed in the participant grid.
meeting/components/BottomBar.js
Contains the buttons displayed at the bottom of the screen:- Shows the meeting ID with a copy icon button on the left.
- Displays the recording indicator, raise hand button, mic button (with a list of available mics), webcam button (with available webcam list), screen share button, and leave meeting button in the middle.
- The rightmost corner contains the chat button and participant count button.
- On a mobile, tablet, or smaller screens, the bottom bar reorders to show the leave button, recording button, mic/webcam buttons, and a
more actions
button. Themore actions
button opens a drawer containing the remaining options.
components/PresenterView.js
: Displays the view when a participant shares their screen.
sidebar/ChatPanel.js
: Contains the chat side panel, with a chat input field and a list of chat messages.
sidebar/ParticipantPanel.js
: Displays the list of participants present in the meeting.
components/screens/LeaveScreen.js
: Displays the leave screen when participant exit the meeting.
- Prebuilt Examples
- JavaScript SDK Example
- React Native SDK Example
- Flutter SDK Example
- Android Java SDK Example
- Android Kotlin SDK Example
- iOS SDK Example
Explore more and start building with our Documentation