Our great sponsors
-
obsninja
VDO.Ninja is a powerful tool that lets you bring remote video feeds into OBS or other studio software via WebRTC.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
rtmp-hls-server
a docker file to create a streaming server that supports RTMP, HLS and DASH content based on nginx and nginx-rtmp-module.
-
OvenMediaEngine
OvenMediaEngine (OME) is a Sub-Second Latency Live Streaming Server with Large-Scale and High-Definition. #WebRTC #LLHLS
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Project-Lightspeed
A self contained OBS -> FTL -> WebRTC live streaming server. Comprised of 3 parts once configured anyone can achieve sub-second OBS to the browser livestreaming
-
OBS-studio-webrtc
This is a fork of OBS-studio with generic support for webrtc. It leverages the same webrtc implementation most browsers use.
-
go-transcode
On-demand transcoding origin server for live inputs and static files in Go using ffmpeg. Also with NVIDIA GPU hardware acceleration.
-
hls-restream
Restream live content as HLS using ffmpeg in docker. Also with NVIDIA GPU hardware acceleration.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Can be self hosted but very open-source already: https://vdo.ninja also see /r/vdoninja
My solution is cobbled together from OvenMediaEngine and OvenPlayer, which gives me about 250ms of latency when streaming. I have the whole thing behind a reverse proxy that uses Discord for forward auth, and then I have a list of discord user names that are allowed in. Streaming is controlled by a normal stream key rather than OAuth. It's very "batteries not included" though.
[3] https://github.com/TareqAlqutami/rtmp-hls-server
My solution is cobbled together from OvenMediaEngine and OvenPlayer, which gives me about 250ms of latency when streaming. I have the whole thing behind a reverse proxy that uses Discord for forward auth, and then I have a list of discord user names that are allowed in. Streaming is controlled by a normal stream key rather than OAuth. It's very "batteries not included" though.
A related answer to the above is to check out Janus. It's a general purpose WebRTC server that has RTMP and FTL ingest support. I think it's also batteries not included, but I think it's what Glimesh is based on.
FTL - This is the protocol that powered Microsoft's mixer platform. It's actually great. However, when Mixer died, the OBS project deprecated support for it. You might want to check out Glimesh to see if you can self host their platform.
I also used to use Project-Lightspeed, which worked great. I abandoned it because I wanted to get off of FTL based on the OBS thread above. It otherwise worked for me.
There are a few other WebRTC based solutions. There's a fork of OBS that allows streaming out using WebRTC. I think that only supports millicast.com, which I believe is not open source. There are a few other servers that handle WebRTC, but I don't know if any are WebRTC.
I remember looking at MovieNight in the past, but I never deployed it so I can't speak to whether it will work for you or not.
If you're familiar with ansible, you can check out: https://github.com/mboilen/tgrgbox-ansible The playbook will set up a docker-compose file with an OME instance, an instance nginx to both serve the web site which hosts OvenPlayer and serves as a reverse proxy, and a little forward off stub to handle discord oauth (which sounds important for your scenario).