RPiPlay試してみた

# やりたいこと

ラズパイを使って、PC用のディスプレイをワイヤレスディスプレイにしたいと思います。
もう少し具体的に言うと、ラズパイをAirPlayサーバーのようにしておいて、MacやiPhoneの画面を無線でディスプレイ上に表示したいです。

# RPiPlayとは

やり方を調べていたらラズパイのフォーラムでこのような記事を見つけました。

https://www.raspberrypi.org/forums/viewtopic.php?t=239964

RPiPlayはラズパイ用のオープンソースのAirPlayミラーリングサーバーで、2019年5月にGithubに公開されたそうです。

https://github.com/FD-/RPiPlay

これを使えばちょうどやりたいことができそうだったので、試してみました。

# 環境

- Raspberry Pi 3 Model B

```shell
$ cat /etc/os-release 
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"
```

- PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A (FFP)
https://www.amazon.co.jp/gp/product/B00ESA34GA/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
無線でインターネット接続したいため、ラズパイに取り付けています。

- MacBookAir(接続確認用)

```shell
$sw_vers
ProductName:	Mac OS X
ProductVersion:	10.13.6
BuildVersion:	17G11023
```

- iPhone 8 (iOS 13.2, 接続確認用) 

# インストール

https://github.com/FD-/RPiPlay
こちらに記載されているように順番にコマンドを実行するだけです。

```shell

git clone https://github.com/FD-/RPiPlay.git
cd RPiPlay
sudo apt-get install cmake
sudo apt-get install libavahi-compat-libdnssd-dev
sudo apt-get install libssl-dev
mkdir build
cd build
cmake ..
make
```

最初に``apt-get``したときに次のようなエラーが表示されましたが、
``sudo dhclient wlan0``を実行することで解決しました。


```shell

エラー:1 http://raspbian.raspberrypi.org/raspbian buster/main armhf cmake-data all 3.13.4-1
  'raspbian.raspberrypi.org' が一時的に解決できません
```


# 動作確認

``make``が終わると、buildディレクトリに``rpiplay``という実行ファイルが作成されているので、実行してみまます。

```shell

$ ./rpiplay -h
RPiPlay 1.2: An open-source AirPlay mirroring server for Raspberry Pi
Usage: ./rpiplay [-n name] [-b (on|auto|off)] [-r (90|180|270)] [-l] [-a (hdmi|analog|off)]
Options:
-n name               Specify the network name of the AirPlay server
-b (on|auto|off)      Show black background always, only during active connection, or never
-r (90|180|270)       Specify image rotation in multiples of 90 degrees
-l                    Enable low-latency mode (disables render clock)
-a (hdmi|analog|off)  Set audio output device
-d                    Enable debug logging
-v/-h                 Displays this help and version information
```

```./rpiplay -n MyAirPlay -b auto```を実行します。
``-b``のオプションに対して``auto``を指定している理由は、AirPlayを使用していない時はラズパイの画面を表示させたいためです。お好みに合わせてオプションを指定してください。

あとはMacとiPhoneから無線でディスプレイに画面を表示できるのか確認します。

### Macの画面をミラーリング

画面右上のディスプレイのアイコンをから``MyAirPlay``を選択します。

![screen01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329888/74068c32-ef1f-6d90-644b-c12794451c4d.png)

![screen02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329888/06be0c1f-ee2d-08a4-0548-249ec88ba28d.png)

![screen03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329888/fcffa854-dee5-3ce3-c009-59df7ecbfba4.png)

無事にディスプレイに画面を表示できました。

### iPhoneから画面表示

iPhoneから「画面ミラーリング」をタップして、``MyAirPlay``をタップします。

![screen04.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329888/619dcc25-4f80-59ff-0b89-6a78f45c2fc3.jpeg)

こちらも画面に表示できました。