libdatachannel
janus-gateway
Our great sponsors
libdatachannel | janus-gateway | |
---|---|---|
15 | 11 | |
1,011 | 6,935 | |
- | 1.1% | |
9.1 | 9.4 | |
6 days ago | 6 days ago | |
C++ | C | |
Mozilla Public License 2.0 | GNU General Public License v3.0 only |
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.
libdatachannel
-
Who uses node executable without using npm?
Node.js node JavaScript runtime itself provides a means to interface with native applications. Plenty of people write their own WebSocket or WebRTC data channel libraries https://github.com/paullouisageneau/libdatachannel.
-
Is it just me, or is it much easier to make complicated applications in C++ than web?
Fourtunately some technologies and API's are extensible enough to do whatever you want in spite of and to overcome limitations; e.g., WebRTC (particularly data channels https://github.com/paullouisageneau/libdatachannel), Native Messaging, WebTransport, fetch(), Trasnferable Streams, Media Capture Transform, File API, File System Access API, Web extensions.
-
How are rust devs doing?
To be fair, C++ has libdatachannel which I like using too.
-
Transport agnostic Websocket library
https://github.com/paullouisageneau/libdatachannel ?
-
No why can't we have raw UDP in JavaScript?
Or use something specific like libdatachannel https://libdatachannel.org/
If you’re using WebRTC data channels in a client server config then infra is no more complex than a regular setup because the server will almost certainly have an external facing IP address.
People should really try using WebRTC as well because you can get the full pipeline setup for a toy demo in a couple of slow days. I did whilst also writing my own signalling server in Go without having used Go before!
It’s certainly not any more complex than rolling all the stuff the article is talking about on top of raw UDP.
-
Show HN: MockRTC – a mock peer and MitM proxy library for WebRTC
This does use a real WebRTC stack (specifically libdatachannel - https://libdatachannel.org). Under the hood this is making real WebRTC connections.
But I guess you mean why it doesn't mock using real peers in the browser where the tests are happening, using the browser's existing stack there?
There's a few reasons I've avoided that:
* Primarily: I want to do things that the browser APIs won't let you do. E.g. sending invalid data, or intentionally causing various types of errors. The browser APIs are designed to stop you doing the wrong thing, by keeping the raw data at arm's length. Very sensible for normal WebRTC usage, but bad for testing edge cases and breaking things.
-
FFmpeg - correct configuration for building webRTC in native C++?
Building WebRTC tends to be hell. If your use case is simple enough, it might be interesting to switch to an alternative C++ library like libdatachannel (I'm the author).
-
What are the differences between UDP and WebSockets, and which type of games benefit from which?
You can, in theory, get UDP-like characteristics out of a different web API - with a WebRTC datachannel configured to be unreliable and unordered. I haven't seen anybody use that API just because it's a pretty big pain to use. The developer of Agar IO called it too hard to use in a HackerNews comment, but nowadays there's simpler libraries than the ones he had in 2016 like webrtc-unreliable and libdatachannel. You still need to run a STUN/TURN server and the integration is easier than it was back then, but still much harder than raw UDP sockets though.
-
string to const char* for popen()
exit(EXIT_SUCCESS); } char message[message_length]; fread(message, message_length, sizeof(char), stdin); string m(message, message + sizeof message / sizeof message[0]); return json::parse(m); } // Encode a message for transmission, given its content. message_t encode_message(json content) { string encoded_content = content.dump(); message_t m; m.content = encoded_content; m.length = (uint32_t)encoded_content.length(); return m; } // Send an encoded message to stdout. void send_message(message_t encoded_message) { char *raw_length = reinterpret_cast(&encoded_message.length); fwrite(raw_length, 4, sizeof(char), stdout); fwrite(encoded_message.content.c_str(), encoded_message.length, sizeof(char), stdout); fflush(stdout); } int main(int argc, char *argv[]) { while (true) { json message = get_message(); auto command = message.get(); // https://github.com/paullouisageneau/libdatachannel/issues/544#issuecomment-1024739214 // https://www.reddit.com/r/cpp\_questions/comments/swr1tk/comment/hxral9f/ FILE *pipe = popen(command.c_str(), "r"); while (true) { size_t bufferSize = 1024; byte buffer[bufferSize]; size_t count; while ((count = fread(buffer, 1, bufferSize, pipe)) > 0) { stringstream data; // S16NE PCM from parec to integers in JSON array data << "["; for (size_t i = 0; i < count; i++) { data << (int)buffer[i]; if (i < count - 1) { data << ","; } } data << "]"; // send JSON array to Native Messaging local client send_message(encode_message(data.str())); } } } }
- Libwebsockets a powerful and lightweight pure C library
janus-gateway
- 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.
-
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++)
-
Building a customer support solution focused on video calls
You can also take a look at https://github.com/meetecho/janus-gateway which can help you implement the video call part (as well as more traditional rtc scenario)
-
need suggestions for options for media server (WebRTC preferred)
You can try janus https://janus.conf.meetecho.com/
- Show HN: WebRTC-Echoes: Interop for C#, C++, Python, TypeScript, Go and Servers
What are some alternatives?
mediasoup - Cutting Edge WebRTC Video Conferencing
Pion WebRTC - Pure Go implementation of the WebRTC API
jitsi - Jitsi is an audio/video and chat communicator that supports protocols such as SIP, XMPP/Jabber, IRC and many other useful features.
libjuice - JUICE is a UDP Interactive Connectivity Establishment library
sora-unity-sdk - WebRTC SFU Sora Unity SDK
media-server-node - WebRTC Media Server for Node.js
aiortc - WebRTC and ORTC implementation for Python using asyncio
simple-peer - 📡 Simple WebRTC video, voice, and data channels
µWebSockets - Simple, secure & standards compliant web server for the most demanding of applications
tiny-webrtc-gw - tiny/fast webRTC video conferencing gateway