Raspberry PiをAirPlayレシーバーとして機能させ、iPhoneやiPadなどのAppleデバイスから画面や音声をミラーリングする方法を解説します。ここでは、オープンソースのAirPlayレシーバーソフトウェア「RPiPlay」を使用します。
1. Raspberry Piのシステム更新
まず、Raspberry Piのパッケージリストとシステムを最新の状態に更新します。
パッケージリストの更新
sudo apt update
インストール済みパッケージのアップグレード
sudo apt upgrade
OSのファームウェア更新(オプション)
より新しいファームウェアに更新したい場合は、rpi-update
を使用します。これは開発版のファームウェアをインストールするため、安定性を重視する場合はスキップしても問題ありません。
sudo apt install rpi-update
sudo rpi-update
sudo reboot # 更新後、再起動
2. RPiPlayのセットアップ
RPiPlayのソースコードをダウンロードし、ビルドします。
必要なパッケージのインストール
RPiPlayのビルドに必要な依存関係をインストールします。
sudo apt install cmake
sudo apt install libavahi-compat-libdnssd-dev
sudo apt install libssl-dev
sudo apt install libplist-dev
補足: 環境によっては libplist-dev
が不要な場合もありますが、エラーが出る場合はインストールしてください。
動作確認環境
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
RPiPlayのダウンロードとビルド
GitHubからRPiPlayのソースコードをクローンし、ビルドします。
git clone https://github.com/FD-/RPiPlay.git
cd RPiPlay
mkdir build
cd build
cmake ..
make
make
コマンドが完了すると、build
ディレクトリ内に rpiplay
という実行ファイルが生成されます。
RPiPlayの起動
生成された rpiplay
実行ファイルを直接起動できます。
./rpiplay
起動時に以下のオプションを引数として渡すことで、詳細な設定を行うことができます。
-n <name>: AirPlayサーバーのネットワーク名を指定します。
-b (on|auto|off): 黒い背景の表示設定 (常に表示、接続時のみ、表示しない)。
-r (90|180|270): 画像の回転角度を90度単位で指定します。
-f (horiz|vert|both): 画像の反転設定 (水平、垂直、両方)。
-l: 低遅延モードを有効にします。音声と映像の同期がずれる可能性があります。
-a (hdmi|analog|off): 音声出力デバイスを設定します。
-vr <renderer>: 使用するビデオレンダラーを選択します (rpi, gstreamer, dummy)。
-ar <renderer>: 使用するオーディオレンダラーを選択します (rpi, gstreamer, dummy)。
-d: デバッグログを有効にします。コンソール出力が多いため、再生が途切れる可能性があります。
-v/-h: ヘルプとバージョン情報を表示します。
3. Raspberry Pi起動時にRPiPlayを自動実行する
Raspberry Piの起動時にRPiPlayが自動的に起動するように、systemd
サービスとして設定します。
サービスファイルの作成
/etc/systemd/system/
ディレクトリに rpiplay.service
という名前でサービスファイルを作成します。
sudo nano /etc/systemd/system/rpiplay.service
以下の内容をファイルに記述します。ExecStart
のパスは、RPiPlayをクローンしたディレクトリに合わせて変更してください。User=pi
は、pi
ユーザーで実行する場合です。
[Unit]
Description=RPi Play Service
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=10
User=pi # RPiPlayを実行するユーザー
ExecStart=/home/pi/RPiPlay/build/rpiplay -n MyPiAirPlay -b auto -a hdmi # 実行ファイルのパスとオプション
StandardOutput=inherit
StandardError=journal
[Install]
WantedBy=multi-user.target
ExecStart
の -n
オプションでAirPlayデバイスとして表示される名前を設定できます。
サービスを有効化して起動
サービスファイルを作成したら、systemd
にサービスを認識させ、有効化して起動します。
sudo systemctl daemon-reload # systemdの設定をリロード
sudo systemctl enable rpiplay.service # 起動時に自動実行されるように有効化
sudo systemctl start rpiplay.service # サービスを今すぐ起動
サービスのステータスを確認するには、以下のコマンドを使用します。
sudo systemctl status rpiplay.service
これで、Raspberry PiがAirPlayレシーバーとして機能するようになります。iPhoneやiPadからAirPlayのデバイスリストに「MyPiAirPlay」(または -n
オプションで指定した名前)が表示されるはずです。