UNDER CONSTRUCTION
This is a short collection of notes collected on attempts to run WebRTC native client implementation in Linux without a browser (This has not been successful so far).
These are some tests related to OpenWebRTC.
Packages for this tutorial have been compiled on a Linux Development Machine (xUbuntu 14.0, 64 bit architecture) and on a Linux-based mini pc box (Asus EEEPC running Ubuntu server 14.04, 32-bit version).
IMPORTANT NOTE: this steps can be skipped by using directly the binaries attached to this project (binaries
folder).
On the development machine, clone repositories:
git clone [email protected]:EricssonResearch/cerbero.git
git clone [email protected]:EricssonResearch/openwebrtc.git
Create some folder to host openwebrtc after installation phase.
The target folder can be changed modifying cerbero/config/linux.cbc
.
sudo mkdir -p /opt/openwebrtc-0.3
sudo chown -R $UID /opt/openwebrtc-0.3
Run the following commands to build.
Note: this is a quite long process and installs a lot of packages on your development machine.
cd cerbero \
&& ./cerbero-uninstalled -c config/linux.cbc fetch-package --full-reset --reset-rdeps openwebrtc \
&& ./cerbero-uninstalled -c config/linux.cbc bootstrap \
&& ./cerbero-uninstalled -c config/linux.cbc package -f openwebrtc
This will build for your own architecture.
It seems it should be possible to build for a different architecture by changing in the commands above the cerbero config file (config/linux.cbc
). I guess you can for example use cross-lin-x86.cbc
, cross-lin-arm.cbc
, etc., but so far I only tested same-platform compilation on X64 and X86 architectures.
At the end of the process, a set of debian packages will be available in the cerbero folder.
Binaries can be installed on any debian based system matching your architecture. Unless you have built them on your own, you can find pre-built binaries in the binaries folder of this tutorial.
In order to install packages just run:
sudo dpkg -i *.deb
After installation is successful, openwebrtc is installed in your system.
A test server is available in the web folder of EricssonResearch/openwebrtc-examples project. Just clone the repository and run:
cd openwebrtc-examples/web
nodejs channel_server.js 8080
You will need nodeJS on your system (sudo aptitude install nodejs
).
If you open any browser on port 8080 you should be able to start or join a webrtc session from any browser.
Not successfull, yet.
These are some tests related to vmolsa/webrtc-native.
Build prerequisites
sudo apt-get install npm
sudo apt-get install --yes build-essential python2.7 git pkg-config libnss3-dev libasound2-dev libpulse-dev libjpeg62-dev libxv-dev libgtk2.0-dev libexpat1-dev default-jdk libxtst-dev libxss-dev libpci-dev libgconf2-dev libgnome-keyring-dev libudev-dev
https://github.com/vmolsa/webrtc-native
cd webrtc-native
npm install
- http://www.linux-projects.org/modules/mydownloads/viewcat.php?cid=10
- http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=16#example16
- http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=14
- OpenWebRTC
- OpenWebRTC on github
- OpenWebRTC examples
- Cerbero: the "new" official build system with build instructions and binary releases
- Building Realtime Web Applications with WebRTC and Python: interesting video with WebRTC basics and server-side implementation example - made with tornado.
- [This stackoverflow post] lists a few possible alternative native implementations of interest:
- a large page of WebRTC-related demos and resources - code here.
- https://github.com/superdump/cerbero/tree/pygi/cerbero
- U4VL http://www.linux-projects.org/modules/news/
- https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=99283&p=693103#p693103
- https://github.com/js-platform/node-webrtc
- https://github.com/vmolsa/webrtc-native
- http://sourcey.com/webrtc-native-to-browser-video-streaming-example/
- https://webrtchacks.com/own-phoneco-with-webrtc/
- http://stackoverflow.com/questions/23449666/how-to-stream-audio-from-browser-to-webrtc-native-c-application
- http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=16#example16