今回はスマホやガジェット関連ではなく久々の録画サーバー関連のお話です。
2017年10月15日に公開した「ネイティブWindows版Chianchu的存在の「EPGStation」を使ってみた。」から、かれこれ1年が経とうとしている今、MySQL関連で以前の記事ではうまく動作しなくなりました。
今回は補足説明としてMySQL関連のみ解説していきます。(あとからここに書き直すかもしれません)
EPGStationをWindowsで使う方法(2018年9月最新版)
Mirakurunの導入
MirakurunはEPGStationのコア部分とも言えるチューナー管理と録画部分を担当するツールです。 元々Chinachuプロジェクトの一貫で作られたツールですが、公開当初からWindowsでの動作をサポートしているため、簡単に導入することができます。
この記事内ではMirakurun導入に関しては解説しないので、ご自分で調べて導入してください。
Node.js のインストール
EPGStationのベースとなる前提ソフトです。
Node.jsはMirakurunを導入済みの人は既に入っていると思いますが一応書いときます。
まずは公式サイトから安定版をダウンロード。

ダウンロードが終わったら起動します

うちの環境では↓この画面で5分ぐらい待たされました。(理由は謎)



↓特に弄る必要なければ「NEXT」






Node.jsのインストールは以上です。
MySQLのインストール
MySQLはEPGや予約のデータベース管理する前提ソフトです。 MySQLダウンロードページ内のインストーラーページからダウンロードします。
※zip版でファイルをC直下などに設置して、Pathを通すという方法もあります。
今回は、環境依存が少なそうなインストーラーを使う方法を解説しています。

↓Webインストーラー版とオフラインインストーラー版があります。個人的には、なにかあったときのためにオフライン版をおすすめします。
※(x86, 32-bit)と書いてありますが、これはインストーラーのbit数なので、64bitOSなら64bit版をインストールしてくれます。

↓「登録してね」ってページに飛びますが「No thanks, just start my download」でスキップできます。


ダウンロードが終わればインストールします。

以前は「Developer Default」でインストールしましたが、色々試した結果「Server Only」で十分だったので、「Sever Only」で進めます。

↓「Execute」でインストール

↓インストールが完了すると設定ウィザードが始まります

大体「NEXT」で大丈夫です



↓MySQLのrootパスワードは適当に決めてください。
Add UserでEPGStation用のユーザーアカウントを作成します。

Username、Passwordを決めます。今回はUsernameをepgstation、Passwordをpasswordにしています。
※ここで設定したユーザー名、パスワードはEPGStationの設定の際に使います。
そしてHostをlocalhostにします。


ほとんどデフォルト設定のままNextで進めるだけで十分です。

↓画像ではチェック入れてますがこの2つは起動しても特にやることないのでチェックを外して「NEXT」。

MySQLでデータベース作成の前準備
スタートメニューからMySQLを見つけて「MySQL 8.0 Command Line Client」を起動します。 ※2つ目の方はUnicode版らしいです。

まずはrootパスワードを要求されるので、入力しエンター。

次に文字コードを確認するためshow variables like "char%";と入力しエンター。

以前はutf8だったのですが、どういうわけか変わってしまったようです。
ここで一旦「exit」もしくはウィンドウを閉じてください。
文字コードをUTF8にする
Linuxでは

に書いてあるように、my.confを書き換えれば良いようですが、Windowsの場合my.iniになっているため「C:\ProgramData\MySQL」の中にある「MySQL Server 8.0」フォルダ内のmy.iniを書き換えます。メモ帳などのテキストエディタで開いてください。
参考までに↓

書き換えるとこが上記サイトと少しことなり、下記の2つを書き変えます。
- 66行目の「default-character-set」の#消してutf8を記入 (画像がcp936になってますが、正しくはutf8です)

- 100行目の「character-set-server」の#消してutf8を記入

ここまで書き換えたら上書き保存します。
MySQLを再起動
今回はMySQLの8.0.12.0だったのでMySQL80というサービスでインストールされています。 管理者権限でコマンドプロンプトを起動して
net stop mysql80
net start mysql80を実行すればMySQLが再起動されます。
データベース作成
再び「MySQL 8.0 Command Line Client」を起動します。
次にUTF8であることを確認するためshow variables like "char%";と入力しエンター。
↓の画像のようになればOK。

UTF8なことがわかったらデータベースを作成します。
※MySQL 5.7とコマンドが変わっているのでご注意ください。
今回はepgstationというデータベースを作ります。
grant all on epgstation.* to epgstation@localhost;
alter user epgstation@localhost identified with mysql_native_password BY 'password';という2行を実行します。
このコマンドはgrant all on 「データベース名」.* to 「作成したユーザー名」@localhost;alter user [作成したユーザ名]@localhost identified with mysql_native_password BY '[設定したパスワード]';
となっています。
OKとか出ていれば問題ありません。
ビルドツールのインストール
スタートボタンを右クリックして「コマンドプロンプト(管理者)」で起動します。

↓「はい」を選ぶ

npm install -g windows-build-toolsと入力しエンター

↓最終的にこうなれば成功です

