4 ms·
Does https://webrtc.googlesource.com/src https://webrtc.googlesource.com/src not count?
by brian-armstrong 8y ago
Does https://webrtc.googlesource.com/src https://webrtc.googlesource.com/src not count?
- Karrot_Kream 8y agoRight, so it's a chromium C++ repo that you need to create bindings for to interact with. I have no doubt that an organization like Discord has the engineering resources to either write their own bindings to WebRTC or to roll their own implementation of the components, but if I'm a an individual developer that wants to interact with WebRTC without a browser, then it's pretty difficult. One common desired use case is using WebRTC for p2p torrent communications. Right now the best way to do this is in browser, or to use an Electron app that can bridge the WebRTC clients with the standard desktop torrent clients.
- brian-armstrong 8y agoAh that makes sense. I have seen forks that de-chromium it some that look pretty reasonable. Most of it doesn't depend on anything chromium, just happens to use its build system (for better or worse). But I believe the fork switches it to CMake
- jgrowl 8y agoThere's nothing tied specifically to the browser, but it is written in C++. It seems like the discord folks just built a layer on top of it. It's been a while since I played around with it, but you just have to build the peerconnection library. This guide seems pretty close to what I remember having to do: https://webrtc.org/native-code/development/ https://webrtc.org/native-code/development/ It still leaves you writing in c++, but it lets you build a self contained server without any browser stuff. There also were java bindings which is what I used when I was experimenting with it. You just have to build your .so and .jar files. EDIT: Here's some scala code that I wrote that uses the native bindings. (Please forgive the messy test project that I have abandoned). https://github.com/jgrowl/livehq/blob/master/media/src/main/scala/tv/camfire/media/webrtc/WebRtcHelper.scala https://github.com/jgrowl/livehq/blob/master/media/src/main/...
- Orphis 8y agoThere are Java Android and ObjC iOS bindings available in the repository. Not sure how those would work in a regular JRE or ObjC macOS environment, but it should be alright (but then, you might as well use the C++ API directly on macOS, just saying).