Chinachu γ(ガンマ) インストール手順(Ubuntu・Debian編)
最終更新日:2018/08/03
Ubuntu・DebianにChinachu γ(ガンマ)をインストールする手順を説明します。
スポンサーリンク
目次
はじめに
本記事は以下の2つ記事の内容を実行済みであることを前提に説明します。
上記記事の内容を実行していない場合、先にそちらをご参照下さい。
なお、本記事はUbuntuを基準にして作成しているため、rootで実行するコマンドではsudoを使用しています。sudo実行箇所は、Debianではrootユーザーとしてsudoを省略して実行してください。Debianでsudoコマンドをインストールしたい場合、前準備の記事にsudoのインストール方法をまとめているので、そちらをご参照下さい。
本記事はChinachuの更新に合わせて内容を更新し続けています。そのため、新規インストール以外の重要ではない内容は記事の最後にまとめました。自分に関係すると思われた方は、下記の内容を先に読んで下さい。
Chinachu
新規インストールの説明はここからです。
本記事ではChinachu専用のユーザーchinachuを作成して作業します。また、普段使用しているユーザーでそのまま作業しても特に問題ありません(個人的にはユーザー管理が面倒なので、普段のユーザーで可)。ただし、rootをChinachu専用ユーザーにはしないで下さい。
Chinachuインストール
ユーザーchinachuを追加します。
# sudo adduser chinachu パスワード入力以外はEnterキー押下のみでOKです。
以降はユーザーchinachuになって作業を進めます。
Ubuntuの場合) # sudo -i -u chinachu Debianの場合) # su - chinachu $ git clone -b gamma git://github.com/kanreisa/Chinachu.git ~/chinachu $ cd ~/chinachu $ ./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)"を選択
設定ファイル作成
インストール完了後、録画予約用の空ファイルを生成しておきます。
$ echo "[]" > rules.json
続いてChinachuの設定ファイルを作成します。
$ cp config.sample.json config.json $ 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の設定でインストール済みのはず)。
# sudo pm2 install pm2-logrotate 続いて設定ファイルを作成 # sudo 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インストールディレクトリの下で実行します。
$ ./chinachu service wui execute 実行結果例) Client { basePath: '/api', priority: 0, host: '', port: 40772, socketPath: '/var/run/mirakurun.sock', userAgent: 'Chinachu/0.9.5-gamma.0 (wui)', _userAgent: 'MirakurunClient/2.5.5 Node/v6.9.2 (linux)' } (node:9348) DeprecationWarning: sys is deprecated. Use util instead. 12 Jun 23:48:36 - HTTP Open Server Listening on { address: '0.0.0.0', family: 'IPv4', port: 20772 } 12 Jun 23:48:36 - HTTP Open Server mDNS advertising started. 12 Jun 23:48:36 - READ: `/home/chinachu/chinachu/rules.json` is updated. 12 Jun 23:48:36 - READ: `/home/chinachu/chinachu/data/schedule.json` is updated. 12 Jun 23:48:36 - READ: `/home/chinachu/chinachu/data/reserves.json` is updated. 12 Jun 23:48:36 - READ: `/home/chinachu/chinachu/data/recording.json` is updated. 12 Jun 23:48:36 - READ: `/home/chinachu/chinachu/data/recorded.json` is updated. 上記の様に表示されたらOK. Ctrl+Cで抜ける
続いてpm2を使ってChinachuを自動的に起動するように設定します。
# sudo 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秒程度待って、下記のコマンドを実行して再度確認して下さい。
# sudo pm2 status
この時も”online”なら問題ありません。もし”stopped”になっている場合は設定を再確認後、下記のようにサービスを再起動して下さい。
# sudo pm2 restart chinachu-wui chinachu-operator もしくは`pm2 status`で表示されるidを指定でも可能 # sudo pm2 restart 2 3
ここまで特に問題なければPC起動時にサービスが起動するように保存します。
# sudo pm2 save
続いてEPG取得のテストを行います。以下のように表示され、正常終了すれば成功です。おそらく10秒もかからないはずです。
[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.5.2 Node/v6.9.2 (linux)' } 1 Jun 21:44:26 - GETTING EPG from Mirakurun. 1 Jun 21:44:26 - Mirakurun is OK. 1 Jun 21:44:26 - Mirakurun -> services: 46 1 Jun 21:44:26 - Mirakurun -> services: 42 (excluded) 1 Jun 21:44:26 - Mirakurun -> sorted services: 5 1 Jun 21:44:27 - Mirakurun -> programs: 9568 1 Jun 21:44:27 - Mirakurun -> tuners: 4 1 Jun 21:44:27 - WRITE: /home/chinachu/chinachu/data/schedule.json 1 Jun 21:44:27 - RUNNING SCHEDULER. 1 Jun 21:44:27 - TUNERS: {"BS":2,"CS":2,"GR":2} 1 Jun 21:44:27 - MATCHES: 0 1 Jun 21:44:27 - DUPLICATES: 0 1 Jun 21:44:27 - CONFLICTS: 0 1 Jun 21:44:27 - SKIPS: 0 1 Jun 21:44:27 - RESERVES: 0 1 Jun 21:44:27 - WRITE: /home/chinachu/chinachu/data/reserves.json
正常動作しない場合
正常動作しない場合、config.jsonの設定内容を確認して下さい。また、以下のログファイルも確認して下さい。
- /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
末尾が”stderr.log”のファイルがエラーログなので、そちらを重点的に確認しましょう。
ページアクセス
ブラウザからChinachuにアクセスします。URLは”http://録画サーバのIPアドレス:接続ポート番号”です。ここの接続ポート番号はconfig.jsonの”wuiOpenPort”で指定する番号です。デフォルト設定では”http://192.168.0.1:20772”の様に入力します。
この段階で番組表が正常に表示されていれば設定完了です。
色々と抜けがあると思いますが、簡単にChinachuの操作方法をまとめました。
- ライブ視聴の方法
- 「ホーム」から「放送中の番組とライブ視聴」に移動して各番組の「ライブ視聴」を選択
- 「番組表」でテレビ局名を右クリックして「ライブ視聴」を選択
- ストリーミング再生はコンテナにWebMを選択して「再生」を選択
- 録画番組はMP4でも再生可
- TSファイルを無劣化で再生したい場合、以下の手順で可能
- コンテナにM2TSを選択し、映像と音声のコーデックも無変換を選択
- 「XSPF」ボタンをクリックしてPCに保存
- 保存したXSPFファイルをダブルクリックしてVLC media playerで再生
- 補足) XSPFファイルをVLCに関連付けしておけばファイルの保存は不要になる
- 手動での録画予約方法
- 「番組表」にて番組を右クリックして「予約」を選択
- 「番組詳細」を表示し、右上の「手動予約」を選択
- キーワードによる録画予約はルール作成にて行う
- 「番組表」にて番組を右クリックして「ルール作成」を選択
- 「番組詳細」を表示し、右上の「ルールを作成」を選択
- メニューの「ルール」をクリックして右上の「追加」を選択
- 便利な検索機能(「番組表」にて番組を右クリックして以下を選択)
- 関連サイト
- Google検索
- Wikipedia
録画用ディレクトリの変更方法
本記事中で少し触れていますが、録画用ディレクトリの変更方法について改めて説明します。
本記事通りに作業すると録画用ディレクトリは”/home/chinachu/chinachu/recorded”になっています(初回録画時に作成)。例えば、”/home/share/chinachu”ディレクトリに変更したい場合、設定ファイルを変更します。
# sudo vi /home/chinachu/chinachu/config.json 6行目の"recordedDir"を変更したいディレクトリに変えます。ディレクトリ名の末尾は”/” "recordedDir" : "/home/share/chinachu/",
続いて、録画中でないことを確認して、サービスを再起動します。録画済みのTSファイルがある場合、元ディレクトリからの移動を忘れずに!
# sudo pm2 restart chinachu-wui chinachu-operator
Chinachuのアップデート方法
Chinachuのアップデート方法は下記コマンドを実行するだけです。あらかじめ、Chinachuのサービスを停止してから実行して下さい。途中Yes/Noの選択で一時停止するかもしれませんが、基本的に全てEnterキー押下で大丈夫です。
$ ./chinachu updater
録画終了後のエンコード
当ブログで録画終了後にH.264でエンコードするスクリプトを作成しました。良かったら使ってみて下さい。
外出先から録画予約する方法
実現するのはかなり面倒なのですが、比較的安全に外部から接続する方法としてSoftEther VPNを使った方法を紹介します。
録画サーバを外部から接続する方法としてまとめましたが、実際には外部から家のLANにアクセスする方法なので、LANに接続する機器全てにアクセス可能になります。
その他
新規インストール以外の重要ではない内容について説明します。ほとんどの人には関係ない内容と思われるので、章を分けました。
2017年6月5日以前に本記事を参考にChinachu γをインストールした方
Chinachu γ ver.2以降では推奨の起動方法が変わっています。古い起動方法(service管理)から新しい起動方法(pm2管理)への変更方法について説明します。
そのままでも問題ないようですが、今後もサポートされるかどうか不明なので、新しい起動方法に変更したほうが良いでしょう。
Chinachuを停止し、古い起動方法を無効化します。
# sudo service chinachu-wui stop # sudo service chinachu-operator stop # sudo update-rc.d chinachu-wui remove # sudo update-rc.d chinachu-operator remove
以降は本記事冒頭に戻ってconfig.jsonをconfig.sample.jsonから作り直すところからやり直して下さい。以降の手順は次の通りです。
- config.jsonの再作成
- ログローテーション設定
- `pm2 start processes.json`実行によりpm2管理に
Chinachu β(ベータ)からγ(ガンマ)にアップデート
新規インストールする場合、この節は読み飛ばして下さい。Chinachu βからγへのアップデート方法を先に説明します。手順は次の通りです。
- Chinachu βを停止・無効化
- Mirakurunをインストール・設定(別記事)
- Chinachu γにアップデート(本記事)
Mirakurunが正常に動いていない状態でアップデートする事は絶対におすすめしません。なぜならMirakurunのインストールが難しいため、先にアップデートしてしまうと元に戻せない可能性があるからです。
それでは、Chinachu βからγへとアップデートします。Chinachuを実行しているユーザーで以下のコマンドを実行して下さい。実行ディレクトリはChinachuのインストールディレクトリです。
※ βを停止及び起動の無効化 # sudo service chinachu-wui stop # sudo service chinachu-operator stop # sudo update-rc.d chinachu-wui remove # sudo update-rc.d chinachu-operator remove ※ βのインストールディレクトリに移動 $ git fetch $ git checkout gamma $ ./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 γとして再起動すれば完了です。本記事の最初に戻って作業を続けて下さい。
アップデート方法の詳細については、公式ページをご確認下さい。