「EPGStation」本体を導入
公式ドキュメントではGitからの導入を推奨されているので、まずはGitを導入します。 Gitの導入方法は

ここを参考にすれば簡単に導入できるはずです。
インストーラーでパス通しまでしてくれるので便利ですね。
Gitが導入できたらEPGStationをgit cloneします。
C直下などのフォルダパスの分かりやすい場所でコマンドプロンプトかパワーシェルを開き下記コマンドを入力して実行します。
git clone https://github.com/l3tnun/EPGStation.git
次にクローンしたフォルダに入って、インストール作業を行います。
cd EPGStationインストール作業は下記2つのコマンドのみです。
npm install
npm run buildこれでインストールは完了です。


もし「npm install」で「node-gyp rebuild」のエラーが出たら下記コマンドを実行してみてください。
npm install node-gyp -g「EPGStation」を仮起動
最低限の設定をして、試しに起動してみましょう。
起動前の準備
準備1. 設定ファイルをコピーしてリネームする
configフォルダ内のconfig.sample.json、operatorLogConfig.sample.json、serviceLogConfig.sample.jsonを同じフォルダ内にコピーして、「.sample – コピー」を消す。

準備2. config.jsonの編集(簡易バージョン)
とりあえず動かせればいいので仮バージョンです。 より細かく設定したい場合は作者様の解説ドキュメントを御覧ください。
{
"readOnlyOnce": false,
"serverPort": "8888",
"mirakurunPath": "http://localhost:40772",
<<<<↑要編集>>>>
同じPC内にmirakrunサーバーを立てていればmirakrunPathは↑のようにして、「<<<<↑要編集>>>>」を各自変えるだけです。 別のPCにmirakrunが、ある場合「”mirakurunPath”:」が「http://192.168.0.4:40772」みたいな感じになるようにします。
前準備も終わったので仮起動
npm startと入力し、エンター

こんな風になれば起動は成功です。
↓こういう警告がでると思うので不具合回避のため、一応両方にチェックを入れて「アクセスを許可する」をクリックしてください。

こうしてhttp://127.0.0.1:8888にブラウザでアクセスすると起動が確認できると思います。

起動が確認出来たら、コマンドのウィンドウに戻り「CtrlとC」をして
バッチ ジョブを終了しますか (Y/N)? と、でたらyでエンターすると終了します。
FFmpegの導入
FFmpegはライブストリーミングや録画の圧縮で使われるソフトです。
FFmpegはhttp://ffmpeg.zeranoe.com/builds/からビルド済みのものがダウンロードできます。

zipを解凍してbinフォルダをわかりやすいとこに置きましょう。
今回はC:\EPGStation\ffmpeg\binとなるように配置します。

Config.jsonの編集
"ffmpeg": "C:\\EPGStation\\ffmpeg\\bin\\ffmpeg.exe",
<<<<↑要編集>>>> "ffprobe": "C:\\EPGStation\\ffmpeg\\bin\\ffprobe.exe", <<<<↑要編集>>>> "maxEncode": 2, "encode": [ { "name": "H264", "cmd": "C:\\PROGRA~1\\nodejs\\node.exe %ROOT%\\config\\enc.js main", <<<<↑要編集>>>> "suffix": ".mp4", "default": true }, { "name": "H264-sub", "cmd": "C:\\PROGRA~1\\nodejs\\node.exe %ROOT%\\config\\enc.js sub", <<<<↑要編集>>>> "suffix": "-sub.mp4" } ],「<<<<↑要編集>>>>」の部分を各自環境に合わせて編集してください。 「C:\\PROGRA~1\\nodejs\\node.exe」の部分は公式解説ドキュメントにある通りですが、 Step1のときにインストールフォルダを変えていない場合はこれで良いと思います。
OS起動時に「EPGStation」が起動できるようにする
まずはwinserをインストール。
npm install winserでエンター

続いてEPGStationのインストールフォルダでコマンドプロンプトかパワーシェルを管理者権限で開き
npm run install-win-serviceを実行すればサービス化されます。

これでOS起動後に「EPGStation」を起動することが出来ます。
因みに、サービス化解除は
npm run uninstall-win-serviceです。
EPGStationアップデート方法
今回はGitを導入しているので、アップデートが来ても簡単に対応することができます。
アップデート方法はインストールしたフォルダでコマンドプロンプトかパワーシェルを開き下記4行のコマンドを入力するだけ。
git pull
npm update
npm update -D
npm run build総括的な何か
最近では本家であるChinachuの開発が滞っているようで、UI関連では後釜のEPGStationの方が発展しているようです。
個人的には録画鯖を始めたきっかけがChinachuだったのでChinachuも頑張って欲しいところです。
とはいえ、これだけのプロジェクトになるとほぼ一人で開発してる作者さんが要望とバグを解消のプレッシャーで色々思い悩むところがあるのかなぁ、なんて思っています。
そして、EPGStationはWindowsで動くという利点もあるのでLinuxの低画質なQSVエンコードではなく比較的高画質なQSVエンコードすることもできます。
Twitterの方でQSVエンコードをEPGStationに組み込む方法を伝授してもらったので、後日別記事にでご紹介したいと思います。














