Windowsでも利用可能なChinachuのようにMirakurunで録画管理、録画をする「EPGStation」の導入手順を説明します。
My SQL 8.0になったことにより工程が大幅に変更されました。そのため下記内容では不十分です。My SQL 8.0に対応したやり方を別の記事で新たに書き直しました。新しく環境を構築するのであれば、そちらを参考にしてください。
My SQL 8.0対応版↓
はじめに
近頃のWindowsでのPC録画界ではEDCBで録画管理する人が殆どでしょう。
一方LinuxではWebのUIで動く可愛くてキレイなデザインのChinachuがあります。
ChinachuではLinux対応チューナーの入手が困難(PT3生産終了)になったこともあってなのか、最近では、Chinachuγからチューナー管理をしてCLIでの録画、EPG処理をするソフトであるMirakurunがネイティブWindowsに対応しました。
これによりWindowsで録画管理していた人でも「Chianchuを使ってみたい!」と思った人もいるのではないでしょうか。
ただ、今でもChinachuはWindwos対応はしていないためWindwos系OSで動かすには、仮想化やWindows版Docker(ほとんど一緒ってのは秘密)を使う必要があります。
そんな仮想化は自分で試した範囲だと無駄なリソースを使うなど、かなり不安定です。
そこで今回紹介するのは、Chinachuのコア部分とも言えるMirakurun(主に録画やEPG採集をしてくれるソフト)を使ったソフトで
対応OSはWindows、Linux系に対応のl3tnunさん制作の「EPGStation」です。
このソフトはChinachuの現状の欠点であるスマホやタブレットでの見づらさを克服したソフトです。
そして、ネイティブなWindowsでも実行可能という最大のメリットがあります。
この記事では「EPGStation」のWindowsOSでの導入方法を紹介していきます。
EPGStation導入方法
※MirakurunのWindowsでインストールする方法は他のサイトでも結構解説されているのでEPGStationのみ導入方法を説明します。
EPGStationはMirakurunなしでは録画、予約管理等は行なえませんのでMirakurunは必ず導入してくださいね。
参考にさせて貰ったページ
EPGStation Windows でのインストール方法
https://github.com/l3tnun/EPGStation/blob/master/doc/windows.md
Step1 Node.js のインストール
EPGStationのベースとなる前提ソフトです。
Node.jsはMirakurunを導入済みの人は既に入っていると思いますが一応書いときます。
まずは公式サイトから安定版をダウンロード。
ダウンロードが終わったら起動します
うちの環境では↓この画面で5分ぐらい待たされました。(理由は謎)
↓特に弄る必要なければ「NEXT」
Node.jsのインストールは以上です。
Step2 MySQLのインストール
My SQL 8.0になったことにより工程が大幅に変更されました。そのため下記内容では不十分です。My SQL 8.0に対応したやり方を別の記事で紹介しているのでそちらを参考にしてください。
My SQL 8.0対応版↓
MySQLはEPGや予約のデータベース管理する前提ソフトです。
MySQLダウンロードページ内のインストーラーページからダウンロードします。
※Zip版はpath通し等が面倒なのでインストーラーでやります。
↓Webインストーラー版とオフラインインストーラー版があります。個人的には、なにかあったときのためにオフライン版をおすすめします。
※(x86, 32-bit)と書いてありますが、これはインストーラーのbit数なので、64bitOSなら64bit版をインストールしてくれます。
↓「登録してね」ってページに飛びますが「No thanks, just start my download」でスキップできます。
ダウンロードが終わればインストールします。
Server onlyでも良さそうですが、メンテするときにShellないと死にそうかなと思うので「Developer Default」でインストール
↓これらは今回は不要です。
警告でますが「はい」でいいです。
↓「Execute」でインストール
↓インストールが完了すると設定ウィザードが始まります
大体「NEXT」で大丈夫です
↓MySQLのrootパスワードは適当に決めてください。
Add UserでEPGStation用のユーザーアカウントを作成します。
Username、Passwordを決めます。今回はUsernameをepgstation、Passwordをpasswordにしています。
※ここで設定したユーザー名、パスワードはEPGStationの設定の際に使います。
そしてHostをlocalhostにします。
↓MySQLのルーター設定です。特に弄らなくていいです。
↓MySQLのサーバー設定です。rootパスワードを入れて「Check」して「NEXT」。
↓画像ではチェック入れてますがこの2つは起動しても特にやることないのでチェックを外して「NEXT」。
Step3 MySQLでデータベース作成
スタートメニューからMySQLを見つけて「MySQL 5.7 Command Line Client」を起動します。
※2つ目の方はUnicode版らしいです。
まずはrootパスワードを要求されるので、入力しエンター。
次にUTF8であることを確認するためshow variables like "char%";
と入力しエンター。
↓の画像のようになればOK。
UTF8なことがわかったらデータベースを作成します。今回はepgstationというデータベースを作りたいので、
create database epgstation;
と、入力しエンター
そして
grant all on epgstation.* to epgstation@localhost identified by 'password';
※これ解説するとgrant all on 「データベース名」.* to 「作成したユーザー名」@localhost identified by '「任意のパスワード」';
となっています。
多分↓こんな感じでしょう。
Step4 ビルドツールのインストール
スタートボタンを右クリックして「コマンドプロンプト(管理者)」で起動します。
↓「はい」を選ぶ
npm install -g windows-build-tools
と入力しエンター
↓最終的にこうなれば成功です
Step5 「EPGStation」本体を導入
公式ドキュメントではGitからの導入を推奨されてますが、今回はとりあえず動けばいいということでZipで導入します。
GithubのEPGStationのページからダウンロードします。
ダウンロードしたら解凍後C\:直下などのわかりやすいとこに置きましょう。
ファイルを置いた場所でパワーシェル(コマンドプロンプト)を立ち上げて、コマンドを打ちます。
管理者権限で立ち上げてやってください。そうしないと二行目のコマンドがうまく行なえませんでした。
npm install
npm run build
環境にも寄りますが、結構時間がかかるようで、完了するまで何度かフリーズっぽい現象が起きて少し不安になりました。
それでも30分くらい放置してたらインストールが終わってました。
このウィンドウはStep6でも使うので一応開いておきましょう。
Step6 「EPGStation」を仮起動
最低限の設定をして、試しに起動してみましょう。
起動前の準備
準備1. 設定ファイルをコピーしてリネームする
configフォルダ内のconfig.sample.json、operatorLogConfig.sample.json、serviceLogConfig.sample.jsonを同じフォルダ内にコピーして、「.sample - コピー」を消す。
準備2. config.jsonの編集(簡易バージョン)
とりあえず動かせればいいので仮バージョンです。
より細かく設定したい場合は作者様の解説ドキュメントを御覧ください。
{
"serverPort": "8888",
"mirakurunPath": "http://127.0.0.1:40772",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"mysql": {
"host": "127.0.0.1",
"user": "epgstation",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"password": "password",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"database": "epgstation",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"connectTimeout": 1000,
"connectionLimit": 10
},
~~~~~~~~省略~~~~~~~~~~
同じPC内にmirakrunサーバーを立てていればmirakrunPathは↑のようにして、「<<<<↑要編集>>>>」を各自変えるだけです。
別のPCにmirakrunが、ある場合「"mirakurunPath":」が「http://192.168.0.4:40772」みたいな感じになるようにします。
準備3. operatorLogConfig.jsonの編集
{
"appenders": {
"system": {
"type": "file",
"maxLogSize": 1048576,
"backups": 3,
"filename": "C:\\EPGStation-master\\logs\\Operator\\system.log",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"pattern": "-yyyy-MM-dd"
},
"access": {
"type": "file",
"maxLogSize": 1048576,
"backups": 3,
"filename": "C:\\EPGStation-master\\logs\\Operator\\access.log",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"pattern": "-yyyy-MM-dd"
},
"stream": {
"type": "file",
"maxLogSize": 1048576,
"backups": 3,
"filename": "C:\\EPGStation-master\\logs\\Operator\\stream.log",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"pattern": "-yyyy-MM-dd"
},
"console": { "type": "console" },
"stdout": { "type": "stdout" }
},
"categories": {
"default": { "appenders": [ "console", "stdout" ], "level": "info" },
"system": { "appenders": [ "system", "stdout" ], "level": "info" },
"access": { "appenders": [ "access", "stdout" ], "level": "info" },
"stream": { "appenders": [ "stream", "stdout" ], "level": "info" }
}
}
「<<<<↑要編集>>>>」の部分のみ各環境に合わせて変更してください。
公式解説ページにも
unix 系では
/
を使用するため *.sample.json では/hoge/huga/piyo
と書かれていますが、windows では\\hoge\\huga\\piyo
このように書いてください
と書いてあるように「C:\EPGStation-master\logs\Operator」を指定したければ「C:\\EPGStation-master\\logs\\Operator\\」とする必要があります。
筆者はここでかなり引っかかったので皆さんも気をつけてください。
準備4. serviceLogConfig.jsonの編集
{
"appenders": {
"system": {
"type": "file",
"maxLogSize": 1048576,
"backups": 3,
"filename": "C:\\EPGStation-master\\logs\\Service\\system.log",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"pattern": "-yyyy-MM-dd"
},
"access": {
"type": "file",
"maxLogSize": 1048576,
"backups": 3,
"filename": "C:\\EPGStation-master\\logs\\Service\\access.log",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"pattern": "-yyyy-MM-dd"
},
"stream": {
"type": "file",
"maxLogSize": 1048576,
"backups": 3,
"filename": "C:\\EPGStation-master\\logs\\Service\\stream.log",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"pattern": "-yyyy-MM-dd"
},
"console": { "type": "console" },
"stdout": { "type": "stdout" }
},
"categories": {
"default": { "appenders": [ "console", "stdout" ], "level": "info" },
"system": { "appenders": [ "system", "stdout" ], "level": "info" },
"access": { "appenders": [ "access" ], "level": "info" },
"stream": { "appenders": [ "stream", "stdout" ], "level": "info" }
}
}
こちらも「operatorLogConfig.json」と同じ感覚で編集してください。
これで起動前準備は完了です。
前準備も終わったので仮起動
Step5の時に使ったウィンドウから
npm start
と入力し、エンター
こんな風になれば起動は成功です。
↓こういう警告がでると思うので不具合回避のため、一応両方にチェックを入れて「アクセスを許可する」をクリックしてください。
こうしてhttp://127.0.0.1:8888にブラウザでアクセスすると起動が確認できると思います。
起動が確認出来たら、コマンドのウィンドウに戻り「CtrlとC」をして
バッチ ジョブを終了しますか (Y/N)?
と、でたらy
でエンターすると終了します。
Step7 FFmpegの導入
FFmpegはライブストリーミングや録画の圧縮で使われるソフトです。
FFmpegはhttp://ffmpeg.zeranoe.com/builds/からビルド済みのものがダウンロードできます。
zipを解凍してbinフォルダをわかりやすいとこに置きましょう。
今回はC:\EPGStation-master\bin
となるように配置します。
Config.jsonの編集
~~~~~~~~省略~~~~~~~~~~
"encode": [
{
"name": "H264",
"cmd": "C:\\PROGRA~1\\nodejs\\node.exe C:\\EPGStation-master\\config\\enc.js main",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"suffix": ".mp4",
"default": true
},
{
"name": "H264-sub",
"cmd": "C:\\PROGRA~1\\nodejs\\node.exe C:\\EPGStation-master\\config\\enc.js sub",
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
"suffix": "-sub.mp4"
}
],
"recordedViewer": {
"ios": "infuse://x-callback-url/play?url=http://ADDRESS",
"android": "intent://ADDRESS#Intent;package=com.mxtech.videoplayer.ad;type=video;scheme=http;end"
},
"recordedDownloader": {
"ios": "vlc-x-callback://x-callback-url/download?url=http://ADDRESS&filename=FILENAME",
"android": "intent://ADDRESS#Intent;package=com.dv.adm;type=video;scheme=http;end"
},
"maxStreaming": 2,
"mpegTsStreaming": [
{
"name": "1280x720(main)",
"cmd": "C:\\EPGStation-master\\bin\\ffmpeg.exe -re -dual_mono_mode main -i pipe:0 -c:a aac -ar 48000 -ab 192k -ac 2 -c:v libx264 -s 1280x720 -filter:v yadif -aspect 16:9 -vb 3000k -f mpegts pipe:1"
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
},
{
"name": "720x480(main)",
"cmd": "C:\\EPGStation-master\\bin\\ffmpeg.exe -re -dual_mono_mode main -i pipe:0 -c:a aac -ar 48000 -ab 128k -ac 2 -c:v libx264 -s 720x480 -filter:v yadif -aspect 16:9 -vb 1500k -f mpegts pipe:1"
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
},
{
"name": "無変換"
}
],
"mpegTsViewer": {
"ios": "vlc-x-callback://x-callback-url/stream?url=http://ADDRESS",
"android": "intent://ADDRESS#Intent;package=org.videolan.vlc;type=video;scheme=http;end"
},
"recordedHLS": [
{
"name": "1280x720(main)",
"cmd": "C:\\EPGStation-master\\bin\\ffmpeg.exe -dual_mono_mode main -i %INPUT% -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -threads auto -c:a aac -ar 48000 -ab 192k -ac 2 -c:v libx264 -s 1280x720 -aspect 16:9 -vb 3000k -flags +loop-global_header %OUTPUT%"
},
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
{
"name": "720x480(main)",
"cmd": "C:\\EPGStation-master\\bin\\ffmpeg.exe -dual_mono_mode main -i %INPUT% -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -threads auto -c:a aac -ar 48000 -ab 128k -ac 2 -c:v libx264 -s 720x480 -aspect 16:9 -vb 1500k -flags +loop-global_header %OUTPUT%"
}
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
]
}
「<<<<↑要編集>>>>」の部分を各自環境に合わせて編集してください。
「C:\\PROGRA~1\\nodejs\\node.exe」の部分は公式解説ドキュメントにある通りですが、
Step1のときにインストールフォルダを変えていない場合はこれで良いと思います。
enc.jsの編集
const spawn = require('child_process').spawn;
const ffmpeg = 'C:\\EPGStation-master\\bin\\ffmpeg.exe';
<<<<<<<<<<<↑要編集>>>>>>>>>>>>>
let mode = 'main';
if(process.argv.length >= 3 && (process.argv[2] === 'main' || process.argv[2] === 'sub')) {
mode = process.argv[2];
「<<<<↑要編集>>>>」の部分を各自環境に合わせて編集してください。
Step8 OS起動時に「EPGStation」が起動できるようにする
まずはwinserをインストール。
npm install winser
でエンター
続いてEPGStationのインストールフォルダで
npm run install-win-service
でサービス化されます。
これでOS起動後に「EPGStation」を起動することが出来ます。
因みに、サービス化解除は
npm run uninstall-win-service
です。
あとがき
EPGStationは個人的にはEDCBの「EDCB Material WebUI」っぽい感じがしました。
WindowsとMirakurunを繋ぐ架け橋的存在だと思っているので今後の発展にも期待です。
コメント