OpenVidu v3


June, 2024

We are excited to introduce OpenVidu v3. This is a major milestone for the project and represents many months of hard work by the entire OpenVidu team. It involves a complete overhaul of OpenVidu's internal technologies, architecture and deployment. All in order to offer the best real-time media solution out there. Let's take a quick look at everything you need to know about OpenVidu v3.




What are the reasons for this major release? 🔗

At OpenVidu we are always striving to offer the latest technology available to deliver the best results in your real-time applications. We developed Kurento more than a decade ago as a powerful SFU, and built OpenVidu on top of it to provide an easy-to-use framework to develop videoconferencing applications. As Kurento grew older and some limitations became apparent (mainly related to performance), we decided to evolve OpenVidu to support mediasoup instead of Kurento as its internal media server.

And now it is time to take the next big step: we are now integrating LiveKit into our stack. LiveKit is a cutting-edge WebRTC stack that is open source and certainly the most popular choice in the community in recent times.



What has changed? 🔗

Being now based on LiveKit's fantastic stack, OpenVidu v3 incorporates the latest innovations and optimizations in real-time media. There are so many new features and improvements that we have to summarize them in different categories:

Media optmizations 🔗

These low-level features will take your application perfomance to the next level:

New features 🔗

  • End-To-End Encryption (E2EE) for the ultimate secure communication.
  • Fine-tuned roles for participants.
  • More SDKs for your application client: Android, iOS, Flutter, Unity, React Components.
  • Improved server-side media filters architecture: it is now decoupled, making it easier to develop custom filters and to scale them.

Deployment 🔗

  • Improved High Availability deployments: now all required services are included. External services are not needed anymore.
  • Improved architecture, making Master Nodes much more scalable. Now one Master Node can handle many more participants.
  • Lighter observability stack. We have migrated from Elastic to Prometheus.
  • Better connectivity for participants behind firewalls, thanks to TURN over TLS being available by default.

Better deal for your money 🔗

Better developer experience 🔗

  • OpenVidu PRO evaluation mode: OpenVidu PRO now includes a special execution mode that can run without a license (limiting the duration of sessions and number of participants). It is the perfect way to develop and test your OpenVidu PRO application for free.
  • OpenVidu v3 offers a local deployment with an easy way to test mobile devices inside your network. You can forget about these instructions: now there is no need to install SSL certificates or configure proxies to locally develop your app.


These and many other features will make your real-time application more efficient, performant, reliable, secure and future-proof. You can read more about what OpenVidu v3 has to offer in our new site.



Updating from OpenVidu v2 to OpenVidu v3 🔗

Although this is a major release that involves a complete overhaul of OpenVidu's internal technologies, all OpenVidu v2 Pro/Enterprise users will have available a compatibility module that hopefully will make the transition as seamless as possible, minimizing code changes.

First of all, carefully review the list of breaking changes to make sure there is nothing important that may prevent you from upgrading.

Then, follow these steps to migrate an application from OpenVidu v2 to OpenVidu v3:

  1. Deploy OpenVidu v3.
  2. Update your application.
  3. Point your server application to your new OpenVidu v3 deployment.

See below every step in detail.

If you encounter any problems when running your OpenVidu v2 app against an OpenVidu v3 deployment, write us to pro.support.v2apps@openvidu.io and we will be happy to help you.

1. Deploy OpenVidu v3 🔗

An OpenVidu v2 deployment is NOT directly upgradable to an OpenVidu v3 deployment. You will have to deploy OpenVidu v3 completely from scratch. Just follow the official instructions, making sure to enable compatibility with OpenVidu v2. You do this by enabling v2compatibility module while installing OpenVidu v3.

2. Update your application 🔗

For applications using openvidu-browser.js library 🔗

This includes any client application built with web technologies (JavaScript, Angular, Vue, React, Ionic and Electron):

If your application has a package.json:

  • Replace your openvidu-browser:2.X.X dependency with openvidu-browser-v2compatibility:3.X.X in your package.json. You can find the latest version in the releases table below.

If your application imports the openvidu-browser.js bundle library directly:

  • Replace file openvidu-browser-2.X.X.js with openvidu-browser-v2compatibility-3.X.X.js. You can find the latest version in the releases table below.

For application using the OpenVidu Web Component 🔗

This includes any client application built with the OpenVidu Web Component.

  • Replace both web component files: openvidu-webcomponent-2.X.X.js to openvidu-webcomponent-v2compatibility-3.X.X.js and openvidu-webcomponent-2.X.X.css to openvidu-webcomponent-v2compatibility-3.X.X.css. You can find the latest version in the releases table below.

For applications using OpenVidu Components (Angular) 🔗

  • Replace your openvidu-angular:2.X.X dependency with openvidu-angular-v2compatibility:3.X.X in your package.json
The following client technologies are not currently compatible with OpenVidu v3. We are currently working in providing a compatibility layer for them:

  • React Native
  • Android native
  • iOS native

For applications using server SDKs [openvidu-java-client, openvidu-node-client] 🔗

