*

Mirakurunのインストール手順(Ubuntu・Debian・CentOS)

  最終更新日:2017/03/08

Pocket

スポンサーリンク

Node.jsのインストール

 MirakurunはNode.jsのバージョン6.5以上7.0未満(2017年2月5日時点)が必要になります(現在の対応バージョンはMirakurunのReadmeで確認)。しかし、現状どのディストリビューションでも、それより古いバージョンのパッケージしか提供されていないようです。そこで、別の手順で最新版をインストールします。

Ubuntuの場合

$ sudo apt-get install -y nodejs npm
$ sudo npm cache clean
$ sudo npm install n -g
$ sudo n 6.9.5
$ sudo apt-get purge -y nodejs npm
$ sudo apt-get -y autoremove
$ node -v
  v6.9.5が表示されればOK

 こちらの手順は、seibe様の「Ubuntuに最新のNode.jsを難なくインストールする」の記事を参考にさせて頂きました。

Debianの場合

$ su -
# apt-get install -y nodejs npm
# npm cache clean
# npm install n -g
# n 6.9.5
# apt-get purge -y nodejs npm
# apt-get -y autoremove

一旦ログアウトし、ログインし直す

$ node -v
  v6.9.5が表示されればOK

CentOSの場合

$ su -
# curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
# yum -y install nodejs
# node -v
  v6.9.5 の様に"v7.0"未満が表示されればOK

 おそらく、UbuntuやDebianと同様にnpmのnパッケージをインストール後、yumのnodejsパッケージをアップデート除外する方法でも可能かと思います。しかし、確証がないため、CentOSのみ公式サイトの手順を紹介しました。

Mirakurunのインストール

インストール

 Mirakurunと必要なパッケージをインストールします。必ずrootユーザーで実行して下さい。Ubuntu基準で記載しているため、sudoを使用しない環境では先頭の”sudo”を除いて実行します。

$ sudo npm install pm2 -g
$ sudo npm install mirakurun -g --unsafe --production
$ sudo npm install rivarun -g
$ sudo npm install arib-b25-stream-test -g --unsafe

 この時点でMirakurunは既に動いています。以下のコマンドを実行して、動作中のプロセスが表示されれば成功です(以下はUbuntuでの実行例)。

$ ps ax|grep Mirakurun

 1267 ?        S<sl  46:16 Mirakurun: Server

設定

$ sudo mirakurun config 設定名

 Mirakurunの設定変更は上記の様なコマンドで行います。これは、”/usr/local/etc/mirakurun/”ディレクトリの下の設定ファイルをviエディタで開いているだけなので、直接編集することも可能です。設定ファイルの文字コードはUTF-8、改行コードはLFであれば問題ないようです。

$ sudo EDITOR=emacs mirakurun config 設定名

 なお、上記の様にEDITOR変数を指定すれば、vi以外のエディタも使用可能です。以降で個別の設定内容について説明します。

 設定に関して注意事項があります。エディタで編集するため、余計な文字が混じってしまい動作不良が起こることがあります。本記事末尾のコメント欄をご覧頂ければ分かりますが、「動かないけど原因が分からない」とよく問合せを受けます。Linux上で確認することが大変な場合、Windows PC上の多機能なエディタなどで確認をお願いします。

サーバ機能設定

$ sudo mirakurun config server

 下記が設定例です。

path: /var/run/mirakurun.sock

port: 12345

logLevel: 2

 3行目の”port:”の箇所のみ変更しています。デフォルトの”~”を削除し、使用していないTCPのポート番号を指定します。

チューナー設定

$ sudo mirakurun config tuners

 デフォルト設定はPT3、PT2、TSB-6922の3種類の内容が書かれています。長いのでPT3の設定例のみ紹介します。

