⚠この記事はブログ移転前のアーカイブです

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を動作させてしまおうというのが記事の趣旨です。

名称未設定2

 

説明しづらいので画像を見てください。ユーザーグループ01で録画した番組や予約内容はグループ02とは完全に分離しています。グループ02のChinachuサーバーには家に転がっていたRaspberry Pi 2を利用します。Raspberry Pi 2にチューナーを接続せずに、メインサーバーのチューナーを利用するというわけです。

Mirakurun導入

Chinachu BetaでMirakurunを利用する場合、Rivarunを一緒に利用する必要がありますが、導入は非常に簡単です。公式ドキュメントが最もわかりやすいと思うのでここでは書きません。メインサーバーでMirakurun + Rivarun環境を構築して録画・視聴ができるようになったら先に進んでください。

Mirakurun – Install

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の動作がうまく行かず、断念しました。デバイス周りは未だにチューニング中とのことなので、しばらくしたらまたトライします。