2020-11-28

SSH経由で遠隔のホストからPulseAudioの音を出す方法

TigerVNC viewerはオプション-viaを使用することで簡単にSSH経由で遠隔のVNCサーバーへ接続することができる。 残念なことに、VNCのプロトコルには音声を転送するプロトコルが定義されていないので、たいていのVNCサーバー・クライアントでは音声を送ることが出来ない。

このページでは、サーバー上で、vncserverを使用して起動したVNCのセッション内で音声を再生するアプリケーションを起動し、遠隔のクライアントでその音声を聴く方法を説明する。

クライアント側の設定

pactl load-module module-native-protocol-tcp 'auth-ip-acl=127.0.0.1'
もしauth-ip-aclに複数のホスト・ネットワークを設定したい場合、;で区切って記載する。

サーバー側の設定

環境変数PULSE_SERVERを以下のように設定する。
export PULSE_SERVER=tcp:127.0.0.1:4715
ポート番号4715の部分は、後述のトンネリングの設定とあわせておけば何でも良い。 この設定をした上で、PulseAudioを使用するアプリケーションを起動する。

SSHトンネリングの設定

クライアント側から、以下のようにトンネルを掘る。
ssh -NfR 4715:127.0.0.1:4713 server.example.net

制限事項

サーバー側で環境変数が設定されたアプリケーションの音声しか送ることが出来ないため、既に起動しているアプリケーションの音声は送ることが出来ない。 従って、例えばx11vncと併用する使用方法には適していない。 既に起動している (ローカルの) デスクトップの音声を送る場合、以下のページが参考になる。

0 件のコメント:

コメントを投稿