Closed clementperon closed 9 years ago
OpenWebRTC has a pure C API as well as a higher level JavaScript API provided by a "bridge". The use of the bridge is optional. Native apps, for example, use the C API. Here is a simplified architecture picture:
I've been thinking about that as an option, as well as GObject introspection language bindings. So you should be able to build just C/GObject, that with language bindings, that with the JavaScript bridge. And appropriate dependencies. I think this will be easier to do once we've moved the build system over to cerbero for the dependencies part.
The server executable that enables JavaScript bindings is owr-bridge. You'll build it as part of the build process, but you don't have to use it. I'm developing an Objective-C app and I just link with libopenwebrtc, which is a GLib-based pure C API that knows nothing about JavaScript.
@ikonst Yep, my issue is only at the build time, the configure script requires seed which requires webkitgtk-3.0 which requires gtk etc... and I'm trying to build a small embedded webrtc server :)
I've been talking with the other developers about:
It will happen. For the time being, just build the dependencies once (it'll take 1-2 hours) and produce a tarball for other developers to use. It will be a better use of your time than getting hung up on this :)
1-2 hours on a reasonably-specced machine but not on, say a Raspberry Pi. Even the new RPi 2 is going to be pretty slow. And you probably have to sort something out for a fast swap file system in order to link JavaScriptCore, maybe. You can probably set up some cross compilation environment but that's also going to need some work in the current build system. Cerbero is the place to figure this out and do it properly.
Having said all that, we have demoed on the RPi though I'm not sure how @pererikb built everything.
I think he's running it on Raspberry Pi, not building it :)
:-)
Cool project, is it open source ?
I'm just looking for a simple server code example.
@frozeus do you mean the Raspberry Pi part? It could be, but we haven't made it available as one of our support platforms yet. It's still a bit of a hack :) If you are interested, and willing to get your hands dirty, maybe we can provide you with a patch.
We don't have any example code for running OpenWebRTC on a server, we try to limit our focus to clients. But in theory there is nothing preventing you from running the code on (Linux) server. In the picture above the RPI is running as a client.
Yes i will be very interested. I think it could be a lovely solution for all raspberry pi owners, much more better than a simple rtp server with gstreamer :)
And by the way if someone is interested i successfully build with glib and gstreamer. You just need to remove dirs 'binding, bridge, test' from the configure.ac and Makefile.am and remove some PKG_config_check in configure.ac.
Cool, we will provide some patches soon, we just need to clean them up a bit first :)
Would be great if you would document your work on the Wiki: https://github.com/EricssonResearch/openwebrtc/wiki
Thanks
@frozeus those are exactly the changes needed, yes. Now if you just make them conditional based on some --disable-bridge configure switch, this should be ready to merge :) Feel to ask here if you need any help.
Thanks for you support, i'm a newbie with autools/autoconf but i will try.
Also as i have a hardware h264/opus encoder (without pulse/v4l2 interface) i'm editing owr_local_media_source to support appsrc and push data in this source. Not sure there is a generic way to do this. As soon as it's working i will try to push a patch if you think it can be usefull.
Cool, please do!
I think @ford-prefect has been doing some work to handle compressed media sources but I'm not sure how much he's managed to do. Maybe that work is useful to you and we can discuss how to continue with it if you're interested. :smile:
I've left notes on my works so far at https://github.com/EricssonResearch/openwebrtc/issues/172#issuecomment-74239108
On 12 February 2015 at 22:17, Robert Swain notifications@github.com wrote:
I think @ford-prefect https://github.com/ford-prefect has been doing some work to handle compressed media sources but I'm not sure how much he's managed to do. Maybe that work is useful to you and we can discuss how to continue with it if you're interested. [image: :smile:]
— Reply to this email directly or view it on GitHub https://github.com/EricssonResearch/openwebrtc/issues/159#issuecomment-74105643 .
This is done. Closing.
Did we split the openwebrtc recipe into openwebrtc and openwebrtc-bridge?
If we do this, we can eliminate the dependency of openwebrtc on Android/iOS on the host openwebrtc build, and so eliminate the annoying "You need to build openwebrtc for the host..." message (as long as you're just building the openwebrtc recipe -- not the whole package, since that'll probably still require the bridge).
No, but we can make variants in the openwebrtc.recipe so that if you do not want the bridge and its dependencies, you can disable them.
Hi,
Is there a way to build only the API of OpenWebRTC without Javascript binding and extra stuff ?
Thanks