PulseAudioでSSHサーバ側の音声をクライアント側で再生する
RDPと違い、VNCでは接続先の音声を送れないことがある。
接続先のデスクトップ(SSH・VNCサーバ)で再生された音声をSSH経由で送信し、SSH・VNCクライアント側で再生できるようにする。
- https://raspberrypi.stackexchange.com/questions/8621/how-to-set-up-a-pulseaudio-sink
- https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#module-tunnel-sink-new
module-tunnel-sink-new
の実装はすでにmodule-tunnel-sink
で動くようになっている(pulseaudio 13.99.1
)
音声を受け取る側(SSH・VNCクライアント、PulseAudioサーバ)
受信側 /etc/pulse/default.pa
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.0/8load-module module-null-sink sink_name=DummyOutputRemote0 sink_properties=device.description="DummyOutputRemote0"load-module module-loopback source=DummyOutputRemote0.monitor source_dont_move=true
DummyOutputRemote0に対して音声が送られてくる。
DummyOutputRemote0.monitorで入力として音声を拾うこともできる。
受信側 ~/.ssh/config
Host your-server# VNCLocalForward 15900 localhost:5900# PulseAudioRemoteForward 14713 localhost:4713
音声を送る側(SSH・VNCサーバ、PulseAudioクライアント・サーバ=中継用)
送信側 /etc/pulse/default.pa
load-module module-tunnel-sink sink_name=Remote server=tcp:127.0.0.1:14713 sink=DummyOutputRemote0
PulseAudio再起動(pulseaudio -k
)後、
接続先のデスクトップ上で音声出力デバイス(Sink)をDummyOutputRemote0に設定する。
DummyOutputRemote0が表示されない場合、どこか設定が間違っていると思われる。
- 電源メニューから音声デバイスを変更できるようにするGNOME拡張