*

Chinachu γ(ガンマ) インストール手順(CentOS 7編)

  最終更新日:2018/08/03

How to install Chinachu Gamma on CentOS 7

 CentOS 7にChinachu γ(ガンマ)をインストールする手順を説明します。

スポンサーリンク

はじめに

 本記事は以下の2つ記事の内容を実行済みであることを前提に説明します。

 上記記事の内容を実行していない場合、先にそちらをご参照下さい。

 なお、実行ユーザーを区別するため、シェルのコマンド表記は以下の様にしています。

[user@centos]$ 一般ユーザーとして実行
[root@centos]# rootとして実行
[chinachu@centos]$ ユーザーchinachuとして実行

Chinachu β(ベータ)からγ(ガンマ)にアップデート

 新規インストールする場合、この節は読み飛ばして下さい。Chinachu βからγへのアップデート方法を先に説明します。手順は次の通りです。

  1. Chinachu βを停止
  2. Mirakurunをインストール・設定(別記事)
  3. Chinachu γにアップデート(本記事)

 Mirakurunが正常に動いていない状態でアップデートする事は絶対におすすめしません。なぜならMirakurunのインストールが難しいため、先にアップデートしてしまうと元に戻せない可能性があるからです。

 アップデートの前に現在動いているChinachu βを停止し、起動しないようにします。

[root@centos]# systemctl disable chinachu-operator
[root@centos]# systemctl disable chinachu-wui

 それでは、Chinachu βからγへとアップデートします。Chinachuを実行しているユーザーで以下のコマンドを実行して下さい。実行ディレクトリはChinachuのインストールディレクトリです。

[chinachu@centos]$ git fetch
[chinachu@centos]$ git checkout gamma
[chinachu@centos]$ ./chinachu installer

    Chinachu Installer Menu:
    [!] These are installed under all /home/chinachu/chinachu/...
    [!] Recommend the Auto installation.
    1) Auto (full)          3) Node.js Environment  5) ffmpeg
    2) submodule            4) Node.js Modules
    what do you install? > 1 ← "Auto (full)"を選択

 この後の作業ですが、”config.json”を作り直し、Chinachu γとして再起動すれば完了です。自動起動する方法がβとは異なります。その方法とγの”config.json”については、以降で説明しています。

 アップデート方法の詳細については、公式ページをご確認下さい。

Chinachu

 新規インストールの説明はここからです。

 本記事ではChinachu専用のユーザーchinachuを作成して作業します。また、普段使用しているユーザーでそのまま作業しても特に問題ありません(個人的にはユーザー管理が面倒なので、普段のユーザーで可)。ただし、rootをChinachu専用ユーザーにはしないで下さい。

Chinachuインストール

[root@centos]# useradd chinachu
[root@centos]# su - chinachu
[chinachu@centos]$ git clone -b gamma git://github.com/kanreisa/Chinachu.git ~/chinachu
[chinachu@centos]$ cd ~/chinachu
[chinachu@centos]$ ./chinachu installer

    Chinachu Installer Menu:
    [!] These are installed under all /home/chinachu/chinachu/...
    [!] Recommend the Auto installation.
    1) Auto (full)          3) Node.js Environment  5) ffmpeg
    2) submodule            4) Node.js Modules
    what do you install? > 1 ← "Auto (full)"を選択

設定ファイル作成

 インストール完了後、録画予約用の空ファイルを生成しておきます。

[chinachu@centos]$ echo "[]" > rules.json

 続いてChinachuの設定ファイルを作成します。

[chinachu@centos]$ cp config.sample.json config.json
[chinachu@centos]$ vi config.json

 矢印”<---”で示している箇所に注意して編集します。

