Live data from Hacker News

Go Donut: Convert Live Streaming to WebRTC

github.com

11–20 of 27 posts

Re: Go Donut: Convert Live Streaming to WebRTC

#11

My issue with this (and WebRTC in general) is that most residential users (at least in the US, probably many other countries) are behind some type of symmetrical NAT or CGNAT, often without the ability to forward ports or have working NAT traversal, which makes WebRTC unusable without a TURN server as it relies on communicating between peers via DTLS over UDP. The problem with needing a TURN server is that you practi…

You shouldn’t need TURN for Client/Server like Donut. The Donut server runs on a world addressable host. So luckily no TURN woes here!

In practice ~20% of users need TURN https://medium.com/@fippo/what-kind-of-turn-server-is-being-...

Re: Go Donut: Convert Live Streaming to WebRTC

#14
Another library that I would recommend people look into for live streaming to WebRTC, as an alternative to Pion used in this project, is Janus WebRTC Server. I use it for ingesting RTP streams I generate from usb webcams and then playing it with very low latency in the browser. It even has a feature where you can stream multiple streams simultaneously. It also has a simple http api for adding, updating, and removing streams on demand.

Here is the library's streaming demo:

https://janus.conf.meetecho.com/demos/streaming.html

Re: Go Donut: Convert Live Streaming to WebRTC

#15

My issue with this (and WebRTC in general) is that most residential users (at least in the US, probably many other countries) are behind some type of symmetrical NAT or CGNAT, often without the ability to forward ports or have working NAT traversal, which makes WebRTC unusable without a TURN server as it relies on communicating between peers via DTLS over UDP. The problem with needing a TURN server is that you practi…

You shouldn’t need TURN for Client/Server like Donut. The Donut server runs on a world addressable host. So luckily no TURN woes here! In practice ~20% of users need TURN https://medium.com/@fippo/what-kind-of-turn-server-is-being-...

Donut still uses WebRTC though, which like I said, I still need TURN for and I can prove it. I still have a really hard time believing that only 20% of "users" (what users where? everyone in the world?) need it, as like I said, almost every residential US user needs it at the least.

Re: Go Donut: Convert Live Streaming to WebRTC

#16

Earlier quoted context omitted.

You shouldn’t need TURN for Client/Server like Donut. The Donut server runs on a world addressable host. So luckily no TURN woes here! In practice ~20% of users need TURN https://medium.com/@fippo/what-kind-of-turn-server-is-being-...

Donut still uses WebRTC though, which like I said, I still need TURN for and I can prove it. I still have a really hard time believing that only 20% of "users" (what users where? everyone in the world?) need it, as like I said, almost every residential US user needs it at the least.

If the server is not behind NAT, the only reason you might require TURN is a restrictive egress firewall blocking UDP to arbitrary ports.

It'll be a hostprflx connection pair. Though if the host can be reached that way, I'm unsure what the benefit of WebRTC is.

Re: Go Donut: Convert Live Streaming to WebRTC

#18
post #3

What's the purpose of this? Mostly a tech-demo, or primarily to plug a p2p layer onto existing servers?

Back when I was doing live-streaming the primary reason I wanted it was to eliminate (or reduce) the need for a CDN to deliver chunks to the end-user viewers. I fantasized about a protocol adapter like this that would act has the "host" peer that would stream the video from e.g. RTMP source, which would then translate to WebRTC for all the viewer peers in a P2P fashion.

I don't know if this actually works like that, but it's fun to think about this being the missing link I wanted all those years ago.

Re: Go Donut: Convert Live Streaming to WebRTC

#20
post #14

Another library that I would recommend people look into for live streaming to WebRTC, as an alternative to Pion used in this project, is Janus WebRTC Server. I use it for ingesting RTP streams I generate from usb webcams and then playing it with very low latency in the browser. It even has a feature where you can stream multiple streams simultaneously. It also has a simple http api for adding, updating, and removing…

> I use it for ingesting RTP streams I generate from usb webcams and then playing it with very low latency in the browser.

Do you have any write up about this? I did try Janus years ago, it wasn’t great, slow, and buggy, but I don’t know about its current state now.

Post reply on HN