Windows10で録画サーバー

前略

鴉河雛です

というわけで、以前から作りたかった録画サーバーですが、

ラズパイでうまくできなかったので、Windowsにターゲットを変えて構築してみました。

一応毎回言っていますが・・

ここから書く内容は素人がなんとなくやったらできたよ!っていうものですので、ご承知おきください

1.構築にあたって

今回構築する環境は以下になります

Windows10 Home 64bit (Intel NUC6i5SYH)

チューナー:PX-S1UD v2

カードリーダー:ジェムアルト ICカードリーダ

Mirakurun + Chinachu γ

2.Mirakurunを導入する

まずはよく聞くMirakurunを導入していきます。

導入については今回、以下を参考にさせていただきました。

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

- おともだちティータイム

BonRecTestをビルド

MirakurunはBonRecTest経由でチューナーへアクセスするようですので、こちらをビルドします。

GitHub - rndomhack/BonRecTest: Recoding test program for BonDriver

また、B25Decoderも必要ですが、こちらは各自で探してみてください

Node.jsをインストール

MirakurunはNode.jsの6.5.0以上、7.0.0未満が必要らしいので、そちらをインストールします

Node.jsにアクセスし、推奨版をインストールしましょう。

winser 及び Mirakurunをインストール

winserはnode.jsでwindowsのサービスを管理するツールらしいです。

こちらも必須になっているので導入していきます。

PowerShellを管理者権限で起動し、以下を実行してください。

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

完了したら、設定をしていきます。

設定ファイルは C:\Users\%username%\.Mirakurun にありますので、こちらを参考に設定していきます。

まず、tuners.ymlですが、今回はPX-S1UD-1なので、以下の通りに。

- name: PX-S1UD-1
  types:
    - GR
  command: BonRecTest.exe --decoder B25Decoder.dll --log --driver BonDriver_Siano.dll --output - --channel <channel>
  decoder: ~
  isDisabled: false

channels.ymlは​​​​地域に合わせて、設定します。

server.ymlは参考通りでいいと思います。

最後に、ファイアウォールにNode.jsのexeファイルを例外に追加して完了です。

3.Chinachu γをDocker上で動かす

Chinachu γはDocker上で動かします。

こちらは以下を参考にさせていただきました。

Chinachu γ をDocker上で動かす方法 | IT技術者の備忘録

まず、Windows上でDockerを動かせるように、Docker toolboxを導入します。

Docker Toolboxをインストール

まず、こちらにアクセスして、DL後インストールします。

インストールしたら、Docker Quickstart Terminalが表示されると思うので、そちらを起動します。

(動作確認や詳細は端折ります・・)

Chinachu γのイメージを取得

起動したターミナルへ、以下を入力してchinachuのイメージをDLします。

docker pull kunitaya/chinachu_g

docker-composeの設定

docker-composeを使用すると管理しやすいと聞いたので、そちらを使用して設定をしていきます。

適当なフォルダを作成し、その中にdocker-compose.ymlを作成してください。

作成した設定ファイルへ以下を記載します。

chinachu:
  image: chinachu_g
  volumes:
    - [録画データの保存先]:/opt/chinachu/recorded
    - /host/ssd/chinachu:/opt/settings
    - ./config.json:/opt/chinachu/config.json
    - ./rules.json:/opt/chinachu/rules.json
    - ./data:/opt/chinachu/data
  privileged: true
  ports:
    - 20772:20772
  extra_hosts:
    - "mirakurun:[mirakurunのIPアドレス]"
  command: /sbin/init

[mirakurunのIPアドレス]にはmirakurunをインストールしたPCのIPアドレスを記載します。

[録画データの保存先]には録画フォルダを指定します。
その際、ユーザフォルダ以外にする場合は、VirtualBoxにて共有フォルダーを追加する必要があります。

該当の仮想PCの設定で(初期はdefault)共有フォルダーの設定に移動します

共有.webp

新規追加ボタンを押して、

マウントしたいフォルダーのパスを指定し、ゲスト側でのフォルダー名を指定します。

自動マウントと永続化にチェックを入れてOKです。

共有e.webp

Chinachuの設定ファイルはdocker-compose.ymlと同じフォルダに作成されます。

(先にサンプルの設定ファイルを置いておく必要があるかもしれません)

Chinachuの実行

docker-compose up -d

実行できているか、確認してみます。

$ docker-compose ps
           Name Command State Ports
-----------------------------------------------------------------------------------------------
dockerwork_chinachu_1 /sbin/init Up 0.0.0.0:20772->20772/tcp
dockerwork_chinachu_data_1 echo chinachu_g data volum ... Exit 0

chinachuがUPしてれば問題なしです。

それではブラウザでアクセスしてみましょう。

※Edgeだと表示できなかったので、Chromeをお勧めします

chinachuの右上に設定があるので、そちらを押し設定を変更していきます。

config.json

{
  "uid": "chinachu",
  "gid": "video",
  "mirakurunPath": "http://[MirakurunのIPアドレス]:8888/",

  "recordedDir" : "./recorded/",

  "vaapiEnabled": false,
  "vaapiDevice": "/dev/dri/renderD128",

  "wuiOpenServer": true,
  "wuiOpenHost": "0.0.0.0",
  "wuiOpenPort": 20772,
  "wuiXFF": false,
  "wuiDLNAServerEnabled": false,
  "wuiMdnsAdvertisement": false,

  "recordedFormat": "[<date:yymmdd-HHMM>][<channel-name>]<fulltitle>.m2ts",
  "storageLowSpaceThresholdMB": 3000,
  "storageLowSpaceAction": "remove",
  "storageLowSpaceNotifyTo": null,
  "storageLowSpaceCommand": ""
}

こちらにも同じように[mirakurunのIPアドレス]にはmirakurunをインストールしたPCのIPアドレスを記載します。

完了したら、保存を押しましょう。

Chinachuを再起動する

設定を反映させるため、Chinachuを再起動します。

docker-compose restart

再起動完了後、録画・視聴等が行えるか確認し、問題なければ完了です。

別PCよりアクセス可能にする

このままだとDockerを動かしているPC上からしかchinachuにアクセスできないため、

ネットワークの設定を変更します。

※インターネットから直接アクセスできるようにはしないよう注意してください

VirtualBoxを開き、Defaultマシンの設定へ移動します。

左ペインのネットワークを選択し、右ペインのアダプター1の高度をクリックします。

ポートフォワディングをクリックして、新規ルールを追加します。

china1.webp

以下の画像のように設定すれば問題なしです。

china2.webp

最後に、ファイアウォールの詳細設定→受信の規則へ新しい規則を追加します。

ポートで20772を指定しましょう。

ローカルネットワーク上の別PCからchinachuにアクセスできれば完了です。

ってことで、こんな感じでとりあえずの設定が完了しました。

では今回はこの辺で、ではまた。

追記:

録画データを再生する場合、Android等はVLC、WindowsはK-Lite Codec Packで普通に再生できたりしますが、

字幕データを表示させたい場合は、対応したVLCを使う必要があるみたいです。

(私は字幕表示でいつもテレビを見てるので録画でもほしかったので助かりました・・)

ということで、メモ。

Git:nkoriyama/vlc-aribsub

上記からVLCをDLできます。

17/10/23追記:

結局おかしくなってWindowsはやめました。

Ubuntuで組みなおしてます。

Ubuntu Server 17.04 + Mirakurun + Chinachu で録画サーバ

そういえば、Windows Subsystem for Linuxはデバイスとかどうなんだろう・・・

つかめるならいい感じにまた組めるのかな。