オーディオを別のAirPlayデバイスにリダイレクトする


20

私は設定していMopidyを私はSpotifyは(とローカルファイル)ジュークボックスとしてラズベリーパイを使用できるようにRaspbianに。Raspberry Piのアナログオーディオ出力が大きくないことは知っています。

すべてのオーディオをRaspberry PiからAirPlayデバイス(Airport Expressなど)にリダイレクトする方法はありますか?

コマンドラインからすべてを行うことができれば素晴らしいので、さまざまなデバイスを切り替えるためのスクリプトをセットアップできます。


それは素晴らしい質問です。エアプレイが大好きで、Piで使用するのは理にかなっています。その1つですが、良い質問で私の自己を掘り下げます!+1
ピョートルクラ

私が理解したことから、それはPulseAudioを使用して行うことができます。私も周りを掘っています。
-leolobato

ここで議論している内容をご覧くださいraspberrypi.org/phpBB3/…–
jmp909

私はこれが少しトピックから外れていることを知っています-しかし、もしあなたがリモートplaybacに興味がないなら、素敵なUSB DACはどうですか?
ペトル

回答:


13

必要に応じて、mpd、pulseaudio、raop2モジュールを使用できます。

  • プレイリスト、ライブラリなどを管理するためのmpd(sudo apt-get install mpd
  • オーディオ出力を管理するためのpulseaudio:AirPlayのraop、またはアナログジャック、HDMI、httpストリーミングサービスなどのその他の出力デバイス(sudo apt-get install pulseaudio
  • pulseaudioに組み込まれた元のraopモジュールが機能しない場合のpulseaudioの raop2モジュール

pulseaudioのRAOPモジュールの更新バージョンを取得するには、ソースからpulseaudioをビルドする必要がありました。


これを機能させるために私がやったことはsudo apt-get install次のとおりです(パッケージが足りないという不満を言うかもしれませんが、それらだけです)

MPDをインストールする

sudo apt-get install mpd

PulseAudioをインストールする

選択肢A:古いAirPlayデバイスを持っているか、UDPストリーミングが不要です。

簡単ですが、互換性は低くなります。

sudo apt-get install pulseaudio

選択肢B:より優れた互換性と、TCPおよびUDPストリーミングの両方のサポートが必要な場合

次に、pulseaudio用のraop2モジュールが必要です。これは、ソースからPAを構築することを意味します。

gitをまだインストールしていない場合はインストールし、pulseaudioをビルドします(公式の手順を参照)。

sudo apt-get install git intltool autoconf build-essential
cd
git clone https://github.com/hfujita/pulseaudio-raop2
cd pulseaudio-raop2
./bootstrap.sh
make
sudo make install

私のセットアップでは、libpulse.so.0を手動でシンボリックリンクする必要がありました。

cd ~/pulseaudio-raop2
sudo rm /usr/lib/arm-linux-gnueabi/libpulse.so.0
sudo ln -s `cd;pwd`/pulseaudio-raop2/src/.libs/libpulse.so.0 /usr/lib/arm-linux-gnueabi/libpulse.so.0
sudo chown root.root /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chmod 744 /usr/lib/arm-linux-gnueabi/libpulse.so.0

または、あなたの好みに合わせて:

cd ~/pulseaudio-raop2
sudo rm /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo mv pulseaudio-raop2/src/.libs/libpulse.so.0 /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chown root.root /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chmod 744 /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2

すべてを構成する

MPDの初期設定

次に、MPDをセットアップする必要があります。

sudo vi /etc/mpd.conf

そのファイルで、次を設定します。

music_directory "/path/to/your/music"
user "mpd"
bind_to_address "127.0.0.1"
bind_to_address "192.168.x.y"
bind_to_address "2a01:xzy....your IPv6 if you want"

出力を編集する必要がありますが、最初にpulseaudioシンクの名前が必要です。

PulseAudioシンク

Avahi / zeroconfは、AirPlayデバイスの検出を可能にするので便利です(zeroconf / mDNS / Bonjourを使用)。

sudo apt-get install avahi

これで、pulseaudioを起動して、RAOPモジュールをロードすることができます。

pulseaudio --start --log-target=syslog -vvvv --log-level=debug
pacmd load-module module-raop-discover
pacmd list-sinks | grep name:

セットアップの出力は次のとおりです。

name: <raop_output.Freebox-Player.local>
name: <raop_output.Freebox-Server.local>
name: <raop_output.Freebox-Player.local.2>
name: <raop_output.Freebox-Server.local.2>

その後、/etc/mpd.conf再度編集して、次の出力を追加する必要があります。

audio_output {
    type            "pulse"
    name            "Freebox Player"
    sink            "raop_output.Freebox-Player.local"
    format          "44100:24:1"
}

音楽をストリーミングしたいすべてのAirPlayデバイスにこれらのブロックの1つを追加します。

PulseAudioの構成

最後の部分は、PAをセットアップすることです。

sudo vi /etc/pulse/client.conf

コメントを外すとautospawn = yes、必要なときにpulseaudioが自動的に起動します。

sudo vi /etc/pulse/default.pa

下部に次の行を追加します。

load-module module-raop-discover

これにより、pulseaudioは起動時にRAOP検出モジュールをロードします。

最終段階

これで動作するはずです。MPDを起動します(実行中の場合は最初に停止します)。

sudo /etc/init.d/mpd start

少し待ってください。デーモンが正常に動作するには、RasPIで少なくとも10〜15秒かかります。

音楽ライブラリを更新します(そして、終了するのを待ちます):

sudo apt-get install mpc
mpc update

自由に出力を有効にします(以下は、設定されたMPD出力をリストし、最初の出力を有効にします):

mpc outputs
mpc enable 1

次に、お気に入りのMPDクライアントを使用して音楽を再生します。私はncmpcppコマンドラインで使用しており、携帯電話/タブレットでMPDroidを使用しています。

トラブルシューティング

mpdを詳細モードで起動し、最大ログレベルでpulseaudioを起動し、ログを監視します。

mpd --verbose
pulseaudio --start --log-target=syslog --log-level=debug -vvvv
tail -f /var/log/mpd/mpd.log
tail -f /var/log/syslog

最初にpulseaudioが動作するようにしてください。pulseaudioをロードし、RAOPディスカバーモジュールをロードし、シンクをリストし、デフォルトのシンクをセットアップして、何かを再生しようとします。

paplay /usr/share/sounds/alsa/Front_Center.wav

pulseaudioが動作したら、MPDを試してみてください。


1
それがまさに私が探していたものです!Raspberry Piで実行中のmopidyがあります。これを試して更新して、動作するかどうかを確認してください!
leolobato 14

2

そのように見えるのpulseaudio-モジュールraopは、あなたが探しているものです。このガイドには、Ubuntuでこれを設定する方法に関する詳細な説明があります。


1
一般的に、詳細な説明を提供する回答は、リンクよりも優れています。リンクは再配置または消滅する可能性があります。さらに重要なことは、pulseaudio-module-raopについて少し説明することは良いアイデアかもしれません
。--ramblinjan

2

Raspbian Jessieを使用した新しいRaspberry Pi 3でRaop / PulseAudioを使用してAirplayを構成しようとして少し時間を費やしましたが、ほとんど成功しませんでした。forked-daapdを強くお勧めします

これは、AirPlayデバイス、Apple Remote(および互換機)、MPD、Spotify、mp3ストリーミング、インターネットラジオをサポートするLinux / FreeBSD DAAP(iTunes)メディアサーバーである、オリジナルのforked-daapd 0.19の大幅に更新されたバージョンです。

インストールは非常に簡単で、約10分ですべてが稼働しました。ここに詳述さているインストール手順は次のとおりです

1a. If you use Jessie then add this line to /etc/apt/sources.list:
deb http://www.gyfgafguf.dk/raspbian jessie/armhf/
or
1b. If you use Wheezy then add this line to /etc/apt/sources.list:
deb http://www.gyfgafguf.dk/raspbian wheezy-backports/armhf/
2. Run sudo apt-get update and then sudo apt-get install forked-daapd
3. Edit the config file /etc/forked-daapd.conf and (re)start the server with sudo /etc/init.d/forked-daapd restart

Optional - how to add support for Spotify:
1. Add deb http://apt.mopidy.com/ stable main contrib non-free to /etc/apt/sources.list
2. Run sudo apt-get update and then sudo apt-get install libspotify-dev
3. Restart forked-daapd and enter credentials as described in the instructions.
4. Check the log to see how it is working. It should start loading your playlists.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.