HNHacker News
TopNewBestAskShowJobs

Sean-Der

4,712 karma · joined November 18, 2012

meet.hn/city/39.9622601,-83.0007065/Columbus

Socials: - github.com/Sean-Der - linkedin.com/in/sean-dubois - siobud.com - pion.ly

---

submissionscomments
Sean-Der··on Show HN: 30ms latency screen sharing in Rust
WebRTC has congestion control and Simulcast/SVC, what is missing for adaptive bitrate switching. What is stalling recovery? I believe NACK/PLI handle this?

WebRTC doesn’t have a scaling problem. I think it was a software problem! Twitch, Tencent, Agora, Phenix all do 100k+ these days

I like WebRTC because of the open-ness of it. I also like that I only need one system for ingest and playback. I am HEAVILY biased though, way over invested in WebRTC :) I tend to care about greenfield/unique problems and not enough about scaling and making money

Sean-Der··on Show HN: 30ms latency screen sharing in Rust
John did all the work on this.

Just is nice as a Windows user. When I started committing everything worked really well already. Editing the just stuff also is really easy. Much nicer to read then scripts I think

Sean-Der··on Show HN: 30ms latency screen sharing in Rust
Nope! I want to add all the other flows.

nvidia is the absolute lowest I believe. I wanted to do it first to know if it was worth building.

Sean-Der··on Show HN: 30ms latency screen sharing in Rust
Yes! I want to add remote control features to it. Lots of things left to do

Any interest in getting involved? Would love your help making it happen

Sean-Der··on Show HN: 30ms latency screen sharing in Rust
Excited to hear what you think! If there is anything I can change/improve tell me and will make it better :)
Sean-Der··on Show HN: 30ms latency screen sharing in Rust
Let me find it again! I saw it on LinkedIn and it was such a bullshit promo thing
Sean-Der··on Show HN: 30ms latency screen sharing in Rust
Users what to send WHIP into discord. The lack of control on screen sharing today is frustrating. Users want to capture via another tool and control bitrate/resolution.

Most Broadcast Box users tell me that’s their reason for switching off discord.

———

With WHEP I want to see easier co-streaming. I should be able to connect a room to my OBS instance and everyone’s video auto show up.

I don’t have this figured out yet. Would love your opinion and feedback. Wanna comment on the doc or would love to talk 1:1 ! siobud.com/meeting

Sean-Der··on Show HN: 30ms latency screen sharing in Rust
Another things that is in this realm. I am adding native co-streaming/conferencing to OBS [0]. OBS can send WebRTC, next I want to make receiving work well.

Between that and Simulcast I hope to make real-time video dramatically cheaper and easier

[0] https://docs.google.com/document/d/1Ed2Evze1ZJHY-1f4tYzqNZfx...

Sean-Der··on Show HN: 30ms latency screen sharing in Rust
It is also a player!

You can either pull the video from a WHEP source or run in a P2P mode. I wanted to demonstrate the flexibility and hackability of it all :)

Sean-Der··on Show HN: 30ms latency screen sharing in Rust
Yep! It glues ffmpeg, str0m[0] and SDL together. I hope bitwhip doesn’t need to exist someday. When WHIP/WHEP has enough traction it will be easier to land in FFMPEG

[0] https://github.com/algesten/str0m

Sean-Der··on Show HN: 30ms latency screen sharing in Rust
I wrote this to solve a few things I cared about.

* I want to show people that native WebRTC players can be a thing. I hope this encourages hangouts/discord/$x to implement WHIP and WHEP it would let people do so much more

* I wanted to make low latency sharing easier. I saw the need for this working on adding WebRTC to OBS and Broadcast Box[0]

* I wanted to show devs what a great ecosystem exists for WebRTC. Lots of great implementations in different languages.

* Was a bit of a ‘frustration project’. I saw a company claiming only their proprietary protocol can do latency this low. So I thought ‘screw you I will make an open source version!’

[0] https://github.com/glimesh/broadcast-box

Sean-Der··on Creating a matchmaker for your multiplayer game
Godot uses libdatachannel. I remember them asking for mbedtls support
Sean-Der··on Show HN: web-p2p-tunnel, WebRTC+ServiceWorker HTTP tunnel to localhost
Nice job!

