*

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

  最終更新日:2017/02/01

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”については、以降で説明しています。

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

事前準備

 アセンブラ(yasm)をインストールします。

[user@centos]$ mkdir -p ~/src
[user@centos]$ cd ~/src
[user@centos]$ wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
[user@centos]$ tar xvzf yasm-1.3.0.tar.gz 
[user@centos]$ cd yasm-1.3.0
[user@centos]$ ./configure 
[user@centos]$ make
[root@centos]# su
[root@centos]# make install

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

 Chinachu βではチューナー設定とチャンネル設定を編集する必要がありましたが、γではそれらの設定を完全にMirakurunまかせにするため不要です。

{
  "mirakurunPath": "http+unix://%2Fvar%2Frun%2Fmirakurun.sock/",

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

  "wuiUsers": [
    "chinachu:yoshikawa" <--- "ユーザー名:パスワード"、変更必須
  ],
  "wuiAllowCountries": ["JP"],

  "wuiPort": null, <--- 接続ポート番号、変更必須
  "wuiHost": "0.0.0.0",
  "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行目の”mirakurunPathは、通常はデフォルトのままで良いです。ただし、Mirakurunのサーバ機能設定で”/var/run/mirakurun.sock”以外に変更している場合、こちらも変更する必要があります。ちなみに、”%2F”は文字コードの”/”を意味します。

 11行目の接続ポート番号は”null”の部分を適当な数字に必ず変更してください。こちらは、ブラウザからアクセスする際のポート番号になります。βでは”10772”がデフォルト値だったので、その値でも良いでしょう。

 録画用ディレクトリ、ユーザー名、パスワードは適宜変更して下さい。その他の設定値については、公式ページの設定リファレンスをご確認下さい。

動作確認

 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は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 /lib/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アドレス:接続ポート番号”です。例えば、”http://192.168.0.1:10772”の様に入力します。ユーザー名とパスワードのデフォルトは”chinachu”、”yoshikawa”です。外部から録画できるようにしたい場合、いずれも変更しておいたほうが良いです。

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

 個人的に少し迷った操作内容を挙げておきます。

  • ライブ視聴はテレビ局名を右クリックする。
  • ストリーミング再生はコンテナにWebMを選択して「再生」ボタンをクリックする。
    • 録画番組はMP4でも再生可
  • TSファイルを無劣化で再生したい場合、以下の手順で可能。
    1. コンテナにM2TSを選択し、映像と音声のコーデックも無変換を選択。
    2. 「XSPF」ボタンをクリックしてPCに保存。
    3. 保存したXSPFファイルをダブルクリックしてVLC media playerで再生する。
    4. ユーザー名とパスワードを入力すれば再生開始。
  • 手動での録画予約は番組表にて番組を右クリックすることで行う。
  • キーワードでの録画予約はルール作成にて行う(以下の2つの方法)。
    • 番組表にて番組を右クリックして「ルール作成」を選択。
    • メニューの「ルール」をクリックする。

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

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

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

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

  下記の"recordedDir"を変更したいディレクトリに変えます。

  "recordedDir" : "/recorder/",

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

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

Chinachuのアップデート方法

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

[chinachu@centos]$ ./chinachu updater

録画終了後のエンコード

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

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

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

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