環境
- Ubuntu 22.04
やりたいこと
サーバーAとBがある。サーバーAにはtest.wavがあり、サーバーBにスピーカーがある。
サーバーAから aplay test.wav
を実行し、サーバーBのスピーカーから音を鳴らしたい。
今回はPulseAudioを使って実現してみる。
- サーバーB: PulseAudioサーバー
- サーバーA: PulseAudioクライアント
サーバー側の設定
echo 'load-module module-native-protocol-tcp listen=0.0.0.0 auth-anonymous=1' > /etc/pulse/default.pa.d/my.pa
設定反映
$ systemctl --user restart pulseaudio.service $ systemctl --user restart pulseaudio.socket
sshすると自動で起動するが、再起動後に反応しなくなってしまうので自動起動するようにしておく
$ systemctl --user enable pulseaudio Created symlink /home/thr3a/.config/systemd/user/default.target.wants/pulseaudio.service → /usr/lib/systemd/user/pulseaudio.service. Created symlink /home/thr3a/.config/systemd/user/sockets.target.wants/pulseaudio.socket → /usr/lib/systemd/user/pulseaudio.socket.
クライアント側の設定
設定前に確認
$ pacmd list-sinks 1 sink(s) available. * index: 0 name: <auto_null> driver: <module-null-sink.c> flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: IDLE suspend cause: (none) priority: 1000 volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB balance 0.00 base volume: 65536 / 100% / 0.00 dB volume steps: 65537 muted: no current latency: 2045.22 ms max request: 375 KiB max rewind: 375 KiB monitor source: 0 sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 configured latency: 2000.00 ms; range is 0.50 .. 2000.00 ms module: 13 properties: device.description = "Dummy Output" device.class = "abstract" device.icon_name = "audio-card"
設定
pacmd load-module module-tunnel-sink server=192.168.16.16
いざ確認 問題なければこれでサーバーBから音が鳴る
aplay /tmp/test.wav
設定の永続化
ただこれだと毎回設定しなくちゃいけなくて面倒
/etc/pulse/client.conf.d/my.conf 作成して以下
default-server = 192.168.16.16
確認
$ pacmd list-sinks 1 sink(s) available. * index: 24 name: <tunnel-sink.192.168.16.16> driver: <module-tunnel.c> flags: NETWORK HW_MUTE_CTRL HW_VOLUME_CTRL LATENCY state: SUSPENDED suspend cause: IDLE priority: 0 volume: front-left: 65536 / 100%, front-right: 65536 / 100% balance 0.00 base volume: 65536 / 100% volume steps: 65537 muted: no current latency: 0.00 ms max request: 0 KiB max rewind: 0 KiB monitor source: 24 sample spec: s16le 2ch 44100Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 fixed latency: 250.00 ms module: 47 properties: device.description = "USB Audio and HID Analog Stereo on thr3a@NuxBox" tunnel.remote.server = "192.168.16.16" device.icon_name = "audio-card" tunnel.remote_version = "35" tunnel.remote.user = "thr3a" tunnel.remote.fqdn = "NuxBox" tunnel.remote.description = "USB Audio and HID Analog Stereo"