Audio Streaming

lamco-rdp-server supports bidirectional audio via the RDPSND channel. Desktop audio is captured through PipeWire, encoded, and streamed to the connected RDP client.

Supported Codecs

Codecs are auto-negotiated between the server and the RDP client during connection setup. The server advertises all available codecs, and the client selects the best match.

Codec Priority Description
opus Preferred High-quality, low-latency lossy codec. Best for most connections.
pcm Fallback Uncompressed audio. Maximum quality, highest bandwidth usage.
adpcm Legacy Adaptive Differential PCM. Compatibility with older RDP clients.
g711 Legacy G.711 u-law/A-law. Telephony-grade audio for low-bandwidth links.

Configuration

[audio]
enabled = true
codec = "auto"
sample_rate = 48000
channels = 2
buffer_ms = 40
Key Type Default Description
enabled boolean true Enable audio streaming
codec string "auto" Codec selection: auto, opus, pcm, adpcm, g711
sample_rate integer 48000 Sample rate in Hz
channels integer 2 Number of audio channels (1 = mono, 2 = stereo)
buffer_ms integer 40 Buffer size in milliseconds

How It Works

Audio requires PipeWire. The server captures desktop audio via PipeWire and encodes it for the RDP client. Codec selection is automatic via capability negotiation — the server and client exchange supported codec lists during the RDPSND channel setup, and the highest-priority mutually supported codec is selected.

Note: When codec = "auto", the server will prefer Opus if the client supports it, falling back through the priority list automatically.

Requirement: PipeWire must be running. Verify with: systemctl --user status pipewire