This is much better then the status quo today. Even if things are E2E encrypted it is so wasteful that 'HTTP Tunnels' route through jump servers.

Cool thing about WebRTC is you can put this in a lot more places if you want.

Don't have anything constructive to add, but will share this on Pion Twitter/LinkedIn later. This has been on my short list of 'I really wish someone would build this' for a long time.

Sean-Der··on VoRS: Vo(IP) Simple Alternative to Mumble
Thank you so much for using it. I feel so honored(and surprised) that people use it. I totally stumbled into a successful project.

If I ever can be helpful with your projects reach out!

Sean-Der··on VoRS: Vo(IP) Simple Alternative to Mumble
What makes something a 'blessed way'? Are you looking for community support, large corporate users etc..? Not being snarky, curious about how people see the space. Lots of implementations exist and I have used most of them for different projects, not all these projects went to production though.

* https://github.com/elixir-webrtc (Elixir)

* https://github.com/pion/webrtc (Golang)

* https://github.com/webrtc-rs/webrtc (Rust)

* https://github.com/algesten/str0m (Rust)

* https://github.com/sepfy/libpeer (C/Embedded)

* https://github.com/awslabs/amazon-kinesis-video-streams-webr... (C/Embedded)

* https://github.com/paullouisageneau/libdatachannel (C++)

* https://webrtc.googlesource.com/src/ (C++)

* https://github.com/shinyoshiaki/werift-webrtc (Typescript)

* https://github.com/sipsorcery-org/sipsorcery (C#)

* https://github.com/aiortc/aiortc (Python)

* GStreamer’s webrtcbin (C)

Sean-Der··on VoRS: Vo(IP) Simple Alternative to Mumble
libdatachannel[0] is exciting me the most for 'low footprint'. str0m[1] is especially exciting, but you have to be in a device/ecosystem that allows rust.

> only if you use the same kind of software and codecs

With WebRTC I can connect clients with varying support of H264, VP8, VP9, AV1, Opus, ulaw and alaw. WebRTC has plenty of flaws, but 'lack of negotiation' is one of them.

[0] https://github.com/paullouisageneau/libdatachannel

[1] https://github.com/algesten/str0m

Sean-Der··on F/OSS Comics: 8. The Origins of Unix and the C Language
The book 'Show Stopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft' is a really great read on Dave Cutler.

I would love more 'tech origin stories'. Next I am planning to read 'Soul of a new machine'. Another one I enjoyed was 'Open: How Compaq Ended IBM's PC Domination and Helped Invent Modern Computing'

Sean-Der··on Orange Meets: a demo application built using Cloudflare Calls
Why do you think this was a joke?

I have have been trying my best to make WebRTC more accessible [0] [1]. It's powerful, but the complexity makes it challenging.

[0] https://github.com/pion

[1] https://webrtcforthecurious.com

Sean-Der··on Orange Meets: a demo application built using Cloudflare Calls
Depends what codec! For 1280x720 with a VMAF score of 90 this is the numbers I use.

* H264 - 1.25Mbps

* VP8 - 1.00Mbps

* VP9 - 700kbps

* AV1 - 550kbps

Sean-Der··on Orange Meets: a demo application built using Cloudflare Calls
What did you find difficult about WebRTC? What could have been better/easier?
Sean-Der··on Orange Meets: a demo application built using Cloudflare Calls
Cloudflare has been doing some amazing stuff with live video.

I am so glad they did WHIP/WHEP[0] support. That lets me push video from my browser and pull via GStreamer. Or I can push via OBS and watch in browser with 300ms of latency! When developers start to see what’s possible I expect to see another wave of WebRTC innovation :)

[0] https://developers.cloudflare.com/stream/webrtc-beta/

Sean-Der··on Writing scalable backends in UDP
Go isn't the problem. The issues I have seen is that you are I/O bound by the kernel.

One company did Pion WebRTC + https://www.dpdk.org/ and is now doing 4x throughput. They tried switching to Rust (and still doing userspace networking) and it didn't make a big difference.