{
  "uid": "chinachu", <--- nullを変更、実行ユーザー名を指定
  "gid": "video",
  "mirakurunPath": "http+unix://%2Fvar%2Frun%2Fmirakurun.sock/",

  "recordedDir" : "./recorded/", <--- 録画用ディレクトリ、必要なら変更

  "vaapiEnabled": false,
  "vaapiDevice": "/dev/dri/renderD128",

  "excludeServices": [
    3273701416,
    3232728088,
    3273901183,
    3274201456,
    3239123992,
    3239123993,
    3273601408
  ],

  "serviceOrder": [
    3273601024,
    3273601025,
    3273701032,
    3273701033,
    3273701034
  ],

  "wuiUsers": [
    "chinachu:yoshikawa"
  ],
  "wuiAllowCountries": ["JP"],

  "wuiPort": null,
  "wuiOpenHost": "0.0.0.0", <--- wuiHostからwuiOpenHostに名前変更 
  "wuiTlsKeyPath": null,
  "wuiTlsCertPath": null,
  "wuiTlsRequestCert": false,
  "wuiTlsRejectUnauthorized": true,
  "wuiTlsCaPath": null,
  "wuiOpenServer": true,
  "wuiOpenPort": 20772, <--- 接続ポート番号、必要なら変更
  "wuiXFF": false,
  "wuiDLNAServerEnabled": false,
  "wuiMdnsAdvertisement": true,

  "recordedFormat": "[<date:yymmdd-HHMM>][<type><channel>][<channel-name>]<title>.m2ts",
  "storageLowSpaceThresholdMB": 3000,
  "storageLowSpaceAction": "remove",
  "storageLowSpaceNotifyTo": null,
  "storageLowSpaceCommand": ""
}

 2行目の”uid”はデフォルトのnullから実行ユーザー名に変更が必要です(ユーザーIDでも可)。記事通りに作業している場合、ユーザーchinachuで実行しているはずなので、ここは”chinachu”に変更します。

 4行目の”mirakurunPathは、通常はデフォルトのままで良いです。ただし、Mirakurunのサーバ機能設定で”/var/run/mirakurun.sock”以外に変更している場合、こちらも変更する必要があります。ちなみに、”%2F”は文字コードの”/”を意味します。

 6行目の”recordedDir”は、末尾が”/”で終わるようにして下さい。

 35行目は変数名を変更して下さい。本来ここは変更する必要はないようなのですが、私の環境では”wuiOpenHost”の変数を書いておかないと駄目でした。”wuiHost”は廃止予定の変数なので、無くても問題ありません。

 その他の設定値については、公式ページの設定リファレンスをご確認下さい。

 少しだけ補足すると11行目の”excludeServices”は除外するサービス(チャンネル)の設定です。例えばワンセグなどのチャンネルを対象外とする設定のようです。デフォルト設定の内容は東京近郊の設定なので地方在住の方には全く意味の無い内容です。21行目の”serviceOrder”もサービス(チャンネル)の並び順設定ですが、こちらも東京近郊の設定内容になっています。これらは変更せず放置でも問題ないようです。

ログローテーション設定

 Chinachuのログファイルは何もしないと延々と肥大化するので、”pm2-logrotate”をインストールして世代管理するようにします(Mirakurunの設定でインストール済みのはず)。

[chinachu@centos]$ su
[root@centos]# pm2 install pm2-logrotate

続いて設定ファイルを作成

[root@centos]# vi /etc/logrotate.d/chinachu

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

/usr/local/var/log/chinachu-operator.stderr.log
/usr/local/var/log/chinachu-operator.stdout.log
/usr/local/var/log/chinachu-wui.stderr.log
/usr/local/var/log/chinachu-wui.stdout.log
{
  weekly
  compress
  rotate 4
  missingok
  notifempty
}

起動設定

 Chinachuのサービスが正常に起動するかどうかを確認します。実行結果として以下のように表示されれば成功です。

[chinachu@centos]$ ./chinachu service operator execute

    Client {
      basePath: '/api',
      priority: 2,
      host: '',
      port: 40772,
      socketPath: '/var/run/mirakurun.sock',
      userAgent: 'Chinachu/0.9.5-gamma.0 (operator)',
      _userAgent: 'MirakurunClient/2.0.0-rc.12 Node/v6.9.2 (linux)' }
    19 Jan 21:47:10 - READ: `/home/chinachu/chinachu/data/reserves.json` is updated.
    19 Jan 21:47:10 - READ: `/home/chinachu/chinachu/data/recorded.json` is updated.

  Ctrl+Cで抜ける

 続いてpm2を使ってChinachuを自動的に起動するように設定します。ここからはrootになって実行します。

[chinachu@centos]$ su
[root@centos]# pm2 start processes.json

実行結果例) ※右端一部省略
  │ App name          │ id │ mode │ pid   │ status │ 
  ├───────────────────┼────┼──────┼───────┼────────┼ 
  │ chinachu-operator │ 3  │ fork │ 20883 │ online │
  │ chinachu-wui      │ 2  │ fork │ 20817 │ online │
  │ mirakurun-server  │ 1  │ fork │ 4025  │ online │
  └───────────────────┼────┼──────┼───────┼────────┼ 

 chinachu-operatorとchinachu-wuiのstatusが両方とも”online”ならサービスの起動に成功しています。”stopped”などになっていると失敗です。

 また、一見成功しているように見えて、しばらくするとサービスが停止していることがあります。10秒程度待って、下記のコマンドを実行して再度確認して下さい。

[root@centos]# pm2 status

 この時も”online”なら問題ありません。もし”stopped”になっている場合は設定を再確認後、下記のようにサービスを再起動して下さい。

[root@centos]# pm2 restart chinachu-wui chinachu-operator

もしくは`pm2 status`で表示されるidを指定でも可能

[root@centos]# pm2 restart 2 3

 ここまで特に問題なければPC起動時にサービスが起動するように保存します。

[root@centos]# pm2 save

 続いてEPG取得のテストを行います(ユーザーchinachuで実行)。以下のように表示され、正常終了すれば成功です。おそらく10秒もかからないはずです。

