I am interested in designing a WebRTC/libjingle that uses DataChannels but does not use the audio and video capability. The audio and video capability adds a lot of dependencies that are large and difficult to cross compile. Is there a minimal subset of the WebRTC build that will separate out just the code necessary for initializing DTLS DataChannels with all the sdp/stun/turn etc while remaining compatible with the browser implementations?
2 Answers
AFAIK there is not such minimal, scaled-down, data-channel only version of libjingle (or OpenWebRTC for that matter). IMHO such a version looks just too project-specific and not general enough for the libjingle developers to be interested in it and maintain it.
The audio/video capabilites do add quite a lot of dependencies. However cross-compiling them for android or iOS is relatively easy. After all one just needs to compile them. There is no need for them to actually work. If one just uses the data channel then the audio/video capabilities will never even be initialized.
Although the audio/video capabilities cannot be completely compiled-out, they can be "curbed". If you look at the the webrtc-source-code/build/common.gypi you will find a variable called build_vp9
that is 1
by default. If you set it to 0
then some video related dependencies will be remove. In the .gyp
and .gypi
files there are a lot of flags and I am sure that if you tweak them then you'll be able to remove even more unnecessary dependencies.
If you're interested in building webrtc for Raspberry PI or other embedded platforms not based on Android or iOS I would suggest you use OpenWebRTC because it has much better support for these environments and is somewhat easier to cross-compile (you wouldn't have to deal with gyp and ninja).

- 4,307
- 24
- 31
-
OpenWebRTC looks interesting. I have been fighting with the google stuff for a few days without much success. I am trying to target minimal devices that have limited ram and no video/audio at all. This may be somewhat specialized but as time goes on I think it will become more common as WebRTC is one of the best ways to communicate between a browser and device when the standard http/websocket is not sufficient. – John Apr 27 '15 at 21:30
This is what you need http://www.meshcommander.com/webrtc
A minimal datachannel WebRTC implementation in c, needs openssl for dtls.
pros
- extremely lite.
- straight forward cross compilation
cons
- no ice trickle support as of now

- 31
- 1
- 5
-
I have tried using this library and have found it to be extremely buggy and unreliable. – John Jul 26 '16 at 20:06