Redirect PulseAudio to remote computer
LICENSE | ||
Makefile | ||
pulseaudio-tcp | ||
pulseaudio-tcp.desktop.in | ||
README.md |
pulseaudio-tcp - Redirect PulseAudio to and from Remote Computer
Requirements
Dependencies
- jq
- Audio subsystem:
- PulseAudio or
- Pipewire with PulseAudio compatibility (
pipewire-pulse
). - On the local host
pactl
must be of version 16 or later (required for option--format json
).
Requirements to Local and Remote Host
- pulseaudio-tcp should be installed on a computer running PulseAudio or Pipewire with PulseAudio compatibility.
- This computer is in the following referred to as the "local host".
- The local host should use use a remote computer for playback.
- The remote computer is referred to as the "remote host".
- This mode of operation is referred to as "outbound" audio.
- The local host should receive audio from the remote host for recording.
- This mode of operation is referred to as "inbound" audio.
- The IP address of the remote host and the name of a user running a PulseAudio/Pipewire session there should be known.
- The remote host should allow login by the remote user with SSH.
SSH to User Session on Remote Host
The user on the local host should have password-less SSH to the user on the remote host (required for encryption with SSH port forwarding):
ssh-copy-id $remote_user@$remote_ip
Installation
git clone https://tk-sls.de/git/tk-sls.de/pulseaudio-tcp.git
cd pulseaudio-tcp
sudo make install
Usage
Setup Procedure
A user on local host running the PulseAudio/Pipewire session, execute:
pulseadio-tcp setup
The following questions will be asked:
- IP address of remote host.
- Name of user on remote host running PulseAudio/Pipewire.
- Enable inbound audio.
- Enable outbound audio.
Configuration File
The setup procedure writes a configuration file $HOME/.config/pulseaudio-tcp/config.inc.sh
:
remote_ip="192.168.1.166"
remote_user="remoteuser"
inbound=true
outbound=true
Starting the Service
A user on local host running the PulseAudio/Pipewire session, execute:
pulseadio-tcp start
Stopping the Service
A user on local host running the PulseAudio/Pipewire session, execute:
pulseadio-tcp stop
Checking if the Service is running
A user on local host running the PulseAudio/Pipewire session, execute:
pulseadio-tcp status
Author and Copyright
© 2023 Tilman Kranz <t.kranz@tk-sls.de>
Please see the file LICENSE for terms and conditions of use and distribution.