いぶろぐのガジェット日記

いぶろぐのガジェット日記

ガジェットやOSS、その他興味のあるITニュースをぽつらぽつら投稿します。

【Windows】PX-W3PE や PX-Q3PE でも Chinachu や Mirakurun が使いたい


更新情報

・2016/12/26
Chinachu γのリリースに伴い、不要な設定など一部を更新しました。

・2017/01/17
BonDriver_BDAのアップデートに伴い、iniファイルの設定を更新しました。


はじめに

前回の記事で録画サーバを新しく組んだお話をしました。

今回はそれの中身についてのお話です。

以前の録画サーバの中身は、

  • OS:Ubuntu 16.04 LTS
  • チューナー管理:Mirakurun + Rivarun
  • 録画管理:Chinachu
  • テレビ視聴 + 録画視聴:Kodi + pvr.chinachu by Harekaze

上記のような構成でした。

この中で一番外せないのはKodiです。

PCに詳しくない同居人も使用するので、なるべくインターフェースはレコーダのそれに近くする必要があるためです。

ところで、PX-Q3PEはLinuxだとCentOSの少し古いバージョンでしか使えません。

しかし、同居人にCentOSを触らせるのはちょっと怖いです。

というわけで、Windows PC上のPX-Q3PEでMirakurunやChinachuを使ってみました。

BonDriverの記述を変えれば、PX-W3PEやPX-W3U3でも可能だと思います。


全体の構成

とりあえず、使うハードを列挙しておきます。

ちなみに、僕はWindows10の代わりにWindowsServer 2016を使いました(学生は無料なので...)。

録画時の流れはこんな感じ。



基本的な流れは、

Windows に Mirakurun + BonRecTest + Rivarun を導入する

を参考にさせていただきました。


サーバ構築の前に

サーバ構築に入る前に、Windows PC、Raspberry Piそれぞれの準備を済ませておきます。

Windows PCの準備

必要な準備を列挙しておきます。

  • PX-Q3PEのドライバ(Win10では署名無効起動が必要)

  • 外付けカードリーダ(紹介する方法ではQ3PE内蔵カードリーダが使えません。多分。)

  • 最新版Node.js

  • Visual Studio 2015 Community

  • BonRecTest

  • 64Bit版B25Decoder

  • radi-sh製BonDriver_BDA

  • radi-sh製BDASpecial-PlexPX

以上をダウンロード、上の4つはインストールも済ませてください。

あと、nodejs.exeをファイアウォール設定で許可しておく必要があります。

私はこっちのPCに録画ファイルを保存したかったので、Windows共有でHDDのフォルダを共有しておきました。

Raspberry Piの準備

  • OS(私はUbuntu Mate)

  • Chinachu(γバージョンを推奨)

  • Rivarun(Chinachu γを導入した場合不要)

以上のインストールを済ませてください。

Ubuntu Mateにした理由は、Chinachuをsystemdに対応させる必要がないためです。

ちなみに、今年のクリスマスにリリースされるChinachu γではRivarunは不要になります。なりました。

その時に記事を更新しておきます。
更新しました。


サーバ構築

Windows PC側

1.BonRecTestビルド

適当にビルドしてください。私はx64でビルドしました。

出てきたEXEファイルをC:¥TV¥BonRecTest¥にでも置いてください。

ここにパスを通しておきます。

2.BonDriver設定

BonDriver_BDAを解凍して、x64_通常版の中に入っているBonDriver_BDA.dllを以下のようにリネールし、BonRecTestと同じフォルダに入れてください。

-BonDriver_PlexPX_S0.dll

-BonDriver_PlexPX_S1.dll

-BonDriver_PlexPX_S2.dll

-BonDriver_PlexPX_S3.dll

-BonDriver_PlexPX_T0.dll

-BonDriver_PlexPX_T1.dll

-BonDriver_PlexPX_T2.dll

-BonDriver_PlexPX_T3.dll

先ほどと同じようにファイルをリネーム、移動してください。

あとはsample.iniをdllと同じ数だけ用意しリネームして、iniファイルとB25Decoder、BDASpecial-PlexPXを解凍して出てきたPlexPX.dllを同じフォルダに移動。

最終的にC:¥TV¥BonRecTest¥の中は以下のようになります。

-B25Decoder.dll

-BonDriver_PlexPX_S0.dll & .ini

-BonDriver_PlexPX_S1.dll & .ini

-BonDriver_PlexPX_S2.dll & .ini

-BonDriver_PlexPX_S3.dll & .ini

-BonDriver_PlexPX_T0.dll & .ini

-BonDriver_PlexPX_T1.dll & .ini

-BonDriver_PlexPX_T2.dll & .ini

-BonDriver_PlexPX_T3.dll & .ini

-BonRecTest.exe

-PlexPX.dll

TVTestにファイル群をコピーしてBonDriverが動くか確認しておいた方がいいと思います。もちろんTVTestもx64でビルドしないと動きません。

3.Mirakurunインストール

以下のコマンドを管理者権限を持たせたPowerShellにて実行。

