SAMPLE GALLERY

エディタの設定
このサイトを参考にしています

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

sudo EDITOR=nano mirakurun config 設定名
 なお、上記の様にEDITOR変数を指定すれば何でもOK。ubuntuの場合はデフォルトでnanoです
(普段使用していない'vi'が立ち上がったら ':quit' で逃げましょう)

Node.jsのインストール

OSはubuntu:18.04.4 LTS(以前server18.04.3LTSでも動かしました)
TVチューナーカード:アースソフトPT2

もし、インストール済みならこの手順で削除します
Node.jsのバージョンはMirakuruのバージョンアップによって変わってきます
ここでバージョン・各種インストール情報がわかります

2020-3-30現在、下記の内容でした
--------------こちらのほうが簡単にインストールが出来ました-----------------
Node.js ^8.17.0 < 9 || ^10.15.0 < 11 || ^12.14.0 < 13
PM2 >=2.4.0

Node.jsのバージョン12をインストール(変更が出来るようにする)
sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
n package を導入します
sudo npm install n -g
n package を使って node をインストール
sudo n stable
別のバージョンを入れたいとき
sudo n 12.14.1
バージョン確認
node -v

PM2のインストール
sudo npm install pm2 -g

Mirakurunのインストール/更新
sudo npm install mirakurun -g --unsafe-perm --production
sudo npm install mirakurun -g --production
sudo mirakurun init # to install as service
sudo mirakurun restart # when updatedAdvanced

rivarunのインストール・各種設定に続く

---------------ここまで 以下は参考に------------------

Mirakurunのアンインストール
sudo npm uninstall mirakurun -g --unsafe-perm
PM2 をアンインストール (Mirakurun 以外が動いている場合は実行しない)
sudo pm2 kill
sudo pm2 unstartup
sudo npm uninstall pm2 -g

デフォルトのパス
/usr/local/etc/mirakurun/ -構成
    server.yml
    tuners.yml
    channels.yml
/usr/local/var/db/mirakurun/ -データベース
    services.json
    programs.json
/usr/local/var/log/mirakurun.stdout.log -通常のログ
/usr/local/var/log/mirakurun.stderr.log - エラーログ
/use/local/bin/ チャンネル自動設定スクリプトで使用
arib-b25-stream-test b25 checksignal epgdump
mcconfig.pl mirakurun mirakurun-epgdump
npm npx node
pm2 pm2-docker pm2-runtime pm2-dev
rivarun recpt1 recpt1ctl

Mirakurunのインストール(v 2.13.0)

ログの管理で使う'pm2' : >=2.4.0
ここでは最新バージョンを入れてみた
sudo npm install pm2 -g
バージョン指定する場合
sudo npm install -g pm2@2.6.0
最新に更新(v 4.2.1)
sudo npm install pm2@latest -g
sudo pm2 update
---------------------------

一応バージョン確認
npm info pm2 versions
---------------------------end

Mirakurun(2.13.0)のインストール
sudo npm install mirakurun -g --unsafe --production
---------------------------
ここでもエラー・警告が出た
[PM2][ERROR] Process or Namespace mirakurun-server not found
child_process.js:644
throw err;
^

Error: Command failed: pm2 stop mirakurun-server
at checkExecSyncError (child_process.js:601:13)
at execSync (child_process.js:641:13)
at Object. (/usr/local/lib/node_modules/mirakurun/bin/preuninstall.js:29:5)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:188:16)
npm WARN lifecycle mirakurun@2.13.0~preuninstall: continuing anyway mirakurun@2.13.0 preuninstall: `node bin/preuninstall.js`
npm WARN lifecycle Exit status 1

わからないので、そのまま続行

namemodestatuscpumemory---
mirakurun-serverfork0online00%25.9mb
status:clusterともでるが意味がよくわからない
-------------失敗でやり直し--------------
削除の手順をテキストで表示
statusがforkになっていると失敗なのでやり直しをしましょう
ミラクルを削除して、npmを削除、nodejsを削除
sudo npm uninstall mirakurun -g –unsafe
sudo apt-get purge -y nodejs npm
sudo rm -R /usr/local/n/versions/node
(または sudo rm -R /usr/lib/node_modules/npm)
sudo apt-get remove --purge nodejs
'.npm','.pm2'ホーム隠しディレクトリを削除する
sudo rm -f -r .npm
sudo rm -f -r .pm2
やり直し↑
---------------------------end

Mirakurunはチューナーをネットワーク経由で開放し、rivarunはMirakurunのapi経由でチューナーを利用することができる
これによりMirakurunサーバは放送波を返すだけに単機能化され、クライアント側のrivarunで放送波をデコードするみたいなことが可能。チューナーサーバと録画サーバを分離することができる

rivarunのインストール
sudo npm install rivarun -g
sudo npm install arib-b25-stream-test -g --unsafe
警告が出る時もある
td.c:38:6: warning: variable ‘n’ set but not used [-Wunused-but-set-variable]
int n;
ん〜 素人にはわからない。このまま続行

この時点でMirakurunは既に動いています。以下のコマンドを実行して、Mirakurunのstatusが”online”なら正常起動しています

sudo pm2 status
nameidmodestatuscpumemory---
mirakurun-server0forkonline010%44.5MB
statusがclusterになっている。読み込み途中なのかな。時間を置いてチャレンジ。同じでした。意味がわからない

サーバ機能設定

”/usr/local/etc/mirakurun/”ディレクトリの下の設定ファイルserverをエディターで編集
server設定
sudo EDITOR=nano mirakurun config server
下記が設定内容です。デフォルトのままで良い
# logLevel: <number>
logLevel: 2

# path: <string>
path: /var/run/mirakurun.sock

