ひかりマテリアル

はにかむねっと

Linuxの標準ドライバを使ってPT3をセットアップ~Mirakurun + Chinachu Beta + TVTest~


👤 sudosan 📆 5月 30, 2016 📝 4

この記事は古いのでこっちを見てください

Ubuntu19.10でPT3+Mirakurun+Chinachu+QSV+TVTest

1はじめに

今回はUbuntu 16.04 LTS Serverを使います。

PT3とカードリーダーを刺した状態にしてください

ls /dev/dvb/
adapter0  adapter1  adapter2  adapter3  adapter4  adapter5  adapter6  adapter7
#今回は2枚差し

と出れば正常です

adapter0:BS

adapter1:GR

adapter2:BS

・・・・

2 nodeをいれる

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04 等を参考に

3Mirakurunのインストール

sudo apt-get install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools build-essential curl git-core libssl-dev yasm libtool autoconf pkg-config
sudo npm install pm2 -g
sudo npm install mirakurun -g --unsafe --production
sudo npm install rivarun -g
sudo npm install arib-b25-stream-test -g --unsafe

4 tuneコマンドのインストール

もとのtuneコマンドがソースを編集して地域ごとの設定をしないといけないというクッソめんどくさい代物だったので改良しました。

wget http://www3.wazoku.net/2sen/pt1up/source/up0219.gz
tar xvf up0219.gz
cd dvb-pt1-test
rm tune.c
wget -O tune.c http://pastebin.com/raw/PneKFzpv
make 
sudo cp tune /usr/local/bin/

#これでtuneが使用可能になります
#tune 0 211等でチューニング可能

5 Mirakurunの設定

チャンネル設定

sudo mirakurun config channels

でチャンネル設定。BSの部分が微妙に違うので変えたりする。地上波の部分は適度変更してください(これは東京の例)

- 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: BS1
  type: BS
  channel: '101'
  serviceId: 101

- name: BS2
  type: BS
  channel: '102'
  serviceId: 102

- name: BSP
  type: BS
  channel: '103'
  serviceId: 103

- name: BS-NTV
  type: BS
  channel: '141'
  serviceId: 141

- name: BS-A
  type: BS
  channel: '151'
  serviceId: 151

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

- name: BSJ
  type: BS
  channel: '171'
  serviceId: 171

- name: BSFuji
  type: BS
  channel: '181'
  serviceId: 181

- name: BS11
  type: BS
  channel: '211'
  serviceId: 211

- name: BS12
  type: BS
  channel: '222'
  serviceId: 222

チューナ設定

sudo mirakurun config tuners

でチューナ設定(例は2枚差しの場合。1枚の場合はPT3-S2~を削除すること)

- name: PT3-S0
  types:
    - BS
    - CS
  command: tune 0 <channel>
  dvbDevicePath: /dev/dvb/adapter0/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT3-T0
  types:
    - GR
  command: tune 1 <channel>
  dvbDevicePath: /dev/dvb/adapter1/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT3-S1
  types:
    - BS
    - CS
  command: tune 2 <channel>
  dvbDevicePath: /dev/dvb/adapter2/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT3-T1
  types:
    - GR
  command: tune 3 <channel>
  dvbDevicePath: /dev/dvb/adapter3/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT3-S2
  types:
    - BS
    - CS
  command: tune 4 <channel>
  dvbDevicePath: /dev/dvb/adapter4/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT3-T2
  types:
    - GR
  command: tune 5 <channel>
  dvbDevicePath: /dev/dvb/adapter5/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT3-S3
  types:
    - BS
    - CS
  command: tune 6 <channel>
  dvbDevicePath: /dev/dvb/adapter6/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PT3-T3
  types:
    - GR
  command: tune 7 <channel>
  dvbDevicePath: /dev/dvb/adapter7/dvr0
  decoder: arib-b25-stream-test
  isDisabled: false

サーバー設定

sudo mirakurun config server

でサーバー設定。TvTestから視聴するためにポートでの接続を有効にする

path: /var/run/mirakurun.sock

port: 40772

logLevel: 2

Mirakurun再起動

sudo mirakurun restart

Chinachu Betaインストール

cd $home
git clone -b devel-beta https://github.com/kanreisa/Chinachu
cd Chinachu
./chinachu installer
# Auto (Full) を選択
echo [] > rules.json
cp config.sample.json config.json
vim config.json

