Talk to us
Talk to us

Blog Post

start building

How To Create A Free Video Chat App

How To Create A Free Video Chat App

Video chat is without a shadow of a doubt one of the most effective means of communication available today. In the past, this technology’s shortcomings included a lack of reliable internet connectivity as well as inadequate hardware for video rendering. Considering how quickly Internet connection speeds and video processing hardware are improving, these concerns are rapidly becoming irrelevant.

Using ZEGOCLOUD’s Video Chat SDK, we are going to create a free video chat application in this article. In the following paragraph, we will acquire additional information regarding video chat apps.

What is Video Chat?

Video chat is essentially a face-to-face virtual conversation that is held over the internet by means of webcams and specialized software. This conversation can take place anywhere there is internet access. Video data is received at both of the connection points, and then it is sent back and forth between the two of them using this mode of communication.

The absence of interaction inherent in voice and text-based chatting platforms led to the development of this strategy. Since its inception, the video chat function has rapidly evolved into an indispensable component of today’s most cutting-edge messaging and communication apps. For example, top social networking sites like WhatsApp and Facebook have embraced and incorporated this technology into their respective social infrastructures.

There are many different configurations available for video chat. You have the option of setting up a one-on-one or group call mode, for instance. These two different configurations are offered by the vast majority of these various social networks.

It can be a very trying experience to create a video chat function from the ground up for an application. What do you think about creating a free video chat room? That’s interesting, isn’t it? Simply remain here to obtain instructions on how to carry it out using ZEGOCLOUD’s Video Call SDK. The cool thing about this SDK is that it scaffolds everything that is required to get a basic video chat app up and running, including the user interface and the management of the network, without giving you the opportunity to worry about the implementation. To complete the process, all you need to do is integrate the SDK and make a call to an endpoint that already exists. Your app for video chatting is now ready to use!

Types of Businesses That Can Use Free Video Chat

You may be wondering if and where free video chat programs can be used. Indeed, there are a wide variety of practical uses for video chatting.

Below are just a few of the many applications for these services.

1. Distance learning

Using video conferencing tools, you may build a strong virtual classroom for students to study in. ZEGOCLOUD’s Video Call SDK enables the development of virtual lecture halls with broadcast-quality video and audio. It also has features like screen sharing and real-time video calls with low latency that can be leveraged to create an excellent atmosphere for instruction.

2. The Benefits of Using a Video-Based Customer Service System

The telephone, text-based conversations and email that make up the bulk of the traditional customer support paradigm aren’t very engaging. Video chatting has revolutionized the customer service industry. Customer engagement and satisfaction can be boosted by incorporating video chat into your existing client care processes in order to more quickly and effectively address customer inquiries.

3. Coverage of a Real-Time Event

Video chat app makes it simple to share important life moments with a wide audience anywhere in the world. Adding text chat, virtual gifts, polls, and other features is a simple way to enhance audience participation and strengthen your connections with your audience in real-time.

4. Access to remote medical care

Monitoring and updates for medical gear must be instantaneous. Using low- or no-cost video calling software, we can easily fulfill this prerequisite. Because of its advanced features and effective control of the underlying network, ZEGOCLOUD Video Call SDK is a viable option.

How to Build a Real-Time Free Video Chat App

Making a video chat app that works in real-time is challenging due to the need for a variety of asynchronous programming techniques and constant streams of multimedia data. This isn’t at all like using a video chat SDK like ZEGOCLOUD’s Video Call SDK (Express Video).

Video Call SDK Introduction

The Video Call SDK is a robust real-time video and audio component that comes packed with a wide variety of features. It makes it easier for you to swiftly build video call capabilities that are dependable, efficient and engaging in mobile, desktop, and web apps.

This software development kit (SDK) has a wide range of potential applications, some of which include one-on-one and group video conversations, online education, live video streaming for entertainment, and others. The different use cases have already been discussed. Let’s get the ball rolling by beginning the process of creating our app.

Why Use ZEGOCLOUD’s Video Call SDK

