*

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

  最終更新日:2017/06/14

Pocket

How to install Chinachu Gamma on CentOS 7

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

スポンサーリンク

はじめに

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

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

 本記事で取り扱うTVチューナーボードはPT3 Rev.Aです。

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

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

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

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

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

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

 それでは、Chinachu βからγへとアップデートします。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インストール

[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”は文字コードの”/”を意味します。

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

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

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

動作確認

 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で抜ける

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

$ ./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

起動設定(systemd対応)

 PCを起動した時にChinachuのサービスが起動するようにします。CentOS 7ではサービス(デーモン)をsystemdで一元管理するようになっています。しかし、ChinachuはCentOS向けのsystemd対応はされていないため、自力で対応します。

 systemd対応のパッチ(差分ファイル)を作成したので、本ブログからダウンロードしてパッチを当てます。

[chinachu@centos]$ cd ~/chinachu
[chinachu@centos]$ wget https://www.jifu-labo.net/files/systemd.patch.gz
[chinachu@centos]$ zcat systemd.patch.gz | patch 

  ”Hunk #2 succeeded”の様に表示されるかもしれませんが、特に問題ありません。
  ”Hunk #2 FAILED at 586.”の様に表示されたら、パッチが正常に当たっていません。
  コメント欄にてパッチが当たらないとコメントして頂ければ修正対応します。

 ここまででChinachuのsystemd対応は完了です。続いてsystemd用のスクリプトを作成します。

[chinachu@centos]$ ./chinachu service operator unitfile > /tmp/chinachu-operator.service
[chinachu@centos]$ ./chinachu service wui unitfile > /tmp/chinachu-wui.service

 Chinachuのサービスをsystemdから起動できるようにします。以下はrootで作業して下さい。

[root@centos]# cd /tmp
[root@centos]# chown root:root chinachu-*.service
[root@centos]# cp chinachu-*.service /etc/systemd/system/
[root@centos]# systemctl enable chinachu-operator
[root@centos]# systemctl enable chinachu-wui
[root@centos]# systemctl start chinachu-operator
[root@centos]# systemctl start chinachu-wui

 最終的にpsコマンド実行結果として以下のように表示されれば成功です。

[root@centos]# ps ax | grep chinachu
    1048 ?        Ss     0:00 /bin/bash /home/chinachu/chinachu/chinachu service operator execute
    1050 ?        Ss     0:00 /bin/bash /home/chinachu/chinachu/chinachu service wui execute

ページアクセス

 ブラウザから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

  下記の"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に接続する機器全てにアクセス可能になります。