config.jsonは以下のように編集(環境依存部分は適宜変更して)

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

  "schedulerMirakurunPath": "http://unix:/var/run/mirakurun.sock:/",
  "schedulerEpgRecordTime": 5,
  "operSchedulerProcessTime" : 5000,
  "operSchedulerIntervalTime": 600000,
  "operRecOffsetStart": 3000,
  "operRecOffsetEnd": -2000,

  "recordedFormat": "[<date:mmdd>]<title>#<episode>(<channel-name>).ts",
  
  "tuners": [
    {
      "name"        : "PT3-S1",
      "isScrambling": false,
      "types"       : [ "BS" ],
      "command"     : "rivarun --b25 --priority 1 --sid <channel> - -"
    },
    {
      "name"        : "PT3-T1",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "rivarun --b25 --priority 1 --sid <sid> --ch GR/<channel> - -"
    },
    {
      "name"        : "PT3-S2",
      "isScrambling": false,
      "types"       : [ "BS" ],
      "command"     : "rivarun --b25 --priority 1 --sid <channel> - -"
    },
    {
      "name"        : "PT3-T2",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "rivarun --b25 --priority 1 --sid <sid> --ch GR/<channel> - -"
    },
    {
      "name"        : "PT3-S3",
      "isScrambling": false,
      "types"       : [ "BS" ],
      "command"     : "rivarun --b25 --priority 1 --sid <channel> - -"
    },
    {
      "name"        : "PT3-T3",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "rivarun --b25 --priority 1 --sid <sid> --ch GR/<channel> - -"
    },
    {
      "name"        : "PT3-S4",
      "isScrambling": false,
      "types"       : [ "BS" ],
      "command"     : "rivarun --b25 --priority 1 --sid <channel> - -"
    },
    {
      "name"        : "PT3-T4",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "rivarun --b25 --priority 1 --sid <sid> --ch GR/<channel> - -"
    }
  ],
  
  "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": "103" },
    { "type": "BS", "channel": "141" },
    { "type": "BS", "channel": "151" },
    { "type": "BS", "channel": "161" },
    { "type": "BS", "channel": "171" },
    { "type": "BS", "channel": "181" },
    { "type": "BS", "channel": "211" },
    { "type": "BS", "channel": "222" }
  ]
}

動作チェック

./chinachu service wui execute
# 問題なく起動できたらCtrl+\で終了

./chinachu update -f
# EPG取得テスト

システムサービスに登録

Chinachuはsystemdに対応してないっぽいので

http://www.jifu-labo.net/2015/09/centos7_chinachu/#systemd

を参考に登録

TVTestで視聴

BonDriver Mirakurunを使います

ビルド済みDLLはこちら

iniをこんな感じに編集すればOK

[GLOBAL]
SERVER_HOST="192.168.1.x"
SERVER_PORT=40772

; B25(1=enable)
DECODE_B25=0

[SPACE_GR]
;チャンネル数
CHANNEL_NUM=8

NAME_00="MX"
CHANNEL_00="16"

NAME_01="CX"
CHANNEL_01="21"

NAME_02="TBS"
CHANNEL_02="22"

NAME_03="TX"
CHANNEL_03="23"

NAME_04="EX"
CHANNEL_04="24"

NAME_05="NTV"
CHANNEL_05="25"

NAME_06="NHK_E"
CHANNEL_06="26"

NAME_07="NHK_G"
CHANNEL_07="27"

[SPACE_BS]
;チャンネル数
CHANNEL_NUM=9

NAME_00="BS1"
CHANNEL_00="101"

NAME_01="BSP"
CHANNEL_01="103"

NAME_02="BSNTV"
CHANNEL_02="141"

NAME_03="BS朝日"
CHANNEL_03="151"

NAME_04="BS-TBS"
CHANNEL_04="161"

NAME_05="BS-Japan"
CHANNEL_05="171"

NAME_06="BSフジ"
CHANNEL_06="181"

NAME_07="BS11"
CHANNEL_07="211"

NAME_08="BS12"
CHANNEL_08="222"

[SPACE_CS]
;チャンネル数
CHANNEL_NUM=0

これで完了です

キャプチャ


関連

共有

コメント

👤 あいざわひろし

🕓10月 3, 2017 1:01 pm 📎パーマリンク

こんにちは。
こちらの改良された tune.c ですが、isdb-t のチャネル/周波数テーブルが少々違う様でしたのでお知らせします。

19ch と 20ch に同じ周波数が記述されてしまっており、以後の行では一つずつずれてしまっているようです。

返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください