Chinachu β(ベータ)インストール手順(CentOS 7編)
最終更新日:2017/02/01
CentOS 7にChinachu β(ベータ)をインストールする手順を説明します。
最新のChinachu γ(ガンマ)については、本ブログ記事の『Chinachu γ(ガンマ) インストール手順(CentOS 7編)』をご参照下さい。
本記事は『録画サーバ構築の前準備(CentOS 7編)、Chinachu・epgrec UNA対応』の内容を実行済みであることを前提にしています。前記事の内容を実行していない場合、先にそちらをご参照下さい。
本記事で取り扱うTVチューナーボードはPT3 Rev.Aです。
なお、実行ユーザーを区別するため、シェルのコマンド表記は以下の様にしています。
[user@centos]$ 一般ユーザーとして実行 [root@centos]# rootとして実行 [chinachu@centos]$ ユーザーchinachuとして実行
スポンサーリンク
目次
事前準備
アセンブラ(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 git://github.com/kanreisa/Chinachu.git ~/chinachu [chinachu@centos]$ cd ~/chinachu [chinachu@centos]$ ./chinachu installer [!] These are installed under all /home/chinachu/chinachu/... [!] Recommend the Auto installation. 1) Auto (full) 5) Node.js Modules 9) libfdk-aac 2) Auto (fast) 6) epgdump 10) libogg 3) submodule 7) libx264 11) libvorbis 4) Node.js Environment 8) libvpx 12) ffmpeg 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
下記は東京スカイツリー及び東京タワーから地デジを受信している場合の設定例です。本記事はPT3 Rev.A向けの内容のため、KEIAN KTV-FSUSB2の設定は削除しています(tunersのFSUSB2の設定箇所)。
{ "recordedDir" : "./recorded/", ← 録画用ディレクトリ、必要なら変更 "temporaryDir": "/tmp/", "schedulerEpgRecordTime": 180, ← 追記必須、EPG取得時間、単位:秒(番組表歯抜け対策) "wuiUsers": [ "akari:bakuhatsu" ← "ユーザー名:パスワード"、変更必須 ], "wuiPort" : 10772, ← 接続ポート番号、出来れば変更 "wuiHost" : "::", "wuiTlsKeyPath" : null, "wuiTlsCertPath" : null, "wuiOpenServer" : false, "wuiOpenPort" : 20772, "wuiPreviewer" : true, "wuiStreamer" : true, "wuiFiler" : true, "wuiConfigurator": true, "recordedFormat": "[<date:yymmdd-HHMM>][<type><channel>][<tuner>]<title>.ts", "tuners": [ { "name" : "PT3-S1", "isScrambling": false, "types" : [ "BS", "CS" ], "command" : "recpt1 --device /dev/pt3video0 --b25 --strip --sid <sid> <channel> - -" }, { "name" : "PT3-S2", "isScrambling": false, "types" : [ "BS", "CS" ], "command" : "recpt1 --device /dev/pt3video1 --b25 --strip --sid <sid> <channel> - -" }, { "name" : "PT3-T1", "isScrambling": false, "types" : [ "GR" ], "command" : "recpt1 --device /dev/pt3video2 --b25 --strip --sid <sid> <channel> - -" }, { "name" : "PT3-T2", "isScrambling": false, "types" : [ "GR" ], "command" : "recpt1 --device /dev/pt3video3 --b25 --strip --sid <sid> <channel> - -" } ], "channels": [ { "type": "GR", "channel": "27" }, { "type": "GR", "channel": "26" }, { "type": "GR", "channel": "25" }, { "type": "GR", "channel": "24" }, { "type": "GR", "channel": "22" }, { "type": "GR", "channel": "23" }, { "type": "GR", "channel": "21" }, { "type": "GR", "channel": "16" }, { "type": "GR", "channel": "28" }, { "type": "BS", "channel": "101" }, { "type": "BS", "channel": "102" }, { "type": "BS", "channel": "103" }, { "type": "BS", "channel": "141" }, { "type": "BS", "channel": "151" }, { "type": "BS", "channel": "161" }, { "type": "BS", "channel": "171" }, { "type": "BS", "channel": "181" }, { "type": "BS", "channel": "191" }, { "type": "BS", "channel": "192" }, { "type": "BS", "channel": "193" }, { "type": "BS", "channel": "200" }, { "type": "BS", "channel": "201" }, { "type": "BS", "channel": "202" }, { "type": "BS", "channel": "211" }, { "type": "BS", "channel": "222" }, { "type": "BS", "channel": "231" }, { "type": "BS", "channel": "232" }, { "type": "BS", "channel": "233" }, { "type": "BS", "channel": "234" }, { "type": "BS", "channel": "236" }, { "type": "BS", "channel": "238" }, { "type": "BS", "channel": "241" }, { "type": "BS", "channel": "242" }, { "type": "BS", "channel": "243" }, { "type": "BS", "channel": "244" }, { "type": "BS", "channel": "245" }, { "type": "BS", "channel": "251" }, { "type": "BS", "channel": "252" }, { "type": "BS", "channel": "255" }, { "type": "BS", "channel": "256" }, { "type": "BS", "channel": "258" }, { "type": "CS", "channel": "CS8", "sid": "055" }, { "type": "CS", "channel": "CS4", "sid": "100" }, { "type": "CS", "channel": "CS22", "sid": "161" }, { "type": "CS", "channel": "CS8", "sid": "218" }, { "type": "CS", "channel": "CS8", "sid": "219" }, { "type": "CS", "channel": "CS4", "sid": "223" }, { "type": "CS", "channel": "CS4", "sid": "227" }, { "type": "CS", "channel": "CS24", "sid": "229" }, { "type": "CS", "channel": "CS18", "sid": "240" }, { "type": "CS", "channel": "CS4", "sid": "250" }, { "type": "CS", "channel": "CS12", "sid": "254" }, { "type": "CS", "channel": "CS24", "sid": "257" }, { "type": "CS", "channel": "CS18", "sid": "262" }, { "type": "CS", "channel": "CS16", "sid": "290" }, { "type": "CS", "channel": "CS14", "sid": "292" }, { "type": "CS", "channel": "CS14", "sid": "293" }, { "type": "CS", "channel": "CS6", "sid": "294" }, { "type": "CS", "channel": "CS2", "sid": "296" }, { "type": "CS", "channel": "CS22", "sid": "297" }, { "type": "CS", "channel": "CS2", "sid": "298" }, { "type": "CS", "channel": "CS2", "sid": "299" }, { "type": "CS", "channel": "CS24", "sid": "300" }, { "type": "CS", "channel": "CS16", "sid": "305" }, { "type": "CS", "channel": "CS20", "sid": "307" }, { "type": "CS", "channel": "CS20", "sid": "308" }, { "type": "CS", "channel": "CS20", "sid": "309" }, { "type": "CS", "channel": "CS14", "sid": "310" }, { "type": "CS", "channel": "CS16", "sid": "311" }, { "type": "CS", "channel": "CS22", "sid": "312" }, { "type": "CS", "channel": "CS18", "sid": "314" }, { "type": "CS", "channel": "CS24", "sid": "321" }, { "type": "CS", "channel": "CS22", "sid": "322" }, { "type": "CS", "channel": "CS6", "sid": "323" }, { "type": "CS", "channel": "CS12", "sid": "325" }, { "type": "CS", "channel": "CS8", "sid": "326" }, { "type": "CS", "channel": "CS6", "sid": "329" }, { "type": "CS", "channel": "CS12", "sid": "330" }, { "type": "CS", "channel": "CS22", "sid": "331" }, { "type": "CS", "channel": "CS16", "sid": "333" }, { "type": "CS", "channel": "CS8", "sid": "339" }, { "type": "CS", "channel": "CS6", "sid": "340" }, { "type": "CS", "channel": "CS6", "sid": "341" }, { "type": "CS", "channel": "CS4", "sid": "342" }, { "type": "CS", "channel": "CS16", "sid": "343" }, { "type": "CS", "channel": "CS8", "sid": "349" }, { "type": "CS", "channel": "CS22", "sid": "351" }, { "type": "CS", "channel": "CS16", "sid": "353" }, { "type": "CS", "channel": "CS6", "sid": "354" }, { "type": "CS", "channel": "CS24", "sid": "362" }, { "type": "CS", "channel": "CS4", "sid": "363" }, { "type": "CS", "channel": "CS10", "sid": "800" }, { "type": "CS", "channel": "CS10", "sid": "801" }, { "type": "CS", "channel": "CS10", "sid": "802" }, { "type": "CS", "channel": "CS10", "sid": "805" } ] }
51行目から59行目のGRの地デジ設定は現在住んでいる地域に合わせて変更して下さい(参考:マスプロの地上デジタル放送 チャンネル一覧表)。また、61行目以降のBS、CSの設定は契約しているチャンネルに合わせて間引いて下さい。チャンネル番号とチャンネル名の関係が分からないと思うので、下記にチャンネル一覧の表を作成しました。
EPG取得時間延長の追加、ユーザー名、パスワード、接続ポート番号は適宜変更して下さい。
作成したconfig.jsonのフォーマットチェックはこちらで行うことができます。config.jsonファイルの内容をコピペして”Validate”ボタンをクリックすれば確認できます。
・BSチャンネル一覧
種別 | チャンネル番号 | チャンネル名 |
---|---|---|
公共 | 101 | NHK BS1 |
公共 | 102 | NHK BS1(サブ) |
公共 | 103 | NHK BSプレミアム |
無料 | 141 | BS日テレ |
無料 | 151 | BS朝日 |
無料 | 161 | BS-TBS |
無料 | 171 | BSジャパン |
無料 | 181 | BSフジ |
有料 | 191 | WOWOWプライム |
有料 | 192 | WOWOWライブ |
有料 | 193 | WOWOWシネマ |
有料 | 200 | スターチャンネル1 |
有料 | 201 | スターチャンネル2 |
有料 | 202 | スターチャンネル3 |
無料 | 211 | BS11 |
無料 | 222 | TwellV |
無料 | 231 | 放送大学 |
無料 | 232 | 放送大学 |
無料 | 233 | 放送大学 |
有料 | 234 | グリーンチャンネル |
有料 | 236 | BSアニマックス |
有料 | 238 | FOXスポーツ&エンターテイメント |
有料 | 241 | BSスカパー! |
有料 | 242 | J SPORTS 1 |
有料 | 243 | J SPORTS 2 |
有料 | 244 | J SPORTS 3 |
有料 | 245 | J SPORTS 4 |
有料 | 251 | BS釣りビジョン |
有料 | 252 | イマジカBS・映画 |
有料 | 255 | 日本映画専門チャンネル |
有料 | 256 | ディズニー・チャンネル |
無料 | 258 | Dlife |
・東経110度CSチャンネル一覧
Slot | SID | チャンネル名 |
---|---|---|
CS8 | 055 | ショップチャンネル |
CS4 | 100 | スカパー!プロモ |
CS2 | 161 | QVC |
CS8 | 218 | 東映チャンネル |
CS8 | 219 | 衛星劇場 |
CS4 | 223 | チャンネルNECO |
CS4 | 227 | ザ・シネマ |
CS24 | 229 | FOXムービー |
CS18 | 240 | ムービープラスHD |
CS4 | 250 | sky・Aスポーツ+ |
CS12 | 254 | GAORA |
CS24 | 257 | 日テレG+ HD |
CS18 | 262 | ゴルフネットHD |
CS16 | 290 | SKY STAGE |
CS14 | 292 | 時代劇専門chHD |
CS14 | 293 | ファミリー劇場HD |
CS6 | 294 | ホームドラマCH |
CS2 | 296 | TBSチャンネル1 |
CS22 | 297 | TBSチャンネル2 |
CS2 | 298 | テレ朝チャンネル1 |
CS2 | 299 | テレ朝チャンネル2 |
CS24 | 300 | 日テレプラス |
CS16 | 305 | チャンネル銀河 |
CS20 | 307 | フジテレビONE |
CS20 | 308 | フジテレビTWO |
CS20 | 309 | フジテレビNEXT |
CS14 | 310 | スーパー!ドラマHD |
CS16 | 311 | AXN |
CS22 | 312 | FOX |
CS18 | 314 | 女性ch/LaLa |
CS24 | 321 | スペシャプラス |
CS22 | 322 | スペースシャワーTV |
CS6 | 323 | MTV HD |
CS12 | 325 | エムオン!HD |
CS8 | 326 | ミュージック・エア |
CS6 | 329 | 歌謡ポップス |
CS12 | 330 | キッズステーション |
CS22 | 331 | カートゥーン |
CS16 | 333 | AT-X |
CS8 | 339 | ディズニージュニア |
CS6 | 340 | ディスカバリー |
CS6 | 341 | アニマルプラネット |
CS4 | 342 | ヒストリーチャンネル |
CS16 | 343 | ナショジオチャンネル |
CS8 | 349 | 日テレNEWS24 |
CS22 | 351 | TBSニュースバード |
CS16 | 353 | BBCワールド |
CS6 | 354 | CNNj |
CS24 | 362 | 旅チャンネル |
CS4 | 363 | 囲碁・将棋チャンネル |
CS10 | 800 | スカチャン0 |
CS10 | 801 | スカチャン1 |
CS10 | 802 | スカチャン2 |
CS10 | 805 | スカチャン3 |
動作確認
Chinachuのサービスが正常に起動するかどうかを確認します。実行結果として以下のように表示されれば成功です。
[chinachu@centos]$ ./chinachu service operator execute 30 Aug 19:22:29 - READ: `/home/chinachu/chinachu/data/reserves.json` is updated. 30 Aug 19:22:29 - READ: `/home/chinachu/chinachu/data/recorded.json` is updated. 30 Aug 19:22:30 - SPAWN: node app-scheduler.js -f (pid=21535) 30 Aug 19:22:30 - STREAM: ./log/scheduler Ctrl+Cで抜ける
続いてEPG取得のテストを行います。正常終了すれば成功です。本記事の通りEPG取得時間を180秒に設定した場合、終了までそれなりに時間がかかります。終わるまで気長に待ちましょう。
[chinachu@centos]$ ./chinachu update -f
起動設定(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 FAILED at 586.”の様に表示されたら、パッチが正常に当たっていません。 コメント欄にてパッチが当たらないとコメントして頂ければ記事の修正対応します。 なお、”Hunk #2 succeeded”の様な表示は特に問題ありません。
ここまでで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アドレス:接続ポート番号”です。接続ポート番号を変更していない場合、デフォルトは10772になります。ユーザー名とパスワードのデフォルトは”akari”、”bakuhatsu”です。外部から録画できるようにしたい場合、いずれも変更しておいたほうが良いです。
この段階で番組表が正常に表示されていれば設定完了です。
個人的に少し迷った操作内容を挙げておきます。
- ライブ視聴はテレビ局名を右クリックする。
- ストリーミング再生はコンテナにWebMを選択して「再生」ボタンをクリックする。
- 録画番組はMP4でも再生可
- TSファイルを無劣化で再生したい場合、以下の手順で可能。
- コンテナにM2TSを選択し、映像と音声のコーデックも無変換を選択。
- 「XSPF」ボタンをクリックしてPCに保存。
- 保存したXSPFファイルをダブルクリックしてVLC media playerで再生する。
- ユーザー名とパスワードを入力すれば再生開始。
- 手動での録画予約は番組表にて番組を右クリックすることで行う。
- キーワードでの録画予約はルール作成にて行う(以下の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に接続する機器全てにアクセス可能になります。