Coder Social home page Coder Social logo

x186k / deadsfu Goto Github PK

View Code? Open in Web Editor NEW
38.0 6.0 8.0 12.42 MB

Dead-simple WebRTC broadcasting. From the browser, or your application. Cloud-native and scalable.

Home Page: https://deadsfu.com

License: MIT License

Dockerfile 0.46% Go 85.85% HTML 3.33% Shell 0.55% Ruby 0.43% CSS 2.24% SCSS 0.95% Makefile 0.71% JavaScript 5.49%
webrtc broadcasting streaming livestreaming kubernetes go golang docker real-time low-latency

deadsfu's Introduction

x186k

Steve Jobs said: “Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it’s worth it in the end because once you get there, you can move mountains.”

deadsfu's People

Contributors

cameron-elliott avatar cameronelliott avatar combinedcognitions avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

deadsfu's Issues

Observed issue with ipv6 ddns5.com registration

ubuntu@ip-172-26-5-146:~$ sudo ./sfu1 -urls https://foobadbad12.ddns5.com -https-detect-ip public
E 00:20:04.127287 debug output NOT enabled
E 00:20:06.128514 https://foobadbad12.ddns5.com is BROWSER URL
E 00:20:06.128652 https://foobadbad12.ddns5.com/pub is ingress signalling URL
E 00:20:06.128726 https://foobadbad12.ddns5.com/sub is egress signalling URL
), url: [https://api.ddns5.com/update?domains=foobadbad12.ddns5.com&ipv6=%3Cnil%3E&token=&verbose=true], body: KO
Bad IP address <nil>
ubuntu@ip-172-26-5-146:~$

SFU-Subscriber-side: Make SFU generate offer, not subscriber

I've had many discussions on the Pion Slack group regarding who should generate the offer
at the subscriber side of the SFU: SFU vs subscriber.
It was always or often said the SFU should generate the offer.
I never could get a straight answer as to why this was better, and could not see a large advantage
regarding media negotiation.

Also, for us, with simple HTTP signaling, it is nice for the sub to generate it, as offer goes in body, and ans goes in resp.

I finally see a strong case for why the SFU should generate the offer, and we should then have double-HTTP requests in order to do so.

If the SFU (the upstream) generates the offer, the downstream can use the number of audio+video tracks
to generate the answer. So, if the upstream offers 20 tracks of video, the downstream-SFU can craft an
answer to accept 20 all 20 tracks.
This is important as part of an SFU hierarchy.

With the current model (downstream-offers), the downstream must choose how many tracks to receive without
regards to how many the upstream has available.
The current code allows three tracks.
We really want to the downstream-SFU to forward all tracks, whether 3 or 100.

Remove the many subMapMutex.Lock(), Unlock() calls, possibly

Because of the nature of Go maps, iterating the subscribe set means a fair number
of subMapMutex.Lock(), Unlock() calls

It might be cleaner to translate the subscriber uniq id to an array/slice index, which
then gets iterated, skipping empties.

No Location header in response when using WHIP

Hi there, it's me again 😄

I'm still working on those WHIP interop tests, so after getting your WHIP/WHAP client to work with my WHIP server (and Janus), I now wanted to test my WHIP client with deadsfu instead.

A first attempt got my WHIP client to crash, and apparently the cause was a missing Location header for the WHIP resource in the response to the POST. I fixed the crash in my client, but this now means I have no way to trickle candidates to deadsfu the WHIP way. Is this indeed not supported anymore? Should candidates be added as part of the SDP offer instead? If so I'll have to update the WHIP client as I think I don't support this yet.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.