Skip to main content

Introduction

Pexip VPaaS is a cloud-based video conferencing solution that allows organizations to integrate high-quality video conferencing capabilities into their own applications, websites, or workflows using APIs. This enables businesses to create custom video communication experiences tailored to their specific needs without having to build the infrastructure from scratch.

Pexip VPaaS is an brand-new offering that has many significant differences from the self hosted Pexip Infinity solution.

Some of the main features and differences include:

  • Cloud environment: Instead of being a self-hosted solution, this is a multi-tenant cloud service. This simplifies the deployment and maintenance since you don’t have to worry about firewalls, protocols and different ports - and you don't have to take responsibility for running the video platform itself. You are only responsble for your own application.

  • Selective Forwarding: While Pexip Infinity transcodes, which mixes all the remote video streams in a single video stream, in VPaaS we do selective forwarding. You, as a developer, will receive all the streams and it's up to you how to display them to the user.

  • No personal data stored: The video platform doesn’t store any personal data which is a key feature for data protection. A new “participant” is created for each meeting. It isn’t possible to track usage from the VPaaS service side. If you want to track the usage, you can do it in your own application backend.

    Only you handle your application's private data and your users' PII.

  • Simulcast: With simulcast a user can send several streams with different qualities. For example, they could send three videos with different resolutions. This way other participants can select which of these streams they want to receive. This allows us to save bandwidth and have a great quality at the same time.

  • Dynamic layouts: You, as a developer, don’t have any constraints about how the layout of the participant looks like. You can create your own layout, decide the size of each participant’s video and its location on-screen.

  • Multi-camera: A participant with several cameras connected to their device can share streams from all of them at the same time.

  • Multi-presentation: Several participants can share their screen at the same time.

  • High quality video: While in Infinity can support two person 4 video calls via direct media, larger conferences are are limited to 1080p. With VPaaS we can support 4K streams for multiple participants. To support this, each user's device should be powerful enough to encode and decode multiple high resolution video streams - and their network connection should be sufficient to handle the traffic.

Requirements

Before starting any of these lessons, you will need the comply with the following prerequisites:

  • NodeJS and npm: You need to install these tools on your system. There are packages for any OS and normally you would install both together. The recommended versions are the following:

    NodeJSNPM
    v20.12.2v10.5.0
  • Text editor: You can use whatever you want, although our recommendation is to use Visual Studio Code.

  • Browser: You will need a browser with WebRTC support. The recommendation is to use the latest version of Google Chrome.

    note

    Google Chrome has a security mechanism to avoid running running web pages using HTTP or HTTPS with invalid certificates. In our case we will want to access https://localhost:4000 which by default will be blocked.

    To allow self-signed certificates we need to enable it in Chrome:

    • Enter the following URL in Chrome address bar: chrome://flags/#allow-insecure-localhost

    • Set the option to enabled on allow-insecure-localhost.

    Remember to disable this option when you wish to reinstate Chrome's default security settings.

  • TypeScript and React knowledge: You will need solid TypeScript knowledge if you want to take advantage of these tutorials. Having some knowledge of React is recommended, but not essential.

  • Access to VPaaS: This is the server that the app will use to connect. You will need to generate a privateKey and publicKey. After provisioning your app in VPaaS, you will get the clientId. If you have any doubt about this, contact your Pexip representative.

Tutorials journey

You can start with any lesson you want, although is recommended to start from the beginning to understand how all the pieces fit together.

In each lesson we will provide starter_code that you can download. In this code you will see some TODO comments that indicates the parts of the code that you should modify.

At the end of each lesson is important to check your progress. We will provide you with the code and a diff that will help you to see all the changes that were made during the lesson. If you have any doubt during this tutorial, don't hesitate to contact as in Pexip Community.

And without further delay, let's start this journey!