# WebRTC Audio Publishing This repository contains an application to publish [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/) and [JACK](https://jackaudio.org/) streams via [WebRTC](https://webrtc.org/) to a "room" on a server, which is the distributed to one or more browser clients via [WebRTC](https://webrtc.org/). The server application can be found in the [server](server) directory, the publisher application in the [publisher](publisher) directory. Common code between the two is shared via [common](common). ## Running ### Installing Dependencies See instructions for [Rust](https://rustup.rs) and [GStreamer](https://gstreamer.freedesktop.org). ### Server ```sh $ cd server # Prints the command-line parameter help of the server. $ cargo run -- --help # Runs it on port 8080 with TLS and the provided certificates. $ cargo run -- -t -c cert.pem -k key.pem --static-files static ``` ### Publisher ```sh $ cd publisher # Prints the command-line parameter help of the publisher application. $ cargo run -- --help # Captures audio from the default PulseAudio stream and publishes it on the given # server into the "test" room. $ cargo run -- --input-stream pulseaudio:default --server https://localhost:8080 --server-room "test" ``` ## License All code in this repository is licensed under the [MIT license](LICENSE).