The advantages of ZEGOCLOUD’s Video Call SDK can’t be said enough. There are too many benefits to list them all. To keep the article short, we’ll look at some of the best things the Video Call SDK has to offer. They include the following:

1. Allows for real-time video communications

With the help of ZEGOCLOUD’s Video Call SDK, you can quickly and easily build a free video chat app. This app can then be used to enable real-time video chats. It doesn’t matter where your friends and family are located; as long as you’re using the same app, you’ll always be able to stay in touch with each other. That’s quite cool, isn’t it? That is merely one of the fundamental capabilities of our SDK.

2. Maintain your connection, no matter where you are in the world.

It can be very annoying when you can’t access a facility because of where you live or what country you are from. The encouraging news is that ZEGOCLOUD serves more than 200 different countries. Therefore, there is no need for you to be concerned about anything because ZEGOCLOUD has got you covered.

3. Video and audio improvement

You can use ZEGOCLOUD’s professional enhancement services to improve the video and audio quality of your media. You can, for instance, modify your voice or even alter it entirely if that is the only thing that interests you. It also comes with advanced AI face beautification tools that can be used to make the user’s face look better overall.

4. Strong network management.

Straight out of the box, ZEGOCLOUD offers support for network management that is of the highest caliber. It uses optimized algorithms to predict the amount of network bandwidth that is available based on the data that is already available about the quality of the network. It then adjusts stream publishing and playback on the fly to control the amount of network traffic to match the conditions of the network.


  • ZEGOCLOUDDeveloper account —Sign up
  • VS Code or another IDE/text editor.
  • Audio/video-capable computer
  • Web development basics

Video Call SDK integration

Follow these steps to integrate the Video Call Kit SDK:

Create a new project.

  1. Include index.html, index.css, and index.js in your project after creating three separate files with those names.

Please refer to the folder structure that is provided below for the correct organization of folders:

├── index.html
├── js
│   └── index.js
└── css
   └── index.css
  1. Add these codes to index.html:
<!DOCTYPE html>
    <meta charset="UTF-8">
    <title>Zego RTC Video Call</title>
    <link rel="stylesheet" href="./css/index.css">
        Zego RTC Video Call
    <h4>Local video</h4>
    <video id="local-video" autoplay muted playsinline controls></video>
    <h4>Remote video</h4>
    <video id="remote-video" autoplay muted playsinline controls></video>
    <script src="./js/index.js"></script>
  1. Add to index.css:
    font-family: sans-serif;
    text-align: center;