This is actually not mandatory, but recommended for consistency and possible future updates.

  • If your application has a Java backend and you are using openvidu-java-client, replace in your pom.xml openvidu-java-client:2.X.X for openvidu-java-client-v2compatibility:3.X.X. You can find the latest version in the releases table below.
  • If your application has a Node backend and you are using openvidu-node-client, replace in your package.json openvidu-node-client:2.X.X for openvidu-node-client-v2compatibility:3.X.X. You can find the latest version in the releases table below.

3. Point your server application to your new OpenVidu v3 deployment 🔗

Make sure that your server application is configured to connect to your new OpenVidu v3 deployment. Depending on the deployment type you have chosen, you will have to update OpenVidu Server URL and OpenVidu Secret in your server application accordingly.

After these steps, your application should be up and running against OpenVidu v3.

If you encounter any problems when running your OpenVidu v2 app against an OpenVidu v3 deployment, write us to pro.support.v2apps@openvidu.io and we will be happy to help you.



Breaking changes 🔗

Although most OpenVidu v2 applications should work out of the box with OpenVidu v3, there are some breaking changes that developers should be aware of before starting the upgrade process:

General breaking changes 🔗

  • IP Cameras are not supported (for now).
  • Speech To Text is not supported (for now).
  • Server-side voice and video filters are not supported out-of-the-box.
  • Autoscaling is not available for On-Premises deployments. It is currently available for AWS deployments.
  • In Connection objects the subscribers array will always be empty. This applies to the subscribers property in the JSON response of the REST API methods, the Connection#getSubscribers method of openvidu-java-client, and the Connection.subscribers property of openvidu-node-client.
  • As there are no official OpenVidu SDKs for native Android and iOS, applications have to be updated to use the LiveKit SDKs. We are currently working on migration guides.

Breaking changes in openvidu-browser 🔗

Breaking changes in recording 🔗

You can ignore these points if you are not making use of the Recording feature.

Breaking changes in Webhook events 🔗

You can ignore these points if you are not listening to Webhook events.

Breaking changes in REST API 🔗

The affected REST API methods are related to the cluster administration. Functional REST API methods for managing Sessions, Connections and Recordings remain unchanged.

Breaking changes in operations 🔗

  • The configuration is different: configuration is now split different files and config parameters have changed.
  • You need a brand new deployment. A direct update of an OpenVidu v2 deployment to an OpenVidu v3 deployment is not possible.


If you encounter any problems when running your OpenVidu v2 app against an OpenVidu v3 deployment, write us to pro.support.v2apps@openvidu.io and we will be happy to help you.



Roadmap for the future 🔗

The OpenVidu team will spend the near future making sure OpenVidu v2 applications are working fine with OpenVidu v3 (remember that you can write us at pro.support.v2apps@openvidu.io if you need custom support).

We will also address some limitations for users coming from OpenVidu v2: we will incorporate in OpenVidu v3 Speech To Text and IP cameras support as soon as possible.

As mid-term goals, will be working in supporting a mesh distribution in the media servers, which will allow for massive Rooms in your own infrastructure.



Artifacts for v2 apps compatible with OpenVidu v3 🔗

The below artifacts allow making your OpenVidu v2 application compatible whith an OpenVidu v3 deployment. Read the instructions to update your app and make it work against an OpenVidu v3 deployment.

Release 3.0.0 🔗

Artifact Type Compatible Version Link Info
openvidu-browser-v2compatibility NPM package 3.0.0 NPM
JS file 3.0.0 Download
openvidu-angular-v2compatibility NPM package 3.0.0 NPM
openvidu-webcomponent-v2compatibility ZIP 3.0.0 Download
openvidu-java-client-v2compatibility MVN package 3.0.0 MVN Repository
openvidu-node-client-v2compatibility NPM package 3.0.0 NPM

Release 3.0.0-beta3 🔗

Artifact Type Compatible Version Link Info
openvidu-browser-v2compatibility NPM package 3.0.0-beta3 NPM
JS file 3.0.0-beta3 Download
openvidu-angular-v2compatibility NPM package 3.0.0-beta3 NPM
openvidu-webcomponent-v2compatibility ZIP 3.0.0-beta3 Download
openvidu-java-client-v2compatibility MVN package 3.0.0-beta3 MVN Repository
openvidu-node-client-v2compatibility NPM package 3.0.0-beta3 NPM

Release 3.0.0-beta2 🔗

Artifact Type Compatible Version Link Info
openvidu-browser-v2compatibility NPM package 3.0.0-beta2 NPM
JS file 3.0.0-beta2 Download
openvidu-angular-v2compatibility NPM package 3.0.0-beta2 NPM
openvidu-webcomponent-v2compatibility ZIP 3.0.0-beta2 Download
openvidu-java-client-v2compatibility MVN package 3.0.0-beta2 MVN Repository
openvidu-node-client-v2compatibility NPM package 3.0.0-beta2 NPM

Release 3.0.0-beta1 🔗

Artifact Type Compatible Version Link Info
openvidu-browser-v2compatibility NPM package 3.0.0-beta1 NPM
JS file 3.0.0-beta1 Download
openvidu-angular-v2compatibility NPM package 3.0.0-beta1 NPM
openvidu-webcomponent-v2compatibility ZIP 3.0.0-beta1 Download
openvidu-java-client-v2compatibility MVN package 3.0.0-beta1 MVN Repository
openvidu-node-client-v2compatibility NPM package 3.0.0-beta1 NPM