Sean-Der··on Cloudflare Calls Open Beta
Really great writeup. Stuff like this dispels the FUD that 'You can not scale WebRTC'. It for sure is harder to scale then static/loss-less content like HTTP. But I have never found it intrinsically harder then other media.

I am heavily biased, but it really feels like an inflection point with WebRTC recently. Seeing Cloudflare put up this post, this morning I talked with a camera vendor about having WHIP support in firmware etc... exciting times for sure!

Sean-Der··on Overlay networks based on WebRTC
What protocols/networks do you consider P2P? Every P2P technology I have used requires some bootstrapping.

I have done WebRTC with zero signaling, but browser only one side[0]. I wish the w3c/ietf would care, but that’s the issue with corporate/profit driven standards!

[0] https://github.com/pion/offline-browser-communication

Sean-Der··on Overlay networks based on WebRTC
WebRTC will live on. I think it will continue to grow from grassroots efforts.

WebRTC has P2P and it also doesn't require the user to have any knowledge of Video/Networking. The alternatives to it are more geared at 'video developers'. I don't know which way the future will go.

Sean-Der··on WebSockets vs. Server-Sent-Events vs. Long-Polling vs. WebRTC vs. WebTransport
Works well! Lots of developers/companies use WebRTC with NAT Traversal.

You can also use it in a client/server setup. Check out 'WebRTC SFU'

I wrote a little bit about the different topologies in [0]

[0] https://webrtcforthecurious.com/docs/08-applied-webrtc/#webr...

Sean-Der··on OBS merges AV1 support for WebRTC
Most of the work happened in the libdatachannel! You can check out my PR here[0]

OBS already has everything around AV1, so I just needed to handle packetization :)

The `is_av1` is already going away. Bad code on my part <_< [1]

[0] https://github.com/paullouisageneau/libdatachannel/commit/a6...

[1] https://github.com/obsproject/obs-studio/pull/10159

Sean-Der··on P2pcf: P2P WebRTC via Cloudflare Workers
I think that’s an amazing idea. I tried with https://github.com/pion/offline-browser-communication but it requires standards improvements

If you are interested I would love to work together! Join the Pion slack and would love to brainstorm

Sean-Der··on Pure C WebRTC
Customers I have seen

* Taxi uploaded footage to analyze (guns, hostile body language)

* Rescue Delivery Robot (Get a delivery robot unstuck when AI gives up. Need video + send commands)

* Remote Mining Equipment ( Video + Control)

* Remote Surgery (Specialist hands super imposed for local generalist)

* Security Cameras/Doorbells

* Kids smart watch to give parents audio+video

* Battery Operated Wearable Cameras

Sean-Der··on Pure C WebRTC
I am really excited about https://github.com/sepfy/libpeer. It has examples ready for ESP32 etc....

When working on KVS I wasn't familiar with the embedded space at all. I saw 'heavyweight' embedded where you were running on Linux. Then you had RTOS/No OS at all. I wasn't prepared for these devices at all. If we can make WebRTC work in the embedded space I think it will really accelerate what developers are able to build!

Remotely driven cars, security cameras, robots in hospitals that bring iPads to infectious patients etc... Creative people are building amazing things. The WebRTC/video space needs to work harder and support them :)

-----

I love how diverse the WebRTC space is now. Outside of this implementation you have plenty of other options!

* https://github.com/shinyoshiaki/werift-webrtc (Typescript)

* https://github.com/pion/webrtc (Golang)

* https://github.com/webrtc-rs/webrtc (Rust)

* https://github.com/algesten/str0m (Rust)

* hhttps://github.com/sepfy/libpeer (C/Embedded)

* https://webrtc.googlesource.com/src/ (C++)

* https://github.com/sipsorcery-org/sipsorcery (C#)

* https://github.com/paullouisageneau/libdatachannel (C++)

* https://github.com/elixir-webrtc (Elixir)

* https://github.com/aiortc/aiortc (Python)

* GStreamer’s webrtcbin (C)

See https://github.com/sipsorcery/webrtc-echoes for examples of some running against each other.

← PreviousPage 9 of 22Next →