UbuntuをAirPlayの母艦にする - Shairport
Shairportを使えば、UbuntuをAirPlayの母艦にすることができる。
メインでUbuntuを使っていて、iPhoneからUbuntuに繋がってるスピーカーに音を飛ばしたい時に便利。
あくまでも母艦なので、UbuntuからAirPlay対応のスピーカーに音は飛ばせないので注意。
事前準備
以下を参考に必要なパッケージなどをインストールしていく。
shairport/INSTALL.md at master · albertz/shairport · GitHub
必要パッケージのインストール
$ sudo apt-get install git build-essential libssl-dev libcrypt-openssl-rsa-perl libao-dev libio-socket-inet6-perl libwww-perl avahi-utils pkg-config
必要なCPANパッケージは以下の5つ
- HTTP::Request
- HTTP::Message
- Crypt::OpenSSL::RSA
- IO::Socket::INET6
- Net::SDP
インストールはこんな感じで
$ sudo -H cpan -i Net::SDP
他のパッケージも同じようにインストールしてやる。
Shairportのダウンロードとテスト
適当なディレクトリに移動して、git cloneする
$ cd /tmp $ git clone https://github.com/albertz/shairport.git $ cd shairport
とりあえず、shairportが動くかテストしてみる
$ perl shairport.pl
エラー無く実行できたら、iPhoneやiTunesのスピーカー選択に "Shairpoint ***" が出現するので選択してやる。
無事にUbuntuのスピーカーから、iTunesの音楽が再生できれば成功。
テストが完了したら、今動かしてるshairpointをCtrl+Cで止める
Shairportの正式な導入
先ほどgit cloneして出来上がった、shairport/ に居ることを確認する。
$ pwd /tmp/shairport
以下のようにインストールする。
$ make $ sudo make install install -D -m 0755 hairtunes /usr/local/bin/hairtunes install -D -m 0755 shairport.pl /usr/local/bin/shairport.pl install -D -m 0755 shairport /usr/local/bin/shairport
起動スクリプトのコピー
$ sudo cp -a shairport.init.sample /etc/init.d/shairport
shairportサービスの開始
$ /etc/init.d/shairport start
サービスの停止や再起動をしたい場合
$ /etc/init.d/shairport stop $ /etc/init.d/shairport restart
shairportがLISTEN状態になっているか確認する。デフォルトでは5002番ポートを使う
$ sudo lsof -nPi:5002 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME perl 13502 root 4u IPv6 111039 0t0 TCP *:5002 (LISTEN) perl 13502 root 6u IPv6 114620 0t0 TCP 192.168.2.50:5002->192.168.2.221:55739 (ESTABLISHED)
再び、iPhoneやMacのiTunesからスピーカー選択で"Shairpoint"を選び、Ubuntuのスピーカーから音楽再生できるか確認する。
問題点
Shairportが不安定。
shairportのサービスが開始されてて、転送側からshairportの選択をしてるし、ESTABLISHEDにもなってるのに、曲がスピーカーから流れないことが多い……