banner
cylll

cylll

honorificabilitudinitatibus
twitter

AirPlay 2をRaspberry Piに導入する

これらの日 Reddit で「Linux 上の AirPlay 2」という投稿を見ました。その中で、Shairport Sync プロジェクトが推奨されていましたので、自宅で使用している Raspberry Pi の AirPlay をアップグレードすることにしました。興味のある方は元の記事を直接ご覧ください。ドキュメントは非常に詳細に書かれています。

準備#

  • Linux または FreeBSD デバイス(性能は Raspberry Pi 2 以上である必要があります)

  • ポート 319 と 320 が使用されていないこと

  • スピーカー(最適なのは 3.5mm ジャックです)

インストールの開始#

まず、システムを最新の状態に更新することをお勧めします。これにより、さまざまな不明な問題が大幅に減少します。

sudo apt-get update #アップデートの確認
sudo apt-get upgrade #アップデートの実行

Wi-Fi パワーセーブの無効化#

デバイスが Wi-Fi 接続を使用している場合、パワーセーブを無効にする必要があります。これにより、インストール後にデバイスがパワーセーブモードに入ってスピーカーが見つからなくなることを防ぐことができます。

iwconfig wlan0 power off

依存関係のインストール#

apt install --no-install-recommends build-essential git xxd xmltoman \ autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev \ avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev \ libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev

nqptp#

nqptpは Shairport Sync の重要な依存関係であり、手動でコンパイルしてインストールする必要があります。

git clone https://github.com/mikebrady/nqptp.git #プロジェクトのダウンロード
cd nqptp #プロジェクトディレクトリに移動
autoreconf -fi #コンパイル
./configure --with-systemd-startup #設定
make #ビルド
make install #インストール

インストールが完了したら、nqptp を起動する必要があります。

systemctl enable nqptp #自動起動の設定
systemctl start nqptp #nqptpの起動

sps-alsa-explore#

Shairport Sync をサポートするためのツールで、現在のオーディオ出力デバイスを直感的に表示することができます。手動でコンパイルしてインストールする必要があります。

git clone https://github.com/mikebrady/sps-alsa-explore.git #プロジェクトのダウンロード
cd sps-alsa-explore #プロジェクトディレクトリに移動
autoreconf -fi #コンパイル
./configure #設定
make #ビルド

スピーカーを Raspberry Pi に接続し、sps-alsa-explore ディレクトリで./sps-alsa-exploreを実行します:

image

Device Full Name:"hw:Headphones"Possible mixers:"Headphone"をメモして、後続の設定ファイルで使用します。

 #

Shairport Sync のコンパイルとインストール#

git clone https://github.com/mikebrady/shairport-sync.git #プロジェクトのダウンロード
cd shairport-sync  #プロジェクトディレクトリに移動
git checkout development #developmentブランチに切り替え
autoreconf -fi #コンパイル
./configure --sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-airplay-2 #設定
make -j #ビルド
make install #インストール

   #

Shairport Sync の設定#

Shairport Sync の設定ファイルのパスは/etc/shairport-sync.confです。ここで、出力デバイスを設定する必要があります。vi/vim に慣れている方は、sudo vi /etc/shairport-sync.confで直接設定できます。output_devicemixer_control_nameは、先ほどの./sps-alsa-exploreの結果から見つけることができます。

alsa =
{
  output_device = "hw:Headphones";
  mixer_control_name = "Headphone";
};

設定ファイルには多くのコメントがありますので、必要に応じて設定してください。

Shairport Sync の起動#

systemctl enable shairport-sync #自動起動の設定
systemctl start shairport-sync #Shairport Syncの起動

HomeKit への追加#

アクセサリを追加する際に、「コードがないまたはスキャンできない場合」をクリックすると、ホームアプリが AirPlay 2 デバイスを検出します。クリックして追加できます。

HomeKit への追加

問題に遭遇した場合#

「マルチルームオーディオシステム」で再生する際に遅延が発生する場合、Shairport Syncの Issues を調べたところ、すべての人にこの問題があるわけではないことがわかりました。通常、HDMI 接続のデバイスは約 100 ミリ秒の遅延があります。ドキュメントのトラブルシューティングセクションには、遅延を手動で設定する方法が記載されています。設定ファイル/etc/shairport-sync.confには、audio_backend_latency_offset_in_secondsという設定項目があります(単位は秒):

audio_backend_latency_offset_in_seconds の設定

他の問題がある場合は、トラブルシューティングのドキュメントを参照してください。

使用感想#

いくつかの日を使ってみた結果、まあまあ使える状態だと感じました。これにより、「マルチルームオーディオシステム」の機能を体験することができましたが、音楽やポッドキャストなどのオーディオに限定されます。AirPlay の遅延は頭の痛い問題であり、多くのビデオソフトウェアは AirPlay に対応していないため、音声と映像が同期しない問題が発生します。AirPlay に対応している場合でも、バッファリングの遅延が存在します。ただし、オーディオプレーヤーとしては、「マルチルームオーディオシステム」で非常に便利です。

マルチルームオーディオシステム

もちろん、手間をかけたくない人には、Airport Express 2 (A1392)がより良い選択肢かもしれません。簡単な設定でスピーカーを AirPlay 2 に対応させることができます。中古市場では 150〜200 の価格で入手できます。

Airport Express 2 (A1392)

参考資料#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。