janus-gateway
Project-Lightspeed
janus-gateway | Project-Lightspeed | |
---|---|---|
13 | 28 | |
7,827 | 3,588 | |
1.1% | - | |
9.0 | 1.8 | |
about 21 hours ago | about 1 year ago | |
C | Rust | |
GNU General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
janus-gateway
-
WebRTC for the Curious
> despite WebRTC mostly being about client/client communication
This is actually kind of a misconception, though it’s an understandable one given that WebRTC is almost always pitched as a peer-to-peer protocol.
In practice, most people using WebRTC for video are sending their video to a server, not directly to another client. It’s pretty safe to assume that most people who use your app are going to need TURN, and at that point, you’re not really doing peer-to-peer at all, so you might as well just have your browser-based app talk to a server that’s pretending to be another browser.
These servers (called Selective Forwarding Units or SFUs) can operate like a TURN server in the case of a one-on-one call, but they can also multiplex everyone’s feeds in the case of a larger conference (peer-to-peer 5 person calls would require each participant to send 4 copies of their video) and often have extra features like the ability to record calls, transcode streams or convert to other protocols.
The one I’ve used a lot is called Janus[0], it’s open source and has good docs, I recommend people check it out if they’re interested in getting deeper into WebRTC or other video streaming tech.
[0] https://janus.conf.meetecho.com
-
OpenTalk meeting software with Rust back-end open-sourced under EUPL
OpenTalk is a young project for creating online meeting software similar to Jitsi or BigBlueButton. It is a completely new development, and while it is not a fork of an existing open-source project, it integrates with other projects such as the Janus WebRTC server, Redis for volatile state, RabbitMQ for communication between server instances, and PostreSQL for persistent state.
- Jitsi: More secure, more flexible, and completely free video conferencing
-
What are good self-hosted WebRTC video solutions today?
I've been looking into Janus WebRTC Server due to the ability for Uv4L to join Janus rooms (I'm building a RaspberyyPi doorbell)
-
Looking for self hosted screen sharing/streaming solution
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.
-
Low-latency audio streaming (local network)
I've been using Janus gateway for similar. Pretty easy to setup.
-
Live video calling - the Dyte way
A number of open-source projects also exist, which give developers a great head start if they're looking to build their own infrastructure - the most popular of these include Jitsi, Mediasoup, Janus, and Pion. These projects provide a layer of abstraction and expose a number of helper functions to perform various tasks, such as creating transports, etc. They have helpful guides on how to get started, but you would still face the aforementioned issues regarding scaling, resources, etc.
-
Casey Muratori: refterm and the philosophy of non-pessimization (how you can make programs run 100x faster without optimizations)
This all changes when you are actually a domain expert: You can treat the various components as a "white box" because you see the forest for the trees and can make cross-cutting assumptions which will inherently make the code faster. I've noticed a lot of projects written by domain experts are often these giant clusterfucks of C that violate pretty much every guideline there are so many Medium blogs about, and yet they're very stable and widely used. See: https://github.com/meetecho/janus-gateway for example.
-
Stop using Zoom, Hamburg’s data protection agency warns state government
Yes, there are many self-hosted options out there. https://github.com/meetecho/janus-gateway works well for multi-party video with up to about 15 users in a room assuming everyone has a reasonably reliable connection.
-
WebRTC over Asp.Net Core - Any examples?
- Janus (C / C++)
Project-Lightspeed
-
Looking for a program where I can livestream / share my screen in close to real time (like discord)
Depending on how you want to achieve this, you could use a combination of OBS + Restreamer or OBS + Project-Lightspeed. Another solution would be to use more specific solutions like neko
-
Looking for self hosted screen sharing/streaming solution
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.
- ✨ Best of WebRTC projects in one place! Good fun!
- Looking for a self hosted rtmp restreamer
-
What are ways to broadcast desktop video & audio to a broad audience like twitch?
https://github.com/GRVYDEV/Project-Lightspeed is a 'Twitch like' server that does FTL input from OBS. You can run OBS on the Ubuntu desktop and do a desktop capture. Viewers can then watch on the 'Project Lightspeed' host.
- What would be a compelling talk on WebRTC/P2P for Go developers?
- RTMP -> Server and publish via HLS/embed via iFrame
-
Sub-second webRTC streaming server and player
I recommend Project-Lightspeed for this. It uses the FTL protocol (similar to the now defunct Mixer) with WebRTC for great latency. I've used it many times for streaming games, etc. and it works well.
-
The proper way of Screen Sharing with Desktop audio on Discord (Without mixing desktop audio with your microphone)
Special thanks to the Ryujinx Discord for helping me test and to the Lightspeed Project (https://github.com/GRVYDEV/Project-Lightspeed)!
-
N00b questions about a specific use case
jellyfin can certainly do what you are looking for, but it seems like you probably don't have enough bandwidth to reliably host the service at home, and may be overkill for your usage... you could set up project lightspeed (https://github.com/GRVYDEV/Project-Lightspeed) on a $5/month VPS and use OBS to stream video with sub 1 second latency, you can install teamspeak or mumble or something on the same VPS for voice chat.
What are some alternatives?
mediasoup - Cutting Edge WebRTC Video Conferencing
OvenMediaEngine - OvenMediaEngine (OME) is a Sub-Second Latency Live Streaming Server with Large-Scale and High-Definition. #WebRTC #LLHLS
jitsi - Jitsi is an audio/video and chat communicator that supports protocols such as SIP, XMPP/Jabber, IRC and many other useful features.
Pion WebRTC - Pure Go implementation of the WebRTC API
OBS-studio-webrtc - This is a fork of OBS-studio with generic support for webrtc. It leverages the same webrtc implementation most browsers use.
aiortc - WebRTC and ORTC implementation for Python using asyncio
nginx-rtmp-module - NGINX-based Media Streaming Server
libdatachannel - C/C++ WebRTC network library featuring Data Channels, Media Transport, and WebSockets
Wails - Create beautiful applications using Go
media-server-node - WebRTC Media Server for Node.js
obs-studio - OBS Studio - Free and open source software for live streaming and screen recording