Files
netris-nestri/apps/neswire
Wanjohi 40b80d4b14 refactor: the hub is neshub everywhere
Six comments across nescope, neswire and nescapture still named
nestri-guest-hub, plus one still naming nestri-protocol. Deferred from the
import commits so the rename would read as one change rather than six
unexplained edits inside otherwise-verbatim trees.

Comments only. Realigned an ASCII box in encode.rs that the shorter name
knocked crooked.
2026-08-26 19:02:58 +03:00
..
2026-08-26 18:02:38 +03:00

neswire

A small custom PipeWire sink for cloud gaming audio capture.

Currently for debugging uses RTP to send Opus (with FEC enabled by default) over to target address.

Testing

Mono/Stereo

Launch gstreamer pipeline to receive audio as so (will save incoming RTP audio into test.mkv):

gst-launch-1.0 udpsrc port=12345 caps="application/x-rtp,media=audio,encoding-name=OPUS,clock-rate=48000,payload=111" ! rtpopusdepay2 ! opusdec ! matroskamux ! filesink location=test.mkv sync=false

Then run neswire like so for example:

cargo run --release --bin neswire -- --rtp-addr 127.0.0.1:12345

Surround

Launch gstreamer pipeline to receive audio as so (will save incoming RTP audio into test_multi.mkv):

gst-launch-1.0 udpsrc port=12345 caps='application/x-rtp,media=audio,encoding-name=MULTIOPUS,clock-rate=48000,payload=111,encoding-params=(string)8,num_streams=(string)5,coupled_streams=(string)3,channel_mapping=(string)"0,6,1,2,3,4,5,7"' ! rtpopusdepay2 ! opusdec ! matroskamux ! filesink location=test.mkv sync=false

Then run neswire like so for example:

cargo run --release --bin neswire -- --rtp-addr 127.0.0.1:12345 --channels 8

For both afterwards, set the neswire sink as audio output source in your system (or specify it as output in some app/game), then play some audio, stop gst pipeline and sink, listen to results after.