SSHでのXのような音声の転送


27

sshで-Xスイッチを使用してXアプリケーションをリモートで使用することは可能ですが、サウンドはリモートマシンのスピーカーでのみ再生されます。たとえば、VLC / Totemで映画を見ると、ビデオのみが表示され、音声が聞こえません。オーディオも転送する方法はありますか?[Pulse-audioのセットアップを掘り下げることなく、つまり sshがX転送をそれ自体でどのように理解するかと同じように。]

これが役立つ場合は、Ubuntu(9.10から10.10までのさまざまなUbuntuバージョン)でのみこれを試しました。

回答:


30

まず、実行してpaprefsネットワークサーバーに移動し、[ローカルサウンドデバイスへのネットワークアクセスを有効にする]オンにします。これにより、PulseAudioに「module-native-protocol-tcp」がロードされます。

これで、いくつかの方法でPulseAudioサーバーにアクセスできます。

SSH経由でTCP接続を手動で転送する

  1. pax11publishPulseAudioリスナーポート(通常4713)を検出するために使用します。
  2. ssh -R 24713:localhost:4713(リモートポート「24713」が任意に選択された)で別のコンピューターに接続します。
  3. 認証Cookie(〜/ .config / pulse / cookie)をそのコンピューターにコピーします。
  4. 最後にを実行export PULSE_SERVER="tcp:localhost:24713"してテストしpactl infoます。

X11ベースの検出で自動直接接続を使用する

X11転送を有効にしてSSHを実行するたびに、PulseAudioプログラムはX11を使用してサウンドサーバーを検出します(使用するpax11publishxprop -root PULSE_SERVER、自分で確認します)。彼らは、オーディオストリーミングのために、コンピューターへの直接(非SSH、非暗号化)接続を確立しようとします。

DNS-SDディスカバリーで自動直接接続を使用する

avahi-daemonとpulseaudio-zeroconfがインストールされている場合、「他のマシンにローカルデバイスの検出を許可する」を有効にできます。これにより、「module-zeroconf-publish」がロードされます。

「検出可能なネットワークデバイスをローカルで使用可能にする」オプションが有効になっている他のコンピューター(module-zeroconf-discover)は、コンピューターがエクスポートする出力(シンク)を自動的に一覧表示します。オーディオストリーミングには、直接(暗号化されていない)接続を使用します。

この方法では、ホスト全体で〜/ .config / pulse / cookieが同一であることも必要です。


2
どこにあり~/.pulse_cookieますか?リモートまたはローカルで?
HSchmale

2
両方。これはpulseaudioデーモンによって生成され、クライアント(パスワードなど)を接続することで読み取られるため、サーバーからクライアントにコピーする必要があります。(その後、パスが~/.config/pulse/cookie;に変更されていることに注意してください。一方が機能しない場合は、もう一方を試してください。)
grawity

2
paprefsの設定を変更した後、少なくともpulseaudioを手動で再起動する必要があることに注意してください。私の場合、何が間違っていたのかを理解しようとして何時間も費やした後、私はただ再起動し、その後すべてが機能しました:)。
crazy2be

これは私のために働いた、ありがとう。rtl-sdrでリモートraspberry piを使用しているため、ssh経由でオーディオを動作させたい。
ポールM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.