RaspberryPiから音楽をストリーミング配信
外出先で音楽を聴くときに、プレーヤに音楽を保存しておくのではなくRaspberryPiで自宅にミュージックサーバーを立てて、そこから再生するようにすればプレーヤの容量を気にすることがなくなります。また、RaspberryPiなので電気代も気になりません。
それを実現してくれるアプリケーションが「Ampache」です。
sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5
sudo apt-get install mysql-server
おこのみでパスワードを設定してください。設定した場合は後で必要になるのでちゃんと覚えておきましょう。
sudo apt-get install mysql-client
sudo apt-get install ampache
まずhttp://(RaspberryPiのIPアドレス)/ampache/にアクセスしてください。
前回のブログのとおりに設定していた場合http://192.168.1.100/ampache/へのアクセスになります。
ここはこのまま「Start configuration」を押しましょう。(言語設定で日本語にもできるようですが私はは英語でやっていきます。)
「MySQL Administrative Password」で先ほどMySQLで設定したパスワードを、「Ampache Database User Password」では好きなパスワードを入力してください。
「Overwrite Existing」「Use Existing Database」にチェックを入れて「Insert Database」をクリックします。
ここでさっきのMySQLのIDとパスワードを入力して「Whire」→「Download」の順にクリックします。すると「ampache.cfg.php」のダウンロードが開始されると思います。このファイルを「/etc/ampache/」においてください。
SSHでアクセスしている方でSambaの設定が私と同じ場合、まずampache.cfg.phpをネットワークフォルダに移動してSSHから
sudo mv /mnt/samba/ampache.cfg.php /etc/ampache/
(私がRaspberryPiでGUIを立ち上げてこの作業をしたときはこのダウンロードが正常に行われなかったので、私はSSHから作業を行うことを推奨しています。)
ファイルの移動が終わったら[Recheck Config]をクリックして2つのERRORが消えたら成功です。
このような画面になったら「Continue to Step 3」をクリックしましょう。
Ampacheにアクセスするユーザーネームとパスワードを設定し、「Create Account」をクリックしましょう。
もしかしたらupdate がでるかもしれませんがお好きにどうぞ。
ここでもう一度http://(RaspberryPiのIPアドレス)/ampache/にアクセスすると
このようなページが表示されると思います。ここで先ほど設定したユーザーネームとパスワード入力してログインしましょう。
左上のアイコン(admin)をクリックして音楽の登録をします。「Add a Catalog」をクリックして、「Catalog Name」に管理しやすいような名前を、「Path」に音楽ファイルの場所を入力して「Add Catalog」を押しましょう。ここで「Gather Album Art」にチェックを入れておくとジャケットを自動的に取得します。
これで音楽の追加は終了です。次にAPIからアクセスできるようにしましょう。
設定は適宜変更してください。わからなければ上記の通りに設定すればOKです。
さて、ここで正常に音楽が読み込まれているか確認しましょう。殆どの人は文字化けして読み込まれていると思います。Ampacheにおいて音楽の名前はファイル名ではなく、ファイルに埋め込まれているID3タグのタイトルを読み込んでいます。そのためID3タグの文字コードがS-JISで書かれていると文字化けが置きます。そこでID3Uniを使用してID3タグをUnicodeへ変換してください。
さて、同じネットワーク内(家の中のみ)での使用でしたらこれで端末にアプリをインストールして設定するだけでいいのですが、今回の目標は外から自宅の音楽を聞くことなのでもうひと手間かかります。
いわゆるポート開放といわれる作業なのですが、これは自宅のルータの種類により大きく違うので説明書を読むか、ネットで「ポート開放」で検索して自分のルータのポート開放を行ってください。
プロトコル:TCP ポート:80 ローカルIPアドレス:192.168.1.100
では、次に端末にアプリケーションをインストールしてみましょう。
---------------------------------------------------------------------------------
まずアプリケーションをインストールする前に自分のグローバルIPアドレスを調べておきましょう。Googleで「グローバルIP」と検索すると自分のグローバルIPを表示してくれるサービスが見つかると思いますのでそれを利用します。IPが判明したらメモをして次に進みましょう。(グローバルIPが頻繁に入れ替わる環境も存在します。その場合はDynamicDNSを使用しましょう。)
JustPlayerが人気だと思いますが、私はAmdroidを使っていました。
私は基本的に軽さ重視です。問題なく使えると思います。
私の把握している限りiOSでのアプリは2つあります。
iAmpacheとAmpacheXです。前者は無料ですが後者は有料(2013/9/30時点では250円)です。
両方使ってみましたが、iAmpacheは使用に耐えられるレベルではないと思います。(日本語がすべて「???」になるので曲の判別が不可能。バックグラウンドでの再生不可。)
AmpacheXにおいても有料ではありますが、あまり使い勝手がいいようには思えません。一応AmpacheXの使い方を以下に示していきます。
これが初期画面です。まず「Settings」をタップしましょう。
http://(グローバルIPアドレス)/ampache/
を入力して、設定したAmpacheログインのIDとパスワードを入力。
待っても何も起こらない場合はアプリを終了してserverのアドレスを「http://192.168.1.100/ampache/」にして再度試みてみます。これで成功したらポートの開放に失敗しているか、ルータが自分へのアクセスを拒否している可能性があります。とりあえず他のネットワークからアクセスして原因を特定してください。
さて、「Artists」と「Albums」は読み込まれたが「Songs」が読み込まれない状態になります。このまま更に放置して、適当なところをタップして「Find Music」をタップ(Find Musicを更新)すると
となって音楽がちゃんと読み込まれます。音楽再生までに2000曲ぐらいで5分ぐらいかかります。
これがAmpacheXのネックな部分で最初にサーバーの曲をすべて読みに行くので最初の再生までが非常に時間がかかります。さらにキャッシュのようなものはないのでアプリを起動するたびにこの読み込みが発生します。しかし、iampacheと違って1回読みこめばその後の音楽を探す動作は速いです。
また、AmpacheXはプレイリストを読み込んでくれないので音楽の整理ができないことがとても不便です。
知っている人はグローバルIPからではなくDynamicDNSを使いましょう。
音楽サーバーを立てるにはAmpacheかSubsonicの二択になると思います。Ampacheは無料で使えますが、Subsonicを使用するには1500円ぐらい(Subsonic:10$+iSub:450円)かかります。個人的にはアプリの使いやすさからAndroidを使っている方はAmpacheが、iOSを使っている方はSubsonicを使用したほうがいいと思います。
私は出先ではWiMAXを使用しています。電車の中では電波がMAXで立つことはないのですが、ひどく悪いというわけでもないと思います。
音楽再生はトンネル等通信状況が悪い状況が続けば途切れもしますが、30秒ぐらいトンネルに入るとかでしたら特に問題無いと思います。