libdatachannel
captureSystemAudio
Our great sponsors
libdatachannel | captureSystemAudio | |
---|---|---|
25 | 46 | |
1,525 | 39 | |
- | - | |
9.3 | 2.8 | |
6 days ago | about 1 month ago | |
C++ | JavaScript | |
Mozilla Public License 2.0 | - |
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
-
Simplicity of IRC
You can use https://github.com/paullouisageneau/libdatachannel for your C/C++ integration needs. It's 10k lines. So the answer is 0. Its required dependencies (I assume this as they are git submodules in deps) are more than 100k lines, though, srtp support making the bulk of it. On my machine it took 11 seconds to compile it.
Irssi is 64k lines (plus its dependencies), so I guess that makes WebRTC complicated.
Can't argue that DCC isn't simple, but perhaps the protocol deviced decades ago is a bit too simple.
-
OBS merges AV1 support for WebRTC
Most of the work happened in the libdatachannel! You can check out my PR here[0]
[0] https://github.com/paullouisageneau/libdatachannel/commit/a6...
-
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.
- WebRTC for the Curious
-
Building WebRTC server implementation for Erlang
This is not true, there are actually multiple WebRTC implementations in different languages besides the reference library: aiortc (python), libdatachannel (C++), sipsorcery (C#),webrtc-rs (rust), werift (Typescript), and Amazon Kinesis (C)
-
I spent two years building a desktop environment that runs in the browser, it's finally in beta!
Use any means necessary to transfer your data across devices. Could be IPFS, could be FTP, could be EventSource, WebSocket, WebTransport, Fetch, whatever. See https://github.com/guest271314/secure-file-transfer; offscreen-webrtc, https://github.com/paullouisageneau/libdatachannel.
-
Client side Rest server?
I've successfully used libdatachannel to Web pages to connect native applications and stream data to the browser.
-
Security Framework
Alternatively you can use your server as a signaling server for WebRTC (Insertable Streams ("Breakout Box"), or data channels https://github.com/paullouisageneau/libdatachannel), then users (peers) can exchange data themselves and you don't need to store anything, see True End-to-End Encryption with WebRTC Insertable Streams, A complete example for a WebRTC datachannel with manual signaling.
-
Datachannel video streaming?
there is also a c++ library that can be used to open a data channel connection, I think a number of SFU “servers?” use this library (I wish I had) https://libdatachannel.org/
-
Is there a master here who can implement WebRTC video capture in C++?
For networking and terminating WebRTC connections from cpp libdatachannel is you easiest bet. For transcoding you can pick whatever library you like, if any. The other way would be to use the chrome WebRTC stack and modify it for server use. It can and has been done but is very involved.
captureSystemAudio
-
JavaScript Standard Input/Output: Unspecified
Synchronous. Though non-blocking when we read the message from the browser, execute the command, then stream data output from the local application to the browser piped from QuickJS std.popen(), capture_system_audio.js
-
IAMA senior javascript dev, ask me anything
I've already achieved the requirement multiple ways, already; from using Native Messaging https://github.com/guest271314/native-messaging-espeak-ng, to using GNU Core Utilities tail, to Deno.watchFs() https://github.com/guest271314/fs, et al., see captureSystemAudio. The one approach I have not yet achieved is compiling to Emscripten - with SSML support.
-
Need help with ytdl-core and ExpressJS
Sure, see https://github.com/guest271314/captureSystemAudio/blob/master/native_messaging/capture_system_audio/background.js, in pertinent part
-
Kindly review this C QuickJS HTTP streaming Web server module
This is my second time writing C source code capture_system_audio.c. I got a lot of help doing that, too . I basically implemented the same Native Messaging host algorithm in C, C++, Python, WASI/WebAssembly, and JavaScript (Node.js, QuickJS) which is the programming language I write code most using.
-
Termino.js: Create command based apps on any website - great for games, chat-bots, animations and real world apps!
I just fetch the nightly node executable, get rid of everything else in the archive, use .mjs extension for import to work without package.json, then I can connect to the host https://github.com/guest271314/native-messaging-nodejs, and start subprocesses, e.g., raw PCM streams, where stdout is streamed to the client (browser), e.g, https://github.com/guest271314/captureSystemAudio/blob/master/native_messaging/capture_system_audio/capture_system_audio_node.js.
-
How to serve exactly 1 HTML file and 1 JavaScript file, then exit the program?
Technically I can just serve the raw data as long as the server is capable of opening creating sub-processes, e.g., using EventSource https://plnkr.co/edit/qX5tepJ38BuDOSZj?preview, in which case I would just need to convert this https://github.com/guest271314/captureSystemAudio/blob/master/native_messaging/capture_system_audio/capture_system_audio.c to accept GET request, read the URL, and send the named event stream to the client.
-
[AskJS] Has anybody implemented and compiled ServiceWorker specification to a standalone executable?
Chromium and Chrome refuses to capture monitor devices on Linux. Read this https://github.com/edisionnano/Screenshare-with-audio-on-Discord-with-Linux README and the README at https://github.com/guest271314/captureSystemAudio very carefully. At best you can capture tab audio, not whatever is output to speakears and headphones, in spite of the systemAudio constraints, which is poorly named, and actually misleading.
-
[AskJS] Do specification authors and implementers listen to developers in the field?
How is capturing speechSynthesis.speak() a security vector https://github.com/guest271314/captureSystemAudio?
-
What chrome extensions are you using in 2023?
Capture audio output to speakers or headphones to MP3 or Opus in WebM https://github.com/guest271314/captureSystemAudio/tree/master/native_messaging/capture_system_audio
-
You can learn React and Python in browser without dev environment.
An example of using Native Messaging to capture "What-U-Hear", sound output to speakers and headphone, launching native GUI's https://github.com/guest271314/captureSystemAudio/tree/master/native_messaging/capture_system_audio; an adapter for espeak-ng so we can capture the output of speech synthesis engine and stream output to the browser https://github.com/guest271314/native-messaging-espeak-ng.
What are some alternatives?
libjuice - JUICE is a UDP Interactive Connectivity Establishment library
comet - Browser extension to replace Youtube comments with Reddit comments or view the Reddit comments of any webpage.
Pion WebRTC - Pure Go implementation of the WebRTC API
proposal-do-expressions - Proposal for `do` expressions
aiortc - WebRTC and ORTC implementation for Python using asyncio
native-messaging-bash - Bash Native Messaging host.
sora-unity-sdk - WebRTC SFU Sora Unity SDK
webextensions-examples - Example Firefox add-ons created using the WebExtensions API
janus-gateway - Janus WebRTC Server
GoogleNetworkSpeechSynthesis - Google's Network Speech Synthesis: Bring your own Google API key and proxy
µWebSockets - Simple, secure & standards compliant web server for the most demanding of applications
proposal-type-annotations - ECMAScript proposal for type syntax that is erased - Stage 1