web-dev-qa-db-ja.com

PulseAudioリモートを適切かつ安全にセットアップする方法は?

PulseAudioのリモート(クライアント/サーバーセットアップ)を使用している人に関するフォーラムの投稿を見たところ、興味を持ちました。 PulseAudioには非常に高度な機能がいくつかあり、Sonosなどの商用システムを購入することなく、家中で音楽を再生できるようにしたいと思っています。

これまでのところ、PulseAudioのリモートを動作させることができましたが、 directions に正確に従っているわけではありません。特に、私はいくつかのセキュリティホールを開いたと思います。私は私が実行した正確な手順を示し、誰かがどこが間違っていたか教えてもらえるかどうかを確認したいと思います。

明確にするために、PulseAudioは機能しており、エラーは発生しません。しかし、必要以上に多くの設定を開かなければなりませんでした。私の目標は、この不十分な動作構成から適切で安全な動作構成に移行することです。

PulseAudioクライアントとサーバーの両方でArch Linuxを実行しています。

クライアントとサーバーの両方

このパッケージをインストールして、avahi-daemonを有効にします。

pacman -S pulseaudio-zeroconf 
systemctl enable avahi-daemon.service
systemctl start avahi-daemon.service

サーバーの手順

編集/etc/Pulse/default.paおよび次の行を追加します。

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1
load-module module-zeroconf-publish

次のコマンドを実行します。

pulseaudio -k
pulseaudio --start
pacmd list-modules | grep native-protocol-tcp
pacmd list-modules | grep zeroconf-publish

モジュールは正しかった。

クライアントの手順

編集/etc/Pulse/default.paおよび次の行を追加します。

load-module module-native-protocol-tcp
load-module module-zeroconf-discover

次のコマンドを実行します。

pulseaudio -k
pulseaudio --start
pacmd list-modules | grep native-protocol-tcp
pacmd list-modules | grep zeroconf-discover

PulseAudioが起動し、モジュールは正しかった。

私の次のステップは、「グラフィカルPulseAudioボリュームコントロールpavucontrolを実行します。[出力デバイス]タブの下に、ローカルおよびリモートの出力デバイスが表示されるはずです。」ただし、その際、クライアントにリモート出力デバイスが表示されませんでした。

ターミナルでpaprefsを開き、次の追加手順を実行する必要がありました。

クライアントの[ネットワークアクセス]タブ:

  • check発見可能なPulseAudioネットワークサウンドデバイスをローカルで利用可能にする

サーバーの[ネットワークサーバー]タブ:

  • ローカルサウンドデバイスへのネットワークアクセスを有効にするをチェックします
  • lAN上の他のマシンがローカルサウンドデバイスを検出できるようにする
  • チェック認証を要求しない

paprefsのGUIでこれらの変更を行って初めて、クライアントにリモート出力デバイスが表示されました。前述のように、リモートシンクで音楽を再生することは機能していますが、これらの設定は安全ではないようであり、構成で重要な何かを見逃しているようです。 「認証を要求しない」のチェックを外すと、ストリーミングが停止します。

また、これを行うには、avahiを使用するよりも良い方法がありますか?

4
MountainX

サーバーで、次の構成行を変更しました。

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1

に:

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24

同じ〜/ .config/Pulse/cookieファイルをすべてのデバイスにコピーしました。

次に、サーバーのターミナルでpaprefsを開き、次の手順を実行します。

[ネットワークサーバー]タブをアクティブにします。

  • 「認証を要求しない」のチェックを外します

cmus

私はまた、基本的に同じことを達成する別の方法を見つけました。これは、ラップトップからの音楽再生を、音楽「サーバー」として機能し、スピーカー(およびDAC、電源アンプや音楽セットアップなど)。 LAN上のデバイス間に便利なsshアクセスを設定しています。音楽サーバーにアプリケーション cmus をインストールしました。

cmusは、Unixのようなオペレーティングシステム用の小さく、高速で強力なコンソール音楽プレーヤーです。

これで、ラップトップ(または電話)を音楽サーバーの「リモートコントロール」として使用できます。音楽サーバーにsshしてターミナルにcmusと入力します。別のコンピューターで再生されている音楽をリモートコントロールする他の方法を試しましたが、cmusのコンソールインターフェイスには魅力的な優雅さがあると言わざるを得ません。

Cmus命令の場合は、man cmus-tutorialおよびman cmusと入力します。

1
MountainX