[root@centos]# exit
[chinachu@centos]$ ./chinachu update

    Client {
      basePath: '/api',
      priority: 0,
      host: '',
      port: 40772,
      socketPath: '/var/run/mirakurun.sock',
      userAgent: 'Chinachu/0.9.5-gamma.0 (scheduler)',
      _userAgent: 'MirakurunClient/2.0.0-rc.12 Node/v6.9.2 (linux)' }
    19 Jan 21:48:26 - GETTING EPG from Mirakurun.
    19 Jan 21:48:27 - Mirakurun is OK.
    19 Jan 21:48:27 - Mirakurun -> services: 117
    19 Jan 21:48:28 - Mirakurun -> programs: 24843
    19 Jan 21:48:29 - Mirakurun -> tuners: 4
    19 Jan 21:48:29 - WRITE: /home/chinachu/chinachu/data/schedule.json
    19 Jan 21:48:29 - RUNNING SCHEDULER.
    19 Jan 21:48:29 - TUNERS: {"BS":2,"CS":2,"GR":2}
    19 Jan 21:48:29 - MATCHES: 0
    19 Jan 21:48:29 - DUPLICATES: 0
    19 Jan 21:48:29 - CONFLICTS: 0
    19 Jan 21:48:29 - SKIPS: 0
    19 Jan 21:48:29 - RESERVES: 0
    19 Jan 21:48:29 - WRITE: /home/chinachu/chinachu/data/reserves.json

ページアクセス

 ブラウザからChinachuにアクセスします。URLは”http://録画サーバのIPアドレス:接続ポート番号”です。ここの接続ポート番号はconfig.jsonの”wuiOpenPort”で指定する番号です。デフォルト設定では”http://192.168.0.1:20772”の様に入力します。

 この段階で番組表が正常に表示されていれば設定完了です。

 色々と抜けがあると思いますが、簡単にChinachuの操作方法をまとめました。

  • ライブ視聴の方法
    • 「ホーム」から「放送中の番組とライブ視聴」に移動して各番組の「ライブ視聴」を選択
    • 「番組表」でテレビ局名を右クリックして「ライブ視聴」を選択
  • ストリーミング再生はコンテナにWebMを選択して「再生」を選択
    • 録画番組はMP4でも再生可
  • TSファイルを無劣化で再生したい場合、以下の手順で可能
    1. コンテナにM2TSを選択し、映像と音声のコーデックも無変換を選択
    2. 「XSPF」ボタンをクリックしてPCに保存
    3. 保存したXSPFファイルをダブルクリックしてVLC media playerで再生
    4. 補足) XSPFファイルをVLCに関連付けしておけばファイルの保存は不要になる
  • 手動での録画予約方法
    • 「番組表」にて番組を右クリックして「予約」を選択
    • 「番組詳細」を表示し、右上の「手動予約」を選択
  • キーワードによる録画予約はルール作成にて行う
    • 「番組表」にて番組を右クリックして「ルール作成」を選択
    • 「番組詳細」を表示し、右上の「ルールを作成」を選択
    • メニューの「ルール」をクリックして右上の「追加」を選択
  • 便利な検索機能(「番組表」にて番組を右クリックして以下を選択)
    • 関連サイト
    • Google検索
    • Wikipedia

録画用ディレクトリの変更方法

 本記事中で少し触れていますが、録画用ディレクトリの変更方法について改めて説明します。

 本記事通りに作業すると録画用ディレクトリは”/home/chinachu/chinachu/recorded”になっています(初回録画時に作成される)。例えば”/recorder”ディレクトリに変更したい場合、設定ファイルを変更します。

[root@centos]# vi /home/chinachu/chinachu/config.json

  6行目の"recordedDir"を変更したいディレクトリに変えます。ディレクトリ名の末尾は”/”

  "recordedDir" : "/recorder/",

 続いて、録画中でないことを確認して、サービスを再起動します。録画済みのTSファイルがある場合、元ディレクトリからの移動を忘れずに!

[root@centos]# pm2 restart chinachu-wui chinachu-operator

Chinachuのアップデート方法

 Chinachuのアップデート方法は下記コマンドを実行するだけです。あらかじめ、Chinachuのサービスを停止してから実行して下さい。途中Yes/Noの選択で一時停止するかもしれませんが、基本的に全てEnterキー押下で大丈夫です。

[root@centos]# pm2 stop chinachu-wui chinachu-operator

[chinachu@centos]$ ./chinachu updater

[root@centos]# pm2 start chinachu-wui chinachu-operator

録画終了後のエンコード

 当ブログで録画終了後にH.264でエンコードするスクリプトを作成しました。良かったら使ってみて下さい。

外出先から録画予約する方法

 実現するのはかなり面倒なのですが、比較的安全に外部から接続する方法としてSoftEther VPNを使った方法を紹介します。

 録画サーバを外部から接続する方法としてまとめましたが、実際には外部から家のLANにアクセスする方法なので、LANに接続する機器全てにアクセス可能になります。