- name: PT3-S1
  types:
    - BS
    - CS
  command: recpt1 --device /dev/pt3video0 --lnb 15 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT3-S2
  types:
    - BS
    - CS
  command: recpt1 --device /dev/pt3video1 --lnb 15 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT3-T1
  types:
    - GR
  command: recpt1 --device /dev/pt3video2 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT3-T2
  types:
    - GR
  command: recpt1 --device /dev/pt3video3 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

 デフォルト設定は全てのチューナーが無効になっているので、使用するチューナーだけ有効にします。PT3を使用する場合は、7、15、22、29行目を”isDisabled: false”にすれば有効になります。PT3やPT2を2枚挿し以上している場合、デフォルトの設定内容に合わせて設定を追加します。

 なお、recpt1コマンドオプションの”–lnb 15”はBS/CSチューナーの15V給電なので、今まで指定せずに問題なく動作している場合は削除して良いです。

チャンネル設定

$ sudo mirakurun config channels

 デフォルトのチャンネル設定では特にCSの設定がほとんど書かれていないので、サンプルを用意しました。こちらからダウンロードして下さい。東京スカイツリーを使用する関東の地デジ、BS/CSの全局を網羅しています。

- name: WOWOWプライム
  type: BS
  channel: BS03_0
  serviceId: 191
  isDisabled: true <-- ここをfalseにすれば有効になる

 サンプルでは有料チャンネルを無効にしています(上記例の5行目”isDisabled: true”がそれ)。ここを局ごとに”false”にすれば有効になります。

 地デジ設定は現在住んでいる地域に合わせて変更して下さい(参考:マスプロの地上デジタル放送 チャンネル一覧表

動作確認

 設定が全て完了したらMirakurunを再起動します。

$ sudo mirakurun restart

 しばらく待てばMirakurunのEPG情報が更新されます(10分以内)。チャンネル設定で設定した局の情報が受信できているかをrivarunコマンドで確認します(見づらいのでsedで改行してます)。

$ rivarun --list | sed 's/},/},\n/g'

実行例)
--------------------------------------------------
status: 200
headers: {"server":"Mirakurun/1.3.2","content-type":"application/json; charset=utf-8","date":"Wed, 25 May 2016 21:24:27 GMT","connection":"close","content-length":"12818"}
[{"type":"GR","channel":"27","name":"NHK総合・東京","services":[{"id":3273601024,"serviceId":1024,"networkId":32736,"name":"NHK総合1・東京"},
{"id":3273601025,"serviceId":1025,"networkId":32736,"name":"NHK総合2・東京"},
{"id":3273601408,"serviceId":1408,"networkId":32736,"name":"NHK携帯G・東京"}]},
{"type":"GR","channel":"26","name":"NHK Eテレ東京","services":[{"id":3273701032,"serviceId":1032,"networkId":32737,"name":"NHKEテレ1東京"},
{"id":3273701033,"serviceId":1033,"networkId":32737,"name":"NHKEテレ2東京"},
{"id":3273701034,"serviceId":1034,"networkId":32737,"name":"NHKEテレ3東京"},
{"id":3273701416,"serviceId":1416,"networkId":32737,"name":"NHK携帯2"}]},

(以降略)

 受信が出来ていない場合、このrivarunコマンドの応答が返って来ません。更にEPG更新が完了しているか確認します。

$ rivarun --list | sed 's/},/},\n/g'  | grep -v serviceId

 以下の様にservicesが空欄の行が表示されると
 EPGが更新できていない放送局があります。

   {"type":"BS","channel":"BS07_2","name":"BSアニマックス","services":[]},
   {"type":"BS","channel":"BS07_3","name":"ディズニー・チャンネル","services":[]},

 EPG更新が完了していれば、上記のような行は表示されません。

 EPG更新完了を確認したら、続いて録画確認を行います。

$ rivarun --b25 --sid 1024 --ch GR/27 15 test.ts

 上記は関東でNHK総合1を15秒間録画するコマンドです。成功すれば”status: 200”と表示され録画が開始されます。400や404が表示されると設定か引数に問題があります。なお、この番号はChinachu REST APIのエラーコードと同じものと思われます。

 コマンドオプションについて説明します。”–sid”はサービスIDです。これは、先程実行した”rivarun –list”コマンドの実行結果から分かります。「”serviceId”:1024」の箇所です。

 ”–ch”はチャンネル番号です。これは、”sudo mirakurun config channels”で設定したチャンネル番号です。同じく”rivarun –list”コマンドでも確認できます。

 コマンドオプションの詳細については”rivarun –help”を実行して確認して下さい。

 録画ファイルの”test.ts”はVLC media playerなどで再生確認して下さい。

 先ほどの確認はMirakuruにUnixソケットで接続した時の確認になります。同様にTCP接続した時の確認を行います。

$ rivarun --b25 --mirakurun localhost:12345 --sid 1024 --ch GR/27 15 test2.ts

 ”12345”の箇所はサーバ機能設定で指定したポート番号に置き換えて実行して下さい。これが成功すれば、外部からrivarunコマンドで録画することが出来ます。

 最後にBSとCSの録画例についても紹介します。

# NHK BS1
  $ rivarun --b25 --sid 101 --ch BS/BS15_0 15 test3.ts

# ショップチャンネル
  $ rivarun --b25 --sid 55 --ch CS/CS8 15 test4.ts

ログ出力を捨てる

 Mirakurunはあらゆる動作をログ出力しているようで、ログファイルが巨大になります。私の環境でも気付くとログファイルの合計サイズが3GBにもなっていました。そこで、通常動作のログのみ記録しないようにします。

 以降はMirakurunが安定動作するようになった事を確認した後に実行して下さい。

$ cd /usr/local/var/log/
$ sudo mirakurun stop
$ sudo rm mirakurun.stdout.log
$ sudo ln -s /dev/null mirakurun.stdout.log
$ sudo mirakurun start

 ここで行っている内容は、ログファイル”mirakurun.stdout.log”を削除して、代わりの出力先として”/dev/null”を指定しています。”/dev/null”に送られたデータは、ブラックホールのように吸い込んで何も返さないので、今回はゴミ箱として利用しています。この手順を実行してもエラーログは記録されるので、実用上は問題ないはずです。

 もし、通常動作ログを見たくなったら、”mirakurun.stdout.log”を削除してMirakurunを再起動すれば可能になります。

アップデート

 Mirakurunをアップデートする場合、次のコマンドを実行して下さい。スクリプトにしておくと便利です。

$ sudo mirakurun stop
$ sudo npm update rivarun -g
$ sudo npm install mirakurun@latest -g --unsafe --production
$ sudo mirakurun start

Chinachu γ(ガンマ)でMirakurunを使う

 Chinachu γではMirakurunを使用することが前提になっています。以下の記事でChinachu γのインストール手順を説明していますので、続きはそちらをご参照下さい。

Mirakurunが正常に動かない場合

 ここまでの説明通りに実行したのにMirakurunが正常に動かない場合、以下のことを確認して下さい。

・本当に記事通りに実行しましたか?

$ history

 ヒストリーコマンドで今までの実行内容を表示します。
 インストール漏れなど無いか今一度確認して下さい。

・Mirakurunの状態の確認

$ sudo mirakurun status

 正常なら’status’の箇所が’online’になっているはずです。

・Unixソケットファイルが存在するかの確認

$ ls -l /var/run/mirakurun.sock

 正常なら以下の様に誰でもアクセス可能な状態で存在しています。
 srwxrwxrwx 1 root root 0 6月 19 09:01 /var/run/mirakurun.sock=

・ログ確認

$ sudo mirakurun log server

 上記コマンドだと限定的な範囲しか見れないので、
 より詳細を見たい場合、
 /usr/local/var/log/ にあるログファイルを直接参照して下さい。

$ ls -lrt /usr/local/var/log/

 上記コマンドで古いファイル順に一覧表示されます。
 新しいログファイルから確認しましょう。

・設定ファイルの確認
 サーバ機能設定は、行数が少ないので問題が起こる可能性は低いです。

 チューナー設定は、コマンド名やデバイス名の書き間違いなどを確認しましょう。

 チャンネル設定は、余計な文字が混じっている可能性があります。
 ファイル内のチャンネル数を減らし、映らない原因を探りましょう。
 例えば、BSが映らないなら、NHK BS1のみ設定してみるなどです。

・それ以外の問題
 - 録画チューナーの設定に問題がある(ドライバ、BCAS等)
 - recpt1コマンドで録画できない
 - アンテナレベルが低い