Chinachu Airのリリースが待たれるところですが、その前にChinachu Airで利用するMirakurunというチューナーサーバープログラムがリリースされていました。
今回、このMirakurunとRivarunを利用してRaspberry Pi 2でChinachuを動作させ、チューナーを搭載したサーバーとは別にChinachu環境を構築させていきたいと思います。
もくじ
Chinachu環境を分離すると何が嬉しいのか
Chinanchu は実はまだBeta版なわけですが、基本的に録画先や予約環境は1つのみとなります。つまり、使用者に応じたプロファイル管理ができません。
しかも今まではChinachuプログラムにそのままrecpt1がぶら下がっていました。番組を閲覧するにはChinachu経由でしか見ることが出来ませんでした。
Mirakurunの登場
Chinachu Airのリリース前に、チューナーサーバーのプログラムMirakurunが公開されました。
Mirakurun はRESTful APIに対応した DVRチューナーサーバーです。Chinachu Air向けに開発されたものですが、従来のChinachu Beta にもRivarun を導入することによってMirakurunを扱えるようになります。
MirakurunのすごいところはTCPベースでローカルネットワーク内でチューナーを共有できるというところです。感覚的にはWindowsでのSpinelに近いです。
今までchinachuではチューナーを搭載したPCやサーバーでしか利用できませんでした。Basic認証はあるものの、録画や設定環境は分離することが出来ませんでした。
Mirakurunを使うことによってチューナーをChinachuから引き離し、複数のChinachuを動作させてしまおうというのが記事の趣旨です。
説明しづらいので画像を見てください。ユーザーグループ01で録画した番組や予約内容はグループ02とは完全に分離しています。グループ02のChinachuサーバーには家に転がっていたRaspberry Pi 2を利用します。Raspberry Pi 2にチューナーを接続せずに、メインサーバーのチューナーを利用するというわけです。
Mirakurun導入
Chinachu BetaでMirakurunを利用する場合、Rivarunを一緒に利用する必要がありますが、導入は非常に簡単です。公式ドキュメントが最もわかりやすいと思うのでここでは書きません。メインサーバーでMirakurun + Rivarun環境を構築して録画・視聴ができるようになったら先に進んでください。
Using Mirakurun with Rivarun on Chinachu Beta
本記事でのサーバー情報は例として
- Mirakurunのポートは ” 33333 “
- メインサーバーのIPは ” 192.168.1.2 “
- Raspberry Pi 2 のIPは ” 192.168.1.3 “
とでもしておきます。環境に合わせて読み替えてください
Raspberry Pi 2にChinachu + Rivarun 導入
Chinachu beta
やることはChinachuを導入する手順と同じです。
Raspbian Jessie を利用します。
sudo apt-get install build-essential curl git-core libssl-dev yasm libtool autoconf
必要パッケージを利用します。
git clone git://github.com/kanreisa/Chinachu.git ~/chinachu cd ~/chinachu/ ./chinachu installer
installメソッドは「Auto」を選択
node等のビルドがあります。ARMではかなり時間を要すので気長に待ちます。
cp config.sample.json config.json echo [] > rules.json
設定コピー
config.jsonの「tuners」項目は以下のように編集します。従来はrecpt1で録画を実行していたところをrivarunによって行い、–mirakurunオプションで、mirakurunが動作しているホストを指定します。
"tuners": [ { "name" : "PT3-S1", "isScrambling": false, "types" : [ "BS", "CS" ], "command" : "rivarun --b25 --mirakurun 192.168.1.2:33333 --priority 1 --sid <channel> - -" }, { "name" : "PT3-S2", "isScrambling": false, "types" : [ "BS", "CS" ], "command" : "rivarun --b25 --mirakurun 192.168.1.2:33333 --priority 1 --sid <channel> - -" }, { "name" : "PT3-T1", "isScrambling": false, "types" : [ "GR" ], "command" : "rivarun --b25 --mirakurun 192.168.1.2:33333 --priority 1 --sid <sid> --ch GR/<channel> - -" }, { "name" : "PT3-T2", "isScrambling": false, "types" : [ "GR" ], "command" : "rivarun --b25 --mirakurun 192.168.1.2:33333 --priority 1 --sid <sid> --ch GR/<channel> - -" }, { "name" : "FSUSB2", "isScrambling": false, "types" : [ "GR" ], "command" : "recfsusb2n -b <channel> - -", "noEpg" : true } ],
公式wikiでは自動起動の設定や動作チェックをしますがここでスキップしてRivarunを導入します。
Rivarun
nodejsで以下をインストール
sudo npm install pm2 -g sudo npm install arib-b25-stream-test -g --unsafe sudo npm install rivarun -g
これでOK
rivarun --mirakurun 192.168.1.2:33333 --b25 --sid 211 15 test.ts
これで録画が成功していればOKです。
Chinachu 動作チェック
Chinachuの設定の戻ります。
chinachuからrivarunが実行できて、かつrivarunがMirakurunサーバーに正しくリクエストを行えているかチェックします。やることは公式wikiと同じ
./chinachu service wui execute # 192.168.1.3をブラウザで叩いてUIが表示することを確認する ./chinachu update -f # EPG取得が始まる
Raspbian Jessieは systemdなので、公式Wikiのやり方ではサービス登録できません。
Chinachuインストール手順(CentOS 7編)—起動設定(systemd対応)
以上の記事でsystemdに登録するためのパッチ等が公開されています。jessieでも利用できますのでありがたく利用させていただきます。
視聴クライアントにはKodiを
KodiはRaspberry pi との親和性が非常に高いためRaspberry Pi単体での視聴はKodiが有効です。
Kodiの導入は過去の記事に書きましたが、今回は16.xを導入するのでまた改めて書いていきます。
sudo nano /etc/apt/sources.list.d/pipplware_jessie.list # 以下の1行を記述して保存 deb http://pipplware.pplware.pt/pipplware/dists/jessie/main/binary /
aptで入れるだけ
sudo apt-get install kodi
sudo nano /etc/default/kodi #設定を以下のように変える # Set this to 1 to enable startup ENABLED=1 # The user to run Kodi as USER=kodi # Adjust niceness of Kodi (decrease for higher priority) NICE=-9
最後にKodiの設定。再起動後にkodiが自動起動します。
kodiのChinachuクライアント
Kodiのchinachu pvrクライアントが開発中です。
https://github.com/mzyy94/pvr.chinachu
releaseからダウンロードしてもいいですが、ビルドしてみます。
cd /tmp git clone https://github.com/mzyy94/pvr.chinachu.git cd pvr.chinachu ./bootstrap ./configure make ls pvr.chinachu.*.zip
pvr.chinachu.2.0.1.zipのようなバージョン名込みのzipが出来上がります。
zipからプラグインをkodiに読み込ませるのは開発元のブログが最もわかりやすいです
Kodi Chinachu PVRアドオンでRasPi2/Android TVをテレビに
ついでに使い方も見ておきましょう
今後の課題
- ffmpeg, ffserver等がx86向け
- chinachu installerではffmpegはバイナリをDLするだけでビルドしません。Raspberry pi で利用する場合はffmpegが実行エラーを吐きます。このままではサムネイル取得やリアルタイムエンコードが利用できません(エンコードはそれ以前に性能的制限があります)。本格利用する場合は個別に構築し直す必要があります。
- kodi の性能不足
- kodiを利用する場合、Raspberry pi 2だとパフォーマンスが悪いです。チューナーに接続したまま放置するとハングアップする場合があります。これはサーバー本体のチューンアップを検討する必要があります
- 本当はPINE64でやりたかった
- CPUも動画性能も高いPINE64でやりたかったのですが、HDMIの動作がうまく行かず、断念しました。デバイス周りは未だにチューニング中とのことなので、しばらくしたらまたトライします。