What is OpenVidu?


OpenVidu is a platform to facilitate the addition of video calls in your web or mobile application. It provides a complete stack of technologies very easy to integrate in your application. Our main goal is to allow developers to add real-time communications to their apps very fast and with low impact in their code.

WebRTC videoconferences

One-to-One, One-to-Many, Many-to-Many. Any combination you can think of is possible with OpenVidu

Open source

OpenVidu is an OpenSource project licensed under Apache License v2. Use it for free

Multiplatform

Chrome, Firefox, Safari, Opera, Android, iOS, desktop apps. All compatible with each other

Easy to use

OpenVidu offers ready-to-use components that you can simply paste in your code to quickly get your videocalls up and running. Or if you want complete freedom when designing your videocalls, our super simple API will make it fun and quick but at the same time very customizable and powerful

Easy to deploy

Developing your app is just the beginning. And of course we know that the go-to-production process can sometimes be pretty annoying. OpenVidu makes this a seamless process by supporting the deployment in the most popular cloud provider in a few clicks. Or if you prefer, we have a very short step-by-step guide on how to successfully deploy OpenVidu on Ubuntu

Tutorials/Demos available

As developers we believe that the best way to engage other colleagues in our platform is providing lots of working examples and guides that can serve as a starting point or a fun way to learn how to take advantage of OpenVidu full potential

Keep your videoconferences private

WebRTC encryption, our server API and our client role-based system guarantee all your calls will be completely private

Compatible with lots of frontend technologies

JavaScript, TypeScript, Angular, React, Ionic... Just choose your preferred language and framework

Compatible with any backend technology

OpenVidu offers out of the box Java and Node clients for controlling your videocalls from your server, but it also exposes a REST API to allow any backend technology to be used. We don't want to limit any developer!

Limit client capabilities with predefined roles

Decide which user is allowed to subscribe, publish or moderate video streams with predefined roles. Securing your videocalls has never been so easy!

Message broadcasting

You can implement a chat within just a few lines of code with OpenVidu. Any user to user text-based communication your app may need can be implemented very easily

Recording

Record your videocalls with complete freedom: OpenVidu provides predefined layouts, but you can use your own custom layouts to accomplish any kind of result

Screen sharing

OpenVidu allows your clients to share their screens

Audio and video filters

OpenVidu is the only WebRTC technology that allows you to apply real-time audio and video filters. Detecting bar codes, settting a chroma key background or amplifying your clients voices are only just a few examples of what you can achieve with OpenVidu filters. And all of this perfectly integrated in OpenVidu simple high-level API

Supported plans and professional support

We offer OpenVidu Pro for those companies interested in a more advanced production setup, focused on improved monitoring, scalability and fault tolerance. And OpenVidu team is opened to providing professional support for any project related to the platform. Contact us now!

Some use cases


Some interesting use cases you can implement with OpenVidu:

  • An integrated 1-to-1 video-call center to attend your customers face to face
  • A videoclassroom platform where one or more teachers publish their webcams or desktops and many students receive them
  • Audio-only rooms where users can also interact through a chat
  • A conference service that allows the presenter to apply audio or video filters in real-time and record the lecture in a video file
  • A security platform where you can receive video from security cameras/webcams. You could even receive a notification when some movement is detected in a region of the video
  • An application to receive video from drones equipped with a camera (RTSP support coming soon)

The possibilities are endless. You can check our Demos to get an idea of what you can do with OpenVidu. Here some cool pictures of them:


OpenVidu Architecture

OpenVidu is divided into two parts:

  • OpenVidu Browser: it is a library to use in your client side (available for JavaScript and TypeScript). It allows you to create video-calls, join users to them, send and receive video and audio, etc... All the actions available with OpenVidu are managed via OpenVidu Browser.
  • OpenVidu Server: it is an application that handles the server-side stuff. It receives the operations from OpenVidu Browser and do whatever is necessary to establish and manage your video-calls. You will never have to explicitly use it: just to run it and know its IP address.

Get started

These are the recommended steps for getting started with OpenVidu:

  1. The best way to get your first app working in a few minutes is following our OpenVidu Hello World Tutorial.

  2. After that, you can try any of our Client-Side-Only tutorials, or maybe go straight to step 3 if you think that you already handle OpenVidu reasonably well.

  3. Try now any of our Client-Side + Server-Side tutorials, where you can see how a complete web application works with OpenVidu. Choose your preferred framework, since all 4 applications are exactly the same regarding their look and functionality.

  4. Finally you can deploy your first app and see it working in the real world. You can follow our tutorial, where you can deploy our Demos in your own Amazon machine in a few minutes (Deploying OpenVidu Demos on AWS). Then you can deploy your own app following these steps (Deploying OpenVidu Server and Deploying your app on AWS).


How does OpenVidu work?

WebRTC is the ultimate responsible for all media transmission at the very heart of OpenVidu. WebRTC is a modern, cross-platform framework that democratizes media transmission over the Internet. It is promoted by Google, Mozilla, Opera and others.

Kurento is the WebRTC framework on which OpenVidu is built. Openvidu was forked from KurentoRoom project.

What are the differences between Kurento and OpenVidu?

OpenVidu wraps and hides all the low-level operations. The main goal we pursue is to provide a simple, effective, easy-to-use API so you can forget about WebRTC, ICE candidates and media server tricky stuff. We internally use Kurento to generate, connect, modify and destroy media-pipelines, but OpenVidu simplifies as far as possible the process, focusing on the use-case of video-call sessions (one-to-one, one-to-many, many-to-many, users with different roles).

Ultimately, developers can create video-calls with just a few lines of code, all from their client-side.


Acknowledgments

OpenVidu has been supported under Project LERNIM (RTC-2016-4674-7), co-funded by the Ministry of Economy, Finance and Competitiveness of Spain, as well as by the European Regional Development Fund, whose main goal is to promote technological development, innovation and high-quality research.