video {
    width: 300px;
    height: auto;
    position: relative;
    margin: 0 auto;
    display: block;

    display: flex;
    height: auto;
    margin: auto;
    position: relative !important;
  1. Test your app on a local Web server.

Life-server add-on allows this. Install life-server if you haven’t already:

npm i live-server -g

Import the SDK

Finished creating the project! Let’s add the SDK to our project. To do so, follow the steps below:

  1. In order to install the necessary dependencies, you will need to execute the command “npm i zego-express-engine-webrtc
  2. Add Video call SDK to your project by importing it into index.js file.
var ZegoExpressEngine = require('zego-express-engine-webrtc').ZegoExpressEngine

Implement a Basic Voice Call

The SDK has been incorporated into our project. We are at this point able to continue forward with the implementation of the feature of video calls.

User A plays a stream from User B in the following illustration:

Use ZEGOCCLOUD’s Video Call SDK to video chat for free in the following steps:

Initialize ZegoExpressEngine

Before A and B are able to publish and play streams, the ZegoExpressEngine SDK needs to be initialized. After you have created an ZegoExpressEngine object, pass in your AppID and the Server URL. The credentials are stored in the ZEGOCLOUD Admin Console.

// Initializing ZegoExpressEngine
const zg = new ZegoExpressEngine(appID, server);

Check if Browser is Compatible with WebRTC.

Video Call SDK supports many modern browsers. To be sure yours is supported, run the codes below:

const result = await zg.checkSystemRequirements();
// The [result] indicates whether it is compatible. It indicates WebRTC is supported when the [webRTC] is [true]. For more results, see the API documents.

Log in to a room

We have completed creating a new ZegoExpressEngine instance. It is safe to go into a room now. You can do this by calling the loginRoom method.

// Log in to a room. It returns `true` if the login is successful.
// The roomUserUpdate callback is disabled by default. To receive this callback, you must set the `userUpdate` property to `true` when logging in to a room. 
const result = await zg.loginRoom(roomID, token, {userID, userName}, {userUpdate: true});

When you use the loginRoom function, a new room will be created with the ID you provide if it does not already exist, and you will be logged in instantly.

The current room status can be accessed via callbacks. Use the following code to implement the following callbacks:

roomStateUpdate shows the current user’s connection state.

// Callback for updates on the current user's room connection status.
zg.on('roomStateUpdate', (roomID,state,errorCode,extendedData) => {
    if (state == 'DISCONNECTED') {
        // Disconnected from the room

    if (state == 'CONNECTING') {
        // Connecting to the room

    if (state == 'CONNECTED') {
        // Connected to the room

roomUserUpdate is a callback function used to get user status updates.

 // Callback for updates on the status of the users in the room.
zg.on('roomUserUpdate', (roomID, updateType, userList) => {
        `roomUserUpdate: room ${roomID}, user ${updateType === 'ADD' ? 'added' : 'left'} `,

roomStreamUpdate receives updates on the room’s streams.

// Callback for updates on the status of the streams in the room.
zg.on('roomStreamUpdate', async (roomID, updateType, streamList, extendedData) => {
    if (updateType == 'ADD') {
        // New stream added, start playing the stream. 
    } else if (updateType == 'DELETE') {
        // Stream deleted, stop playing the stream.

Publishing Streams

Create a local audio/video stream with createStream. Calling the function records audio and video by default.

// After calling the CreateStream method, you need to wait for the ZEGOCLOUD server to return the local stream object before any further operation.
const localStream = await zg.createStream({camera :{audio:true,video:true}});
// Get the audio tag.
const localAudio = document.getElementById('local-video');
// The local stream is a MediaStream object. You can render audio by assigning the local stream to the srcObject property of video or audio.
localVideo.srcObject = localStream;

Start delivering a local audio and video stream to remote users by using startPublishingStream.

  • StreamID’s parameter value is Stream ID.
  • In the previous step, localStreamgot the media stream object.
// localStream is the MediaStream object created by calling creatStream in the previous step.
zg.startPublishingStream(streamID, localStream)

Playing Streams

Before, we transmitted live video. Start playing a stream by giving its ID to startPlayingStream‘s streamID parameter.

const remoteStream = await zg.startPlayingStream(streamID);

// The remoteVideo object is the <video> or <audio> element on your webpage.
remoteVideo.srcObject = remoteStream;

Stop publishing streams

Stop broadcasting a local video stream by calling stopPublishingStream with thestream ID as its input.


Destroy Stream

destroyStream destroys a local media stream.

// localStream is the MediaStream object created when calling the createStream method.

Stop playing stream

To stop a remote video feed, call stopPlayingStream with the stream ID.


Log out of a room

To log out, call logoutRoom with the room ID.


For more insight on how to create video chat for free with ZEGOCLOUD’s Video Call SDK, please visit the Video Call SDK documentation.

Run a demo.


As long as communication technology improves, the demand for video chat functions will grow. ZEGOCLOUD’s Video Call SDK allowed us to develop a free video chat application.

This page includes a downloadable sample demo source code that can be used as a starting point for creating your own free video chat applications.

You can use our Core SDK if you have more in-depth requirements, such as streaming mix, noise reduction, or censorship, for example.

Our technical support team is available around-the-clock to answer any questions you may have.

Read More

ZEGOCLOUD With our fully customizable and easy-to-integrate Live SDK, you can quickly build reliable, scalable, and interactive live streaming into your mobile, web, and desktop apps.

Related posts