読者です 読者をやめる 読者になる 読者になる

k_piの雑記帳

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

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)