pulseaudio-tcp/README.md

2.4 KiB

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

© 2023 Tilman Kranz <t.kranz@tk-sls.de>

Please see the file LICENSE for terms and conditions of use and distribution.