るいすときのこの物語

オタクエンジニアの雑記

Chinachu Beta + Mirakurun + Rivarun + TVTest on Ubuntu で Chinachu でも TVTest でも視聴する


Chinachu Air から Mirakurun を使用するみたいなので環境を構築してみた。 Mirakurun + Rivarun で Chinachu を動かし、TVTest を使用して Windows からも視聴できるようになります。

 

Mirakurun

kanreisa氏が作成した Nodejs で動いている Spinel とか BonDriverProxy みたいなもんです。 UnixSocket でも、TCPでも動かせます。

Mirakurun - github

 

Rivarun

こちらも kanreisa氏が作成した Mirakurun のクライアントです。 ちなみに、Chinachu Air 用ではないらしいです。

Rivarun - github

 

BonDriver_Mirakurun

h-mineta氏が作成した TVTest で動かすための BonDriver です。 ソースファイルしか上がっていないのでビルドする必要があります。 MITライセンスなのでビルド済みを配布しておきます。

Download - BonDriver_Mirakurun BonDriver_Mirakurun - github

 

構成

配信サーバー

OS IP チューナー 構成
Ubuntu 14.04 LTS 192.168.20.7 PT2 Mirakurun

 

Chinachu サーバー

OS IP 構成
Ubuntu 16.04 LTS 192.168.20.12 Chinachu + Rivarun

 

クライアント TVTest

OS IP 構成
Windows 10 x64 192.168.20.253 TVTest + BonDriver_Mirakurun

本当は 配信サーバーと、Chinachu サーバーは一緒が良かったんですけどどうも Chinachu を入れるのに失敗してしまい、VMに建てました。

 

 

配信サーバー

PT2 / PT3 ドライバーのインストールならびに、カードリーダー、recpt1 のインストールは他サイトを参考にしてください。

Mirakurun を構築するために Nodejs => 5.0.0 以上をインストールします。

 

nodejs と npm をインストール

npm を使うためにまずは最新ではないものをインストールします。

# apt-get install -y nodejs npm

 

n package をインストール

# npm cache clean
# npm install n -g

 

n package を使って nodejs をインストール

n package を使うと最新の nodejs をインストールすることができるらしいです。

# n stable
# ln -sf /usr/local/bin/node /usr/bin/node

 

最新版がインストールされたかを確認

# node -v
v6.2.0

# npm -v
3.8.9

ちなみに npm は Ubuntu 標準のレポジトリからインストールしたものですが普通に動いているので大丈夫だと多分。 よく分からないです。

 

PM2 のインストール

# npm install pm2 -g

 

arib-b25 のインストール

# npm install arib-b25-stream-test -g --unsafe

 

Mirakurun のインストール

# npm install mirakurun -g --unsafe --production

 

Mirakurun の設定

最初はサーバーの設定 終了時は Shift + ZZ で上書き保存します。

# mirakurun config server

path: /var/run/mirakurun.sock

port: 8888 ←リッスンポート
host: ~ ←全てのIPから受け付ける

logLevel: 2

 

次はチューナーの設定

# mirakurun config tuners

- name: PT2-S1
  types:
    - BS
    - CS
  isPT2: true
  command: recpt1 --device /dev/pt1video0 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT2-S2
  types:
    - BS
    - CS
  isPT2: true
  command: recpt1 --device /dev/pt1video1 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT2-T1
  types:
    - GR
  isPT2: true
  command: recpt1 --device /dev/pt1video2 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT2-T2
  types:
    - GR
  isPT2: true
  command: recpt1 --device /dev/pt1video3 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

isPT2 isDisabled command name は各自設定してください。 見て分かる通り recpt1 のインストールが必要です。

 

チャンネルの設定

# mirakurun config channels

- name: MX
  type: GR
  channel: '16'

- name: CX
  type: GR
  channel: '21'

- name: TBS
  type: GR
  channel: '22'

- name: TX
  type: GR
  channel: '23'

- name: EX
  type: GR
  channel: '24'

- name: NTV
  type: GR
  channel: '25'

- name: NHK E
  type: GR
  channel: '26'

- name: NHK G
  type: GR
  channel: '27'

- name: NHK BS1
  type: BS
  channel: BS15_0
  serviceId: 101

- name: NHK BS1 (Sub)
  type: BS
  channel: BS15_0
  serviceId: 102

- name: NHK BS Premium
  type: BS
  channel: BS15_1
  serviceId: 103

- name: NHK BS Premium (Sub)
  type: BS
  channel: BS15_1
  serviceId: 104

- name: BS Nippon
  type: BS
  channel: BS13_0
  serviceId: 141

- name: BS Nippon (Sub)
  type: BS
  channel: BS13_0
  serviceId: 142

- name: BS Asahi
  type: BS
  channel: BS01_0
  serviceId: 151

- name: BS Asahi (Sub)
  type: BS
  channel: BS01_0
  serviceId: 152

- name: BS-TBS
  type: BS
  channel: BS01_1
  serviceId: 161

  isDisabled: false

- name: AT-X
  type: CS
  channel: CS16
  serviceId: 333
  isDisabled: false

- name: BS SPTV
  type: SKY
  channel: CH585
  serviceId: 33353
  satelite: JCSAT3A
  isDisabled: false