# port: <number>
# You can change this if port conflicted.
# Don't expose this port on the internet, not even with NAPT.
# Use this in LAN or VPN.
# `~` to disable TCP port listening.
port: 40772

チューナー設定

tuners設定(関東圏)
sudo EDITOR=nano mirakurun config tuners

PT2のチューナ設定を表示,ダウンロード
PX-W3PE4のチューナ設定を表示,ダウンロード

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

チャンネル設定

channels設定(関東圏)
sudo EDITOR=nano mirakurun config channels

地デジ・BS・CS設定ファイルを表示
地デジ・BS設定ファイルを表示
ダウンロード
 Mirakurun ver2.1から地上波のみ、下記コマンドでチャンネルスキャンできるようになっています。なお、1回の実行に10分以上かかるので、気長に待つ必要があります

動作確認・他

動作確認
設定が全て完了したらMirakurunを再起動します。
sudo mirakurun restart
*10分は待ちましょう!!
MirakurunのEPG情報が更新されます(10分以内)。チャンネル設定で設定した局の情報が受信できているかをrivarunコマンドで確認します(見づらいのでsedによる置換で改行してます)。

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

成功したら次の項目。録画テストです
失敗した時
諦めて全削除する
削除の手順をテキストで表示
*データが空("services":[]。[]のなかに何も入っていない)
statusが200だけどデータがない。各設定ファイルを見直しましょう(これでダメなら全削除してやり直したほうが早いかも)
----------------------------------
status: 200
headers: {"server":"Mirakurun/2.14.0","content-type":"application/json;
charset=utf-8","date":"Sun, 29 Mar 2020 08:09:24
GMT","connection":"close","content-length":"1043"}
[{"type":"GR","channel":"27","name":"NHK G","services":[]},
{"type":"GR","channel":"26","name":"NHK E","services":[]},
{"type":"GR","channel":"25","name":"NTV","services":[]},
{"type":"GR","channel":"24","name":"EX","services":[]},
{"type":"GR","channel":"22","name":"TBS","services":[]},
----------------------------------

*ソケットがないとか言われる
チャンネル設定を間違えてもこのエラーが出る。設定ファイルの見直しが重要です
ミラクルのステータスはOKか。ソケットはあるか
sudo mirakurun status
ps aux | grep mirakurun
ls -l /var/run/mirakurun.sock
------------------------------------
下記のようなエラーがでました
Error: connect ECONNREFUSED /var/run/mirakurun.sock
確認作業手順
・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 server

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

・設定ファイルの確認
設定ファイルに問題があるとすれば、サーバ機能設定だと思います
全角空白など変な文字が入っていないか確認して下さい
また、/usr/local/etc/mirakurun/ディレクトリの下の3つの設定ファイルが
ご自身で設定した内容と同じであることも確認して下さい

*server設定
sudo EDITOR=nano mirakurun config server
*tuners設定
sudo EDITOR=nano mirakurun config tuners
*channels設定
sudo EDITOR=nano mirakurun config channels

------------------------------------
設定ファイルを確認する
アップデートをしてみる
sudo npm install mirakurun@latest -g –unsafe –production

やり直す。全削除をします
削除の手順をテキストで表示
ミラクルを削除して、npmを削除、nodejsを削除
sudo npm uninstall mirakurun -g –unsafe-perm
sudo rm /usr/local/etc/mirakurun/*.yml
sudo apt-get purge -y nodejs npm
sudo rm -R /usr/local/n/versions/node
(または sudo rm -R /usr/lib/node_modules/npm)
sudo apt-get remove --purge nodejs
'.npm','.pm2'ホーム隠しディレクトリを削除する
sudo rm -f -r .npm
sudo rm -f -r .pm2


実行例)
--------------------------------------------------
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更新が完了していれば、下記のような内容だけ表示されます。

headers: {"server":"Mirakurun/2.5.5","content-type":"application/json; 以下略}


  EPG更新完了を確認したら、続いて録画確認を行います
録画に失敗した時、PT2録画ドライバーを確認する
ls -la /dev/pt*video*
*****MirakuruにUnixソケットで接続*****
rivarun --b25 --sid 1024 --ch GR/27 15 test.ts

上記は関東でNHK総合1を15秒間録画するコマンドです。成功すれば”status: 200”と表示され録画が開始されます。400や404が表示されると設定か引数に問題があります。なお、この番号はChinachu REST APIのエラーコードと同じものと思われます。
*****MirakuruにTCPで接続*****
rivarun --b25 --mirakurun localhost:40772 --sid 1024 --ch GR/27 15 test2.ts
 ”40772”の箇所はサーバ機能設定で指定したポート番号です(デフォルトは40772)。これが成功すれば、外部からrivarunコマンドで録画することが出来ます。

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

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

  ログローテーション設定
Mirakurunはログ出力が多いので、ログファイルが巨大になります。”pm2-logrotate”をインストールして世代管理するようにします。
sudo pm2 install pm2-logrotate

続いて設定ファイルを作成
sudo nano /etc/logrotate.d/mirakurun

設定ファイルの中身は以下をコピペして下さい(ダブルクリックで選択状態にしてCtrl+Cでコピー可)。毎日ログを圧縮して1週間分保存する設定です。

/usr/local/var/log/mirakurun.stdout.log
/usr/local/var/log/mirakurun.stderr.log
/{
daily
compress
rotate 7
missingok
notifempty
}

アップデート
Mirakurunをアップデートする場合、次のコマンドを実行して下さい。スクリプトにしておくと便利です。
sudo mirakurun stop
sudo npm update rivarun -g
sudo npm install mirakurun@latest -g --unsafe --production
sudo mirakurun start

inserted by FC2 system