Purpose The aim of this goal is to connect WebRTC streams from browsers to a Java backed. Ideally the server should be able to send something back. An echo of the browser video would be a first success story
Prerequisites
This project requires to be built alongside the following jitsi dependencies Since they are not provided as maven artifacts in maven repository, the projects must be cloned and built
- ice4j :https://github.com/jitsi/ice4j
ICE4j provides the STUN server functionality required for RTC communication - jitsi-universe : https://github.com/jitsi/jitsi-universe
Parent project required for libJitsi - libjitsi: https://github.com/jitsi/libjitsi
LibJitsi has the core functionality for WebRTC communication - jitsi-lgpl-dependencies: https://github.com/jitsi/jitsi-lgpl-dependencies
We will ned this for FFMPeg and other GPL libs. runtime dependency as we don't expect to compile against FFMpeg and codes - turnserver: https://github.com/jitsi/turnserver
Because we will eventually need a turn/stun server to handle the ICE negotiation
You (or I) can experiment with different turn/stun server implementations
Building the the app Also mvn compile package install the ice4j & libjitsi projects
You can put -DskipTests to prevent unit test during packaging
Running the app
- Run the TurnServerApplication as a different app - TODO: See why all these GC overhead errors happen
Via your favorite IDE, - Run the RtcApplication
- Open a browser to localhost:8080
- Initiate a call
- Rtc Application will receive and handle the media stream, a whole bunch of exceptions will pop up
- Fix (me or anyone else) the problems and get the video going