Chinachu β(ベータ)インストール手順(Ubuntu・Debian編)
最終更新日:2017/02/01

Ubuntu・DebianにChinachu β(ベータ)をインストールする手順を説明します。
最新のChinachu γ(ガンマ)については、本ブログ記事の『Chinachu γ(ガンマ) インストール手順(Ubuntu・Debian編)』をご参照下さい。
本記事で取り扱うTVチューナーボードはPT3 Rev.Aです。
なお、本記事はUbuntuを基準にして作成しているため、rootで実行するコマンドではsudoを使用しています。sudo実行箇所は、Debianではrootになって先頭のsudoを省略して入力してください。Debianでsudoコマンドをインストールしたい場合、前準備の記事にsudoのインストール方法をまとめているので、そちらをご参照下さい。
スポンサーリンク
目次
Chinachu
Chinachu専用のユーザーchinachuを作成して作業します。普段使用しているユーザーでそのまま作業しても特に問題ありません。ただし、rootでインストール作業しないで下さい。
Chinachuインストール
ユーザーchinachuを追加します。
# sudo adduser chinachu パスワード入力以外はEnterキー押下のみでOKです。
以降はユーザーchinachuになって作業を進めます。
Ubuntuの場合)
# sudo -i -u chinachu
Debianの場合)
# su - chinachu
$ git clone git://github.com/kanreisa/Chinachu.git ~/chinachu
$ cd ~/chinachu
$ ./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)"を選択
多少時間がかかりますが、10分未満で終わります。
設定ファイル作成
インストール完了後、録画予約用の空ファイルを生成しておきます。
$ echo "[]" > rules.json
続いてChinachuの設定ファイルを作成します。
$ cp config.sample.json config.json $ 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 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 update -f
起動設定
PCを起動した時にChinachuのサービスが起動するようにします。まず、起動スクリプトを生成します。
$ ./chinachu service operator initscript > /tmp/chinachu-operator $ ./chinachu service wui initscript > /tmp/chinachu-wui
続いてChinachuのサービスを/etc/init.dから起動できるようにします。以下はsudoまたはsuでrootになって実行して下さい。
# cd /tmp # sudo chown root:root chinachu-* # sudo chmod 755 chinachu-* # sudo mv chinachu-* /etc/init.d/ # sudo update-rc.d chinachu-operator defaults # sudo update-rc.d chinachu-wui defaults # sudo service chinachu-operator start # sudo service chinachu-wui start
最終的にpsコマンド実行結果として以下のように表示されれば成功です。
# ps ax | grep chinachu
1048 ? S 0:00 /bin/bash /home/chinachu/chinachu/chinachu service operator execute
1050 ? S 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”になっています(初回録画時に作成される)。例えば”/home/share/chinachu”ディレクトリに変更したい場合、最初に設定ファイルを変更します。
# sudo vi /home/chinachu/chinachu/config.json 下記の"recordedDir"を変更したいディレクトリに変えます。 "recordedDir" : "/home/share/chinachu/",
続いて、録画中でないことを確認して、サービスを再起動します。録画済みのTSファイルがある場合、元ディレクトリからの移動を忘れずに!
# sudo service chinachu-operator restart # sudo service chinachu-wui restart
Chinachuのアップデート方法
Chinachuのアップデート方法は下記コマンドを実行するだけです。あらかじめ、Chinachuのサービスを停止してから実行して下さい。途中Yes/Noの選択で一時停止するかもしれませんが、基本的に全てEnterキー押下で大丈夫です。
$ ./chinachu updater
録画終了後のエンコード
当ブログで録画終了後にH.264でエンコードするスクリプトを作成しました。良かったら使ってみて下さい。
外出先から録画予約する方法
実現するのはかなり面倒なのですが、比較的安全に外部から接続する方法としてSoftEther VPNを使った方法を紹介します。
録画サーバを外部から接続する方法としてまとめましたが、実際には外部から家のLANにアクセスする方法なので、LANに接続する機器全てにアクセス可能になります。
