OpenVidu Platform main repository
 
 
 
 
 
 
Go to file
pabloFuente e638443cef Session events API 2017-03-29 14:57:45 +02:00
openvidu-browser Session events API 2017-03-29 14:57:45 +02:00
openvidu-client Project name refactoring and TypeScript port of browser client 2016-10-15 00:11:17 +02:00
openvidu-demo Deprecated 'getUserMedia' fixed. webrtc-adapter from 2.0.4 to 3.2.0 2017-03-13 18:55:50 +01:00
openvidu-ng-testapp Framerate stats 2017-03-23 13:15:45 +01:00
openvidu-server Join session with audio and/or video off. Toggle both during session 2017-03-09 19:46:07 +01:00
openvidu-test Deprecated 'getUserMedia' fixed. webrtc-adapter from 2.0.4 to 3.2.0 2017-03-13 18:55:50 +01:00
openvidu-testapp CSS cleanup and minor bug fixes in openvidu-testapp 2016-10-16 23:51:41 +02:00
.gitignore Update .gitignore 2016-10-11 10:08:32 +02:00
LICENSE Initial commit 2016-10-10 15:31:27 +02:00
NOTICE Initial OpenVidu platform commit 2016-10-11 09:53:32 +02:00
README.md Resolution and framrate selection. Statistics are shwon 2017-03-17 19:22:02 +01:00
pom.xml Project name refactoring and TypeScript port of browser client 2016-10-15 00:11:17 +02:00

README.md

OpenVidu

OpenVidu is a platform for adding group video calls in your web or mobile application. It is based on Kurento, the WebRTC platform for multimedia applications.

OpenVidu and Kurento are licensed under Apache License v2.

OpenVidu was forked from KurentoRoom project.

Developing OpenVidu

First of all, you will need these packages:

sudo apt-get update

Dependecy Command
node sudo apt-get install -g nodejs
npm sudo apt-get install -g npm
maven sudo apt-get install -g maven
angular-cli sudo npm install -g @angular/cli
typescript sudo npm install -g typescript

OpenVidu structure

OpenVidu is composed by several modules which require some interconnections in order to have an easy and effortless development.

Here's a simple summary about the structure of OpenVidu:

OpenVidu structure

  • Kurento Media Server: External module which provides the low-level functionalities related to the media transmission. How to install and run KMS in your development machine:

Ubuntu 14.04 LTS Trusty (64 bits)

echo "deb http://ubuntu.kurento.org trusty kms6" | sudo tee /etc/apt/sources.list.d/kurento.list
wget -O - http://ubuntu.kurento.org/kurento.gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install kurento-media-server-6.0

Ubuntu 16.04 LTS Xenial (64 bits)

echo "deb http://ubuntu.kurento.org xenial kms6" | sudo tee /etc/apt/sources.list.d/kurento.list
wget -O - http://ubuntu.kurento.org/kurento.gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install kurento-media-server-6.0

Start and stop the service

sudo service kurento-media-server-6.0 start
sudo service kurento-media-server-6.0 stop

Here you can check Kurento's official documentation.

  • openvidu-browser: Javascript library used to connect the application with openvidu-server
  • kurento-utils-js: Javascript set of reusable components that have been found useful during the development of WebRTC applications with Kurento
  • openvidu-server: Java API which provides the connection with Kurento Media Server
  • app: The application that makes use of OpenVidu. In this repo, openvidu-ng-testapp.

Setup for development

After installing Kurento Media Server and forking or downloading the repo, these are the necessary steps to start developing openvidu-ng-testapp:

sudo service kurento-media-server-6.0 start

/openvidu/openvidu-browser/src/main/resources

npm install
sudo npm link

/openvidu/openvidu-ng-testapp

npm install
sudo npm link openvidu-browser
ng serve

/openvidu

mvn install -DskipTests=true

/openvidu/openvidu-server

mvn compile exec:java

(or if you prefer you can just run the Java application in your favourite IDE)


At these point, you can start modifying openvidu-ng-testapp, openvidu-browser or openvidu-server.

  • openvidu-ng-testapp: the previous "ng serve" command will take care of refreshing the browser's page whenever any change takes place.
  • openvidu-browser: after modifying any typescript file, you will need to run the following command to update your changes (typescript package is necessary):

/openvidu/openvidu-browser/src/main/resources/ts

tsc
  • openvidu-server: after modifying any file, there is no other alternative but to re-launch the java application if you want to update your changes.

/openvidu/openvidu-server

mvn compile exec:java

(or re-launch the Java application in your IDE)

Setup for advanced development (publishing in local server)

You can also use different machines in the same network to build a more advanced development environment, so you can test the application in different devices at the same time. It's very similar to the process outlined above:

You will need a server for the built app (if you don't have any, we recommend http-server): npm install -g http-server

Then...

sudo service kurento-media-server-6.0 start

/openvidu/openvidu-browser/src/main/resources

npm install
sudo npm link

/openvidu/openvidu-ng-testapp

npm install
sudo npm link openvidu-browser

/openvidu

mvn install -DskipTests=true

/openvidu/openvidu-server

mvn compile exec:java

(or if you prefer you can just run the Java application in your favourite IDE)

The following commands will be the ones which you should relaunch to update your changes: /openvidu/openvidu-ng-testapp

ng build
cd dist
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem  [ACCEPT ALL FIELDS]
http-server -S

These commands build the Angular project, generate a self-signed certificate (which unfortunately is a mandatory requirement for http-server SSL) and serves the content in http-server.

Finally, to launch the app connect to https://127.0.0.1:8080 in the machine running the http-server and to https://[HOST]:8080 in other devices of the same network ([HOST] the IP of the machine running the http-server).

Don't forget to accept the certificate! (accepting https://[HOST]:8443/room may also be necessary)