録画サーバ構築(2)
事前作業
チューナーサーバ(Mirakurun)のインストール
チューナーサーバ Mirakurun をインストールしていく。
これにより、録画コマンドの並列処理や、複数チューナーの管理、優先度処理が可能になる。今回使うMirakurunでは、apiを使って多くの処理を簡略化できるため後々の拡張性が高い。
Node.js のインストール
最初に Mirakurun を動かすために必要な Node.js をインストールする。npmをインストールをしている場合が多いが、Node.jsだけでも十分とのこと。
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - $ sudo apt-get install nodejs
Mirakurun のインストール
$ sudo npm install pm2 -g $ sudo pm2 startup $ sudo npm install mirakurun -g --unsafe --production
チューナーの設定
Mirakurunがチューナーを認識するよう設定を加える。
Mirakurunがインストールされると、/usr/local/etc/mirakurunに3つの設定ファイルが生成される。
設定が必要なのは、tuners.ymlとchannels.ymlの2つ。
tuners.ymlでは、チューナーの設定を行う。
$ sudo mirakurun config tuners
末尾に下記を追記する。
- name: PX-S1UD-1 types: - GR command: recdvb --b25 --strip <channel> - -
尚、今回使用した PX-S1UD V2.0 は 1チューナーなので 1つだけで大丈夫だが、PX-Q1UD の場合は 4チューナーあるので4つ設定が必要となる。
- name: PX-Q1UD-1_1 types: - GR command: recdvb --b25 --strip --dev 0 <channel> - - - name: PX-Q1UD-1_2 types: - GR command: recdvb --b25 --strip --dev 1 <channel> - - - name: PX-Q1UD-1_3 types: - GR command: recdvb --b25 --strip --dev 2 <channel> - - - name: PX-Q1UD-1_4 types: - GR command: recdvb --b25 --dev 0 <channel> - -
次に、チャンネルスキャンを実施する。channels.yml に電波塔に応じた物理チャンネル番号を登録する。
channels.yml を手動更新しても良いが、下記 Mirakurun の channels scan API でスキャンするのが簡単なためこちらで実行する。
$ curl -X PUT "http://localhost:40772/api/config/channels/scan"
これでMirakurunの設定が完了したので、Mirakurun を再起動する。
$ sudo mirakurun restart -> status に onlineと表示されればok
設定確認
チャンネルが正しく設定されていることをブラウザ or curlコマンドで確認する。
$ curl http://[IPアドレス]:40772/api/channels ~中略~ ...,{"type":"GR","channel":"21","name":"フジテレビ","services":[{"id":3274001056,"serviceId":1056,"networkId":32740,"name":"フジテレビ"},{"id":3274001057,"serviceId":1057,"networkId":32740,"name":"フジテレビ"},{"id":3274001058,"serviceId":1058,"networkId":32740,"name":"フジテレビ"},{"id":3274001440,"serviceId":1440,"networkId":32740,"name":"フジテレビ"}]},... ~中略~
結果がこんな感じで返ってくればチャンネル登録はOK。
補足
この時点で recdvbコマンドを打たなくてもブラウザ経由でのリアルタイムストリーミング配信ができるようになる。視聴方法はrecdvbと変わらないが、URLが下記に変更される。
http://[IPアドレス]:40772/api/channels/GR/[物理チャンネル]/stream
録画サーバ(Chinachu)のインストール
GUIで番組表からの録画予約をできるようにする。
録画サーバ Chinachu は、地デジ波から最新の番組表データを取得でき、ブラウザから録画予約ができるため、市販レコーダーのような操作が可能となる。
# 事前に必要なパッケージをインストールする $ sudo apt-get install build-essential curl git-core vainfo # Chinachuをインストールする $ git clone git://github.com/kanreisa/Chinachu.git ~/chinachu $ cd ~/chinachu/ $ ./chinachu installer -> インストールオプションは、1.Autoを選択する # 録画ルールの初期ファイルを作成 # 作成しない場合はアニメと笑点辺りを自動で録画するルール(rules.sample.json)が設定される $ echo "[]" > rules.json # 録画設定ファイルの作成・編集する $ cp config.sample.json config.json $ vim config.json "uid": "pi" "recordedDir" : "/mnt/hdd1/recorded/", "temporaryDir" : "/mnt/hdd1/recorded/", ~中略~ "wuiOpenHost": "0.0.0.0", ~中略~ "recordedFormat": "[<date:yymmdd-HHMM>][<channel-name>]<title> <subtitle> <episode:2>.m2ts",
設定が完了したので、Chinachuを起動する。
$ cd ~/chinachu $ ./chinachu service wui execute # 起動できたら一度 [ctrl + c] で停止し、EPG(番組表)の取得テストを行う $ ./chinachu update # Chinachuを起動する $ ./chinachu service wui execute
ブラウザで動作確認する。
http://[IPアドレス]:20772/
下記のようなページが取得できれば成功。
先のwuiの起動で、ページ表示、録画予約、設定ファイルの更新などができるようになった一方で、実際に録画処理を実行するにはこれとは別にoperatorを起動する必要がある。
もう一つターミナルを開き、operatorを起動する。
$ cd ~/chinachu $ ./chinachu service operator execute
これでサーバの構築は完了。