Show HN: OBS Live-streaming with 120ms latency
Broadcast Box is a video broadcasting tool using WebRTC for sub-second latency, supporting multiple streams and peer-to-peer connections. It integrates with OBS and GStreamer, and offers community support.
Read original articleBroadcast Box is a tool designed for broadcasting video with sub-second latency, utilizing WebRTC technology for enhanced performance compared to traditional broadcasting methods like RTMP and HLS. The key features of Broadcast Box include its ability to achieve real-time broadcasting with sub-second latency, support for multiple simultaneous video streams, and peer-to-peer broadcasting capabilities that do not require a public IP. Users can upload videos at various quality levels for optimal server cost management. To set up broadcasting, users can utilize OBS (Open Broadcaster Software) or GStreamer, while viewers can access streams through a provided URL. Configuration is managed through environment variables and a `.env.production` file, and the project can be built from source using Go for the backend and React for the frontend, or deployed easily using Docker and Docker Compose. The project encourages community contributions and offers support through a dedicated Discord channel.
- Broadcast Box enables real-time video broadcasting with sub-second latency using WebRTC.
- It supports multiple simultaneous streams and peer-to-peer connections without needing a public IP.
- Users can configure settings and build the project using Go and React or deploy it via Docker.
- The tool is designed for easy integration with OBS and GStreamer for broadcasting.
- Community support is available through a Discord channel for users and contributors.
Related
Exploring the Broadcast Channel API for cross-tab communication
The Broadcast Channel API enhances web communication across browser contexts, enabling data synchronization without server involvement. Caution is advised for sensitive data due to lack of encryption. Practical applications include real-time collaboration and data synchronization.
BlockQueue: SQLite-powered pub/sub for lean, fast messaging
Block Queue is a lightweight, cost-effective messaging system using a pub/sub mechanism, built on SQLite3 and NutsDB, supporting Turso Database and PostgreSQL, with high performance and open-source availability.
Go Donut: Convert Live Streaming to WebRTC
Donut connects SRT and WebRTC for real-time media streaming in browsers. Users can set up streaming via a web interface, requiring ffmpeg and offering Docker-Compose support for easy installation.
Show HN: Typescript library for editing videos with code
Diffusion Studio is a browser-based video processing framework for AI, featuring video/audio editing, layering, and real-time playback. It supports various media formats and requires a license for commercial use.
FCast: Casting Made Open Source
FCast is an open-source protocol for wireless audio and video streaming, supporting multiple platforms and stream types, enabling custom receiver development, and promoting community contributions for enhanced innovation.
- Users express interest in low-latency streaming solutions, comparing Broadcast Box to alternatives like Cloudflare's service.
- Some commenters highlight the benefits of low latency for interactive experiences, such as gaming and intimate broadcasts.
- Concerns are raised about the challenges of WebRTC, particularly regarding NAT issues and the need for TURN servers.
- Questions about scalability and the feasibility of using Broadcast Box for larger audiences or multiple sources are discussed.
- Users seek clarity on practical applications and setup guidance for using Broadcast Box effectively.
* low latency means you have a relationship with your audience. These intimate broadcasts are a new medium.
* Simulcast means it is way cheaper to run a streaming site. No more running ffmpeg/generating transcodes server side.
* AV1/H265/Opus means users with lower bandwidth can now broadcast. Users with enough bandwidth can stream at quality levels they couldn’t before
* UDP gives us IRL/Roaming streams. No custom setup for re-connects.
* Multi-track lets you send multiple video feeds or languages at once
* E2E Encryption means that P2P distribution could be a thing
¹ https://developers.cloudflare.com/stream/webrtc-beta
² https://blog.cloudflare.com/webrtc-whip-whep-cloudflare-stre...
> Broadcast Box uses WebRTC for broadcast and playback. By using WebRTC instead of RTMP and HLS you get the fastest experience possible.
Nothing in RTMP prevents you from achieving low latency; it's the software stack around it that determines latency for both RTMP and WebRTC. Only HLS does have some built-in deficiencies that cause extra latency.
Live streaming just seems to have so many downsides to me:
1. Requires real-time presence
2. No editing (meaning less efficient use of time for the viewer)
3. No client-side speeding up/skipping irrelevant parts
4. No possibility of index or table of contents
What are some use cases where live streaming is better?
When I was more into the low latency streaming space a few years ago, it felt like WebRTC was there when it came to << 1 second latency, but the infrastructure to actually distribute it was not really. I think Cloudflare (and maybe some other vendors) were working on creating some standard, has it landed? Can I run my own horizontally scalable WebRTC broadcaster (are there open source implementations)?
Something like Low-Latency HLS or CMAF was at like < 5 second latency, but was on the other hand stupidly easy to distribute widely (just static files on a plain old CDN / http server).
i'm not going to get 120ms latency though. i'm in argentina, they're mostly in the usa, and i have 200+ milliseconds of latency over the internet to anything in the usa
if broadcast box isn't what i'm looking for, is there something else? i already know about zoom, google, and teams, but those all make us vulnerable to proprietary servers
“You could also use P2P to pull other broadcasters into your stream. No special configuration or servers required anymore to get sub-second co-streams.”
I currently have this setup for doing a co-stream with a friend and it is terrible:
1. Friend is running OBS to capture his gameplay. 2. Friend has OBS streaming to a Raspberry Pi I have running at my house. 3. The Raspberry Pi is running nginx configured to accept the RTMP stream. 4. I run OBS on another machine to capture my gameplay, add overlays, etc. 5. My OBS has an input source using VLC to capture the stream from the Raspberry Pi.
The setup is awful. Video is pretty delayed and it often just stops working. I would love to look into this project but after reading through the README, I am unclear how I would use this for my setup. Any pointers?
I've used Moonlight + Nvidia Gamestream with ~40ms RTT and couldn't feel a difference in competitive shooters, so total latency must be pretty low.
Does it have something to do with the bandwidth requirements? (1 stream v/s potentially hundreds)
Related
Exploring the Broadcast Channel API for cross-tab communication
The Broadcast Channel API enhances web communication across browser contexts, enabling data synchronization without server involvement. Caution is advised for sensitive data due to lack of encryption. Practical applications include real-time collaboration and data synchronization.
BlockQueue: SQLite-powered pub/sub for lean, fast messaging
Block Queue is a lightweight, cost-effective messaging system using a pub/sub mechanism, built on SQLite3 and NutsDB, supporting Turso Database and PostgreSQL, with high performance and open-source availability.
Go Donut: Convert Live Streaming to WebRTC
Donut connects SRT and WebRTC for real-time media streaming in browsers. Users can set up streaming via a web interface, requiring ffmpeg and offering Docker-Compose support for easy installation.
Show HN: Typescript library for editing videos with code
Diffusion Studio is a browser-based video processing framework for AI, featuring video/audio editing, layering, and real-time playback. It supports various media formats and requires a license for commercial use.
FCast: Casting Made Open Source
FCast is an open-source protocol for wireless audio and video streaming, supporting multiple platforms and stream types, enabling custom receiver development, and promoting community contributions for enhanced innovation.