k_piの雑記帳

個人的に困った点と、その解決法などをつらつら書き連ねた備忘録を兼ねたブログ

【2017/04/09追記】Mirakurun導入しようとしたら積んだ話 (便利なので稼働させたかった・・・

【Mirakurun導入の動機】

今まで、Raspberrypiでのrecdvbの予約にはcrontabを利用していたが、
野球中継などで番組が繰り下げになると無論追従できないのが面倒・不便だった。
Chinachuを導入すれば、繰り下げ追従もできるようだったが、
RaspberrypiへのNode.js最新版の導入など面倒臭いイメージがあったので避けていた。
しかし、多少時間ができたというのと、Chinachu γがリリースされたのを機に、Chinachuを導入してみることにした。

Chinachu γを導入するにあたっては、
Chinachu γはMirakurun依存型の設計になっていることから、
まず、Mirakurunを導入したが・・・。

【行った作業】

 

  1. dogeel氏バージョンのrecdvbの導入
    オリジナルのrecdvbでは、チャンネル・SIDの指定がrecpt1とは異なっているのだが、これがMirakurunを導入するにあたっては障壁となるので、各種指定をrecpt1に合わせているdogeel氏のrecdvbを導入する。
  2. 最新版node.jsの導入
    まず「apt-get purge nodejs nodejs-legacy nodered」で最新版とコンフリクトする旧バージョンを削除し、
    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt-get install -y nodejs
    を実行し、apt-getから最新版のnode.jsを落とせるようにする。
    (細かいこと抜くとsetup_6.xでは、
    apt-transport-httpsのインストール (場合によってlsb-release・curl)
    https://deb.nodesource.com/gpgkey/nodesource.gpg.keyをapt-keyでキーチェーンに追加
    /etc/apt/sources.list.d/nodesource.listの作成
    をしている。)
  3. Mirakurunと必要なパッケージをインストール

    sudo npm install pm2 -g
    sudo npm install mirakurun -g --unsafe --production
    でインストール

  4. mirakurunセットアップ
    sudo EDITOR=nano mirakurun config serverを実行し、
    port: 40772⇒適当なポート番号に変更
    sudo EDITOR=nano mirakurun config tunersを実行し、

    - name: PX-S1UD-1
    types:
    - GR
    command: recdvb --b25 --strip --dev 0 <channel> - -
    isDisabled: false

    - name: PX-BCUD-1
    types:
    - BS
    - CS
    command: recdvb --b25 --strip --dev 1 <channel> - -
    isDisabled: false

    を追記。
    また、/usr/local/etc/mirakurun/channels.ymlを
    Mirakurunのインストール手順(Ubuntu・Debian・CentOS) | 自分に負けないラボラトリー-3ページ
    を参考に設定。(2016/12/29現在、旅チャンネル⇒MONDOTVへの変更が反映されていないので、要修正)
    この後、sudo mirakurun restartでOK

【Mirakurunの動作確認】

Mirakurun導入後、Chinachuを入れる前に、Rivarunを導入し、
しばらく以下のようなコマンドをcrontabに記載して、毎日適当な時間に録画させて、
Mirakurunの動作を様子見してみた。
rivarun --priority 1 --ch GR/24 120 /home/pi/test_`date '+\%Y-\%m-\%d-\%H_\%M'`.ts

しかし、録画できている場合もあれば、できていないこともあり、結局前環境に戻した(´・ω・`)

録画できていないときは、tsファイルに、
{"code":503,"reason":"Tuner Resource Unavailable","errors":[]}
と書き込まれるのみで、どうやらpriority指定をしているにも関わらず、
Mirakurun内部のEPG取得処理に割り込みできていない・・・のか?
誰か教えてほしい(T_T)

【2017/04/09追記】

Mirakurun2.2.0を用いて再チャレンジ。
なお、「mirakurun config tuners」において、「--strip」を指定するのは推奨されないようなので、今回は削除した。
すると、上記の録画できないトラブルは発生しなかった。

ただし、BonDriver_Mirakurun+TVTestを用いてWindows機からBS・CSを視聴すると、MirakurunがTSFilterの処理中にデータがオーバーフローした旨のエラーを吐いて不安定化、または、動作が停止する。
恐らく、BS・CSでは、ネットワークに流すデータが多く、処理落ちしていると思われる。
現在、Mirakurun・BonDriver_Mirakurun共に、GitHub関連するIssueが上がっているので、今後は改善されるかもしれない。

続いて、Chinachu γのインストールを試みたが、インストール途中で、関連パッケージ「ref」のインストール時にビルドができないらしく入れることができなかった。
Chinachu βでは、導入事例が複数あるようだが、Chinachu γはRaspberryPiには難しいのか・・・?

現在、RaspberryPi3はARMv8のプロセッサーを積んではいるが、Raspbianでは互換性の関係からARMv7互換モードで動作させているので、Mirakurun・Chinachuの推奨環境からは外れている状態なので、正常に動作しなくても仕方がないといえる。

と、いうわけで、今回もMurakurun・Chinachuの導入は見送った。
今後の動向を見ながら、もう一度チャレンジしたいと思う。