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