ローカルマシンで SSH 経由で Finch でサウンド/通知を再生する

ローカルマシンで SSH 経由で Finch でサウンド/通知を再生する

そこで、私はfinchリモートマシン上で実行しているコマンドラインチャットクライアント(pidgin のようなもの)を持っていますsshfinch通知音があり、特定のイベントが発生したときにコマンドを実行することができ、サウンドファイルを として渡すことができます%s。例:mplayer %s

リモート マシンから通知が発生した場合、%sローカル マシンにあるものを再生するにはどのようなコマンドを実行すればよいでしょうか。

答え1

使用する場合はパルスオーディオサウンド サーバーとして使用すると、module-native-protocol-tcpリモート マシンからの TCP 接続を受け入れることができます。

次の例では、SSH トンネルを使用して、リモート マシンからローカル マシンにオーディオ要求を転送します。

ローカルマシンで、次のような操作を行います。

pactl load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
ssh -R 9999:127.0.0.1:4713 you@remotehost

リモートマシンでは、paplay

paplay -s 127.0.0.1:9999 soundfile.wav

追加した有効なパラメータとしてauth-ip-acl受け入れられないことがわかったので、 (またはマシンが localhost アドレスを使用するもの) を使用する必要があります。localhost127.0.0.1

編集(リモート ポートをローカル ポートに転送しています)ssh -Rではなく、である必要があります。ssh -L


古いバージョンの pulse-audio (0.9.3 より前) をお持ちの場合は、Cookie ベースの認証を使用できます。

pactl load-module module-native-protocol-tcp auth-anonymous=1 auth-cookie-enabled=0
scp ~/.pulse-cookie you@remotehost:
ssh -R 9999:localhost:4713 you@remotehost

もちろん、pulse-audio で認証を使用しないという方法もありますが、この解決策はお勧めできません。少なくとも、リモート接続を回避するためにファイアウォールを使用してください。

関連情報