npm install winser -g
npm install mirakurun -g --production

C:¥User¥Hoge¥.Mirakurunの中の3ファイルをそれぞれ設定していきます。

server.yml

server.ymlの中身は以下。設定する箇所はほとんどありません。

path: \\.\pipe\mirakurun

port: 12345

logLevel: 2

tuners.yml

tuners.ymlの中身は以下。全部書くのは冗長なのでTとかSとか数字を変えてコピーしてください。

name: PX-S0
types:
  - BS
command: BonRecTest.exe --decoder B25Decoder.dll --driver BonDriver_PlexPX_S0.dll --output - --channel <channel>
decoder: ~
isDisabled: false

channels.yml

BonDriver_BDAを使う場合、BS/CSはiniファイルのCHXXXのXXXの部分がチャンネルとなります。

また、地デジのチャンネルは自動で割り振られる設定になっているのですが、割り振られ方は基本的に、チャンネル表の数字が小さい順に割り振られます。

マスプロのサイト等で確認して、どの放送局がどのチャンネルに割り当てられるかを確認してください。

例えば東京スカイツリーならば(関西住みだからテストはしてないよ)、

という具合です。

channels.ymlの記述例を一部書いておくので、各自設定してください。

- name: NHK総合
  type: GR
  channel: '007'
.
.
.
- name: NHK BS1
  type: BS
  channel: '017'
  serviceId: 101

また、BonRecTestの動作がてら、チャンネルが本当にあっているのかテストをしておきます。

以下のコマンドを地デジとBSそれぞれチャンネルを変えて実行し、30秒ほど録画してみてください。

BonRecTest.exe --decoder B25Decoder.dll --driver BonDriver_PlexPX_T0.dll --log --output test.ts --channel 000

BS/CSの場合はPlexPX_SなBonDriverを指定してください。

C:¥User¥Hoge¥にあるtest.tsが正常に再生でき、中身がお目当のチャンネルの番組であれば成功です。

Raspberry Pi側(Chinachu γ対応)

ChinachuもRivarun(Chinachu γでは不要)も入っている状態のはずですので、あとはconfig.jsonの設定だけです。

私の設定は以下です。地デジのチャンネル設定部分は各自適切に行ってください。CSは見ないので記述していません。

{
  "schedulerMirakurunPath": "http://WindowsPCのIP:Mirakurunのポート番号",

  "recordedDir" : "/mnt/Rokuga/Recording/", ##Windows共有フォルダをマウントしてあります
  "recordedCommand": "/path/to/command/recorded.sh",
  "temporaryDir": "/tmp/",

  "wuiAllowCountries": ["JP"],

  "wuiPort"             : 10772,
  "wuiHost"             : "0.0.0.0",
  "wuiTlsKeyPath"       : null,
  "wuiTlsCertPath"      : null,
  "wuiOpenServer"       : false,
  "wuiOpenPort"         : 20772,
  "wuiXFF"              : false,
  "wuiPreviewer"        : true,
  "wuiStreamer"         : true,
  "wuiFiler"            : true,
  "wuiConfigurator"     : true,
  "wuiMdnsAdvertisement": true,

  "recordedFormat": "<title>_<date:m月d日>.ts", ## ここで記述を終える場合は一番最後のコンマを消してください ##

## 以下Chinachu γ以外のバージョンを導入した場合のみ設定 ##

  "operSchedulerProcessTime" : 5000,
  "operSchedulerIntervalTime": 600000,
  "operRecOffsetStart": 3000,
  "operRecOffsetEnd": -2000,
  "schedulerEpgRecordTime": 60,

  "tuners": [
    {
      "name"        : "PX-S0",
      "isScrambling": false,
      "types"       : [ "BS" ],
      "command"     : "rivarun --mirakurun http://WindowsPCのIP:Mirakurunのポート番号 --priority 1 --sid <sid> --ch BS/<channel> - -"
    },
    .
    .
    .
    {
      "name"        : "PX-T3",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "rivarun --mirakurun http://WindowsPCのIP:Mirakurunのポート番号 --priority 1 --sid <sid> --ch GR/<channel> - -"
    }

  "channels": [
    { "type": "GR", "channel": "007" },
    .
    .
    .
    { "type": "BS", "channel": "017", "sid": "101" },
    .
    .
    .
  ]
## Chinachu γ以外の場合の設定ここまで ##
}

以上でPX-Q3PEでもMirakurun + Chinachuが使えます。お疲れ様でした。


感想

本当はPT3とLinuxで組むのが一番いいのですが、転売価格も跳ね上がっていますし、地上波が2番組同時録画しかできないのは辛いです。

ChinachuをWindowsに入れる方法もあるみたいですが、さすがにそれは実験的すぎるので...

今の所は特に不具合もなく動いているので満足しています。

これで年末年始はまったり過ごします。

それでは。


P.S

Chinachu γがクリスマスにリリースされるようですね。

個人的に嬉しいのはチューナーロックの廃止です。

Chinachu Airが待ち遠しい...