Live data from Hacker News

Janus WebRTC Server

janus.conf.meetecho.com

61–65 of 65 posts

Re: Janus WebRTC Server

#61
post #57
post #40

Earlier quoted context omitted.

At that point why wouldn't I just use libwebrtc? The reason to get an off-the-shelf SFU is because all the hard work is in handling all the codec-specific workarounds, being able to handle keyframe request sharing, responding to RTCP bandwidth feedback to do SVC layer switching, and now doing all of this while most of the state is encrypted due to insertable streams... this is all hard stuff that people keep learning…

If you want low-level video routing functionality without the added layer of room-like logic, i.e. something that handles WebRTC and then tells you "now, here is your incoming video flow, do whatever you want with it", you might want to check out Kurento. However our WebRTC stack has the minimum of congestion control features (plain REMB, no simulcast), and it doesn't implement SVC or newer toys like insertable strea…

Yeah: the whole reason I want to use someone's off the shelf solution is because I want to have all the new hard stuff like SVC and insertable streams both done for me and maintained by someone other than me ;P.

Re: Janus WebRTC Server

#62
post #60

Earlier quoted context omitted.

Not sure what you were expecting: at the very foundation of WebRTC is SDP, which implies negotiation, and with endpoints supporting potentially different codecs, negotiation is very much important whether you like it or not. That's why the VideoRoom plugin does need to take that into account. I won't get into the discussion of how complex a fork is to maintain: I always hope people contribute back what they add (assu…

> Not sure what you were expecting: at the very foundation of WebRTC is SDP, which implies negotiation, and with endpoints supporting potentially different codecs, negotiation is very much important whether you like it or not. I would expect the logic for negotiating streams to be an unrelated layer of abstraction to the concept of room management? That the code and work 100% of video apps want--SVC, end to end encry…

Then I think what you can use are the Lua or Duktape plugins, which were indeed written to allow people to write their own logic without having to worry about C or forks: even if the C code of the plugins is updated, your code is in a script that is loaded dynamically and is external to them.

If you forget about the videoroom.lua code and do something from scratch, you're free to handle the logic however you want: handling media is as simple as saying "send incoming media from A to B and C", and media-wise that's all you need to do in the script itself to have the C portion do the heavy lifting for you. You still need to take care of SDP and signalling, but you can do that on your own terms. I still have a plan to implement yet another plugin that delegates the logic to a remote node using something RPC-based, but unfortunately I didn't have time for that yet.

Re: Janus WebRTC Server

#63

Earlier quoted context omitted.

I do WebRTC on Edge/IoT devices (mostly MIPS/ARM devices running Linux). Customers are mostly teleoperations (robotics) and security cameras. Most customers run an MCU/SFU on a server, but then just a WebRTC client on the device. We do simulcast on the device to an SFU, and then distribute from there. Happy to answer questions here or directly. I don't want to be disrespectful and sell other stuff on this thread thou…

Are there resources you might recommend on using WebRTC for the teleoperations use case?

BTW, here's the best I found so far (in terms of how simple it makes everything):

https://pypi.org/project/rtcbot/

Re: Janus WebRTC Server

#64
post #58
post #48

Why use C over Rust or Golang? It sounds like a security disaster waiting to happen?

Yeah please, let the author know your preferred programming language so he'll rewrite the whole software.

I wasn’t aware that the software had a history behind it, my bad.

Re: Janus WebRTC Server

#65
post #10

Having to look into this professionally for local/remote streaming solutions and came across this paper in the last couple of weeks which has been a huge help to understanding my use case: http://lup.lub.lu.se/luur/download?func=downloadFile&recordO... One of the most useful/interesting use cases to me is the ability to have a PTP encrypted stream without having to go through weird IoT PKI hoops. Ninja edit: If anyon…

If you are interested in cross-compiling the WebRTC implementation so it runs directly from within edge devices, Janus might be one of the best options out there. Kurento offers a variety of features apart from WebRTC, but it is more intended to be cloud-deployed as an independent media server, you could think of it as a "proxy/bridge" that distributes media between producers (like RTSP cameras) and consumers (WebRTC…

The Google's WebRTC Native is a good option too. It's basically a piece of the Chrome browser.
Post reply on HN