VidyoPlatform logo

Embed real-time video in your apps with a few lines of code

Enables developers to provide custom, high-quality, real-time video. With client and server-side APIs, get power and flexibility.

As low as $0.003/minute/participant.

Multi-platform

black logo set windows android apple ios
webrtc

Ultimate choice in Deployment

webrtc

Full On-Premise

webrtc

Private Cloud

webrtc

Hybrid

Build real-time high-quality video experiences

Adaptive Video Layering Technology

Adapts to users available bandwidth and device, utilizing Scalable Video Encoding (SVC) and Simulcast technologies

High Quality Screen Sharing

Share a single app or entire screen simultaneously with video

Cross Platform

Consistent APIs and SDKs to rapidly build your video chat app on all major platforms

Multiparty Video

Scalable multiparty video calls including one-to-one and many-to-many

Voice Activated Layouts

Always show active speakers on-screen during multiparty calls or customize the layout to meet your needs

 

Wide Band Audio

Wideband audio ensures you can be heard just as clearly as seen

 

Customized Layouts

Customize multiparty layouts and compositions for your specific app needs

 

Firewall Traversal

Dynamically connect over all types of networking environments

 

Made for Developers

Embed real-time voice and video with just a few lines of code.

Test out our sample below and see how easily you can get started.

Some of the languages we support

Up Click the Preview

// declare global variables
let vidyoConnector = null;
let meetingLink = document.getElementById('meetingLink');
let name = document.getElementById('name');

function onVidyoClientLoaded() {
    window.VC = new window.VidyoClientLib.VidyoClient('', () => {
        init();
    });
}

async function init() {
    try {
        vidyoConnector = await VC.CreateVidyoConnector({
            viewId: "renderer", // Div ID where the composited video will be rendered, see VidyoConnector.html;
            viewStyle: "VIDYO_CONNECTORVIEWSTYLE_Default", // Visual style of the composited renderer
            remoteParticipants: 8,     // Maximum number of participants to render
            logFileFilter: "debug@VidyoClient debug@VidyoSDP debug@VidyoResourceManager",
            logFileName: "",
            userData: 0,
            constraints: {}
        });
        console.log("create success");
    } catch (error) {
        console.error('creating failed', error);
    }
}

async function joinCall() {
    try {
        // create new room
        let res = await fetch('https://vidyo-adhoc-zsdgxlqgkq-uc.a.run.app/api/v1/rooms', {method: 'POST'});
        res = await res.json();
        console.log(res);
        const params = res.roomUrl.split('/join/');
        const portal = params[0];
        const roomKey = params[1];
        await vidyoConnector.ConnectToRoomAsGuest({
            host: portal, // HOST
            roomKey: roomKey, //ROOM KEY
            displayName: name.value,
            roomPin: res.pin,
            onSuccess: () => {
                console.log(`vidyoConnector.ConnectToRoomAsGuest : onSuccess callback received`);
                meetingLink.value = res.roomUrl;
            },
            onFailure: (reason) => {
                console.error("vidyoConnector.Connect : onFailure callback received", reason);
            },
            onDisconnected: (reason) => {
                console.log("vidyoConnector.Connect : onDisconnected callback received", reason);
            }
        });
    } catch(error) {
        console.log(error)
    };
}

function endCall() {
    vidyoConnector.Disconnect();
    meetingLink.value = '';
}

Try the sample project above on Stackblitz

or clone directly from GitHub and start playing.

 

Contact Us For A Free Trial Account

If you have questions, want to start a free trial, or learn more about pricing, fill out the form and we will get back to you shortly.