- name: AT-X HD
  type: SKY
  channel: ATXHD
  serviceId: 33435
  satelite: JCSAT3A
  isDisabled: false

- name: AXN HD
  type: SKY
  channel: AXNHD
  serviceId: 33418
  satelite: JCSAT4A
  isDisabled: false

ちなみに 場所によっては isDisabled があるので使用するものは false とする必要があります。

 

Mirakurun を起動する

# mirakurun start

[PM2] Applying action restartProcessId on app [mirakurun-server](ids: 0)
[PM2] [mirakurun-server](0) ✓
┌──────────────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────────────┬──────────┐
│ App name         │ id │ mode │ pid   │ status │ restart │ uptime │ memory      │ watching │
├──────────────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────────────┼──────────┤
│ mirakurun-server │ 0  │ fork │ 10577 │ online │ 6       │ 0s     │ 17.703 MB   │ disabled │
└──────────────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

きちんと起動しているかは少し時間が経った後に

# lsof -i:8888

COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
Mirakurun 10577 root   12u  IPv4  44941      0t0  TCP pen4.luis.local:8888 (LISTEN)
Mirakurun 10577 root   13u  IPv4  44942      0t0  TCP localhost:8888 (LISTEN)
Mirakurun 10577 root   15u  IPv4  45022      0t0  TCP pen4.luis.local:8888->192.168.20.253:53171 (ESTABLISHED)

とすれば確認できます。便利ですよ lsof

 

 

Chinachu サーバーの設定

Chinachu のインストールは Github を見て下さい。 Installation - Github

 

Rivarun のインストール

前準備として Nodejs => 5.0.0 が必要なので上を見てインストールしてください。

# npm install rivarun -g

 

Chinachu の設定

# vim /home/chinachu/chinachu/config.json

{
  "recordedDir" : "./recorded/",
  "temporaryDir": "/tmp/",
  
  "wuiUsers": [
    ":"
  ],
  "wuiAllowCountries": ["JP"],
  
  "wuiPort"        : 10772,
  "wuiHost"        : "::",
  "wuiTlsKeyPath"  : null,
  "wuiTlsCertPath" : null,
  "wuiOpenServer"  : false,
  "wuiOpenPort"    : 20772,
  "wuiXFF"         : false,
  "wuiPreviewer"   : true,
  "wuiStreamer"    : true,
  "wuiFiler"       : true,
  "wuiConfigurator": true,

  "recordedFormat": "[<date:yymmdd-HHMM>][<type><channel>][<tuner>]<title>.m2ts",
  
  "tuners": [
    {
      "name"        : "PT2-S1",
      "isScrambling": false,
      "types"       : [ "BS", "CS" ],
      "command"     : "/usr/local/bin/rivarun --mirakurun 192.168.20.7:8888 --b25 --priority 1 --sid <channel> - -",
      "noEpg"       : false
    },
    {
      "name"        : "PT2-S2",
      "isScrambling": false,
      "types"       : [ "BS", "CS" ],
      "command"     : "/usr/local/bin/rivarun --mirakurun 192.168.20.7:8888 --b25 --priority 1 --sid <channel> - -",
      "noEpg"       : false
    },
    {
      "name"        : "PT2-T1",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "/usr/local/bin/rivarun --mirakurun 192.168.20.7:8888 --b25 --priority 1 --sid <sid> --ch GR/<channel> - -",
      "noEpg"       : false
    },
    {
      "name"        : "PT2-T2",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "/usr/local/bin/rivarun --mirakurun 192.168.20.7:8888 --b25 --priority 1 --sid <sid> --ch GR/<channel> - -",
      "noEpg"       : false
    }
  ],
  
  "channels": [
    { "type": "GR", "channel": "16" },
    { "type": "GR", "channel": "21" },
    { "type": "GR", "channel": "22" },
    { "type": "GR", "channel": "23" },
    { "type": "GR", "channel": "24" },
    { "type": "GR", "channel": "25" },
    { "type": "GR", "channel": "26" },
    { "type": "GR", "channel": "27" },
    
    { "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": "211" },
    { "type": "BS", "channel": "222" },
    
    { "type": "CS", "channel": "CS4",  "sid": "100" },
    { "type": "CS", "channel": "CS16", "sid": "333" }
  ]
}

BS / CS のコマンドは /usr/local/bin/rivarun --mirakurun 192.168.20.7:8888 --b25 --priority 1 --sid <channel> - - GR のコマンドは /usr/local/bin/rivarun --mirakurun 192.168.20.7:8888 --b25 --priority 1 --sid <sid> --ch GR/<channel> - - と若干違います。また、IPアドレスは Mirakurun サーバーのIPアドレス、ポートは指定したポートを設定してください。

あとは ./chinachu update -f とかして正常に動作するか確認してください。

 

 

TVTest の設定

BonDriver_Mirakurun のビルド済みをダウンロードし、TVTest と同じディレクトリに保存してください。 各チューナーの設定ファイルを弄って下さい。

[GLOBAL]
SERVER_HOST="pen4.luis.local" ←Mirakurun サーバーIP
SERVER_PORT=8888 ←Mirakurun サーバーのポート

あとはTVTest を起動して、チャンネルスキャンとかやれば視聴できると思います。 もし見れない場合は ファイアーウォールの設定だったり色々確認してみてください。