Windows 10 + PT3 + Mirakurun + EPGStation + Amatsukaze で自動エンコード環境構築

#概要

**注意**
**EPGStation v1.x.xの頃の記事であり、2022年の現行のv2.X.Xには適用できません。**
->現在ver2.x.x環境でトライしていますので、そのうち更新すると思います。

本記事では@Daigorianさんの
[**Windows10 で EPGStation セットアップ(2020年10月版)**](https://qiita.com/Daigorian/items/4895233acc893955b45d#qsvenccexe-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B)
を参考にAmatsukazeを用いた自動エンコード環境を構築しました。

#実施環境
2015年ミドルCPUに2019年ミドルローのGPUを搭載した自作PCです。
今年こそはCPU換装したい。。。

| ハードウェア | ベンダ       | 製品名 |
|:-----------|:------------|:------------|
| CPU        | Intel       | Core i5-6500 |
| GPU        | Nvidia      | GTX 1660 Super|
| マザーボード | ASUS        | H170-M-PRO   |
| メモリ　　　 | -           | 16G*2 + 8G*2 |
| チューナー　 | アースソフト  | PT3 Rev.A |

| ソフトウェア | バージョン      |
|:-----------|:--------------|
| Windows Pro| バージョン 1909 |
| EPGStation | 1.7.6         |
| Mirakurun  | 3.4.1         |
| BonRecTest | 1.0.0         |
| BonDriver_PT3-ST | 1.0     |
| libaribb25 | 0.2.7         |
| Node.js    | 14.15.3       |
| Amatsukaze | 0.9.1.3       |


#録画環境構築
まずは録画環境の構築から。
[こちら](https://qiita.com/Daigorian/items/4895233acc893955b45d#qsvenccexe-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B)を参考に構築してください。
著者の@Daigorianさん、わかりやすい記事をありがとうございます。

#自動エンコード環境構築
###Amatsukazeのインストール
[こちら](https://github.com/nekopanda/Amatsukaze/releases)から7zをダウンロードし解凍する。
私は解凍後、`C:¥Amatsukaze`に格納しました。

###Amatsukazeのエンコード設定(プロファイル作成)
Amatsukaze.vbsを実行し、お好きにどうぞ。

###AmatsukazeServer.vbsの実行
AmatsukazeServer.vbsを実行し、AmatsukazeServerを起動させる。
(スタートアップに登録することで再起動されても安心）

###Amatsukaze実行バッチの作成
Amatsukazeを起動し右下のその他から「バッチファイル作成」を選択し、任意の場所に出力してください。
![picture1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/880909/2c8fa021-b3b7-7618-30c0-5bc8eafb5ff9.png)

生成されたバッチファイルを開くと以下のようになっています。

```:修正前
"AmatsukazeAddTask.exeのパス" -r "Amatsukazeのディレクトリパス" -f "$FilePath$" -ip "localhost" -p 32768 -o "出力パス" -s "プロファイル名" --priority 3 --no-move
```
**$****FilePath****$**部分を**%***とする。[^1]
出力パスやプロファイル名も各自の環境に修正してください。

```:修正後
"AmatsukazeAddTask.exeのパス" -r "Amatsukazeのディレクトリパス" -f "%*" -ip "localhost" -p 32768 -o "出力パス" -s "プロファイル名" --priority 3 --no-move
```
###EPGStation設定
Windowsの場合`%USERPROFILE%\EPGStation\config`に格納されている、EPGStationの設定ファイル(config.json)に下記を追記します。[^1]

`"recordedEndCommand": "Amatsukaze実行バッチのパス  %RECPATH% " ,`

```:config.json(追記例)
{
    "readOnlyOnce": false,
    "serverPort": 8888,
    "mirakurunPath": "http://localhost:40772",
〜省略〜
    "recordedEndCommand": "Amatsukaze実行バッチのパス  %RECPATH% " ,
〜省略〜
    "encode": [
        {
            "name": "H264",
            "cmd": "%NODE% %ROOT%\\config\\enc.js",
            "suffix": ".mp4"
        }
```

これで録画終了後、Amatsukazeに録画ファイルを食わせることができる。
設定を有効化するためにEPGStationを再起動する。ポップアップがでなければ成功。
(コンピューターの管理->サービスとアプリケーション->サービスでEPGStationを選択、サービスの再起動で可能)

#動作確認
EPGStationにアクセス(http://localhost:8888/)
して録画予約し、録画終了後エンコードが行われれば成功。

#参考
###Mirakurun
####チューナー設定

```:tuners.yml
- name: PT3-S0
  types:
    - BS
    - CS
  command: BonRecTest.exe --driver BonDriver_PT3-S0.dll --decoder libaribb25.dll --output - --channel <channel>
  decoder: ~
  isDisabled: false

- name: PT3-S1
  types:
    - BS
    - CS
  command: BonRecTest.exe --driver BonDriver_PT3-S1.dll --decoder libaribb25.dll --output - --channel <channel>
  decoder: ~
  isDisabled: false

- name: PT3-T0
  types:
    - GR
  command: BonRecTest.exe --driver BonDriver_PT3-T0.dll --decoder libaribb25.dll --output - --channel <channel>
  decoder: ~
  isDisabled: false

- name: PT3-T1
  types:
    - GR
  command: BonRecTest.exe --driver BonDriver_PT3-T1.dll --decoder libaribb25.dll --output - --channel <channel>
  decoder: ~
  isDisabled: false
```

####チャンネル設定
```:channels.yml
- name: ＮＨＫ総合・東京
  type: GR
  channel: '14'
- name: ＮＨＫＥテレ東京
  type: GR
  channel: '13'
- name: ｔｖｋ
  type: GR
  channel: '5'
- name: 日本テレビ
  type: GR
  channel: '12'
- name: テレビ朝日
  type: GR
  channel: '11'
- name: ＴＢＳ
  type: GR
  channel: '9'
- name: テレビ東京
  type: GR
  channel: '10'
- name: フジテレビジョン
  type: GR
  channel: '8'
- name: ＴＯＫＹＯ　ＭＸ
  type: GR
  channel: '7'
- name: BS01/TS0
  type: BS
  channel: '000'
- name: BS01/TS1
  type: BS
  channel: '001'
- name: BS01/TS2
  type: BS
  channel: '002'
- name: BS03/TS0
  type: BS
  channel: '003'
- name: BS03/TS1
  type: BS
  channel: '004'
- name: BS03/TS2
  type: BS
  channel: '005'
- name: BS05/TS0
  type: BS
  channel: '006'
  isDisabled: true
- name: BS05/TS1
  type: BS
  channel: '007'
  isDisabled: true
- name: BS09/TS0
  type: BS
  channel: 008
  isDisabled: true
- name: BS09/TS1
  type: BS
  channel: 009
- name: BS09/TS2
  type: BS
  channel: '010'
- name: BS11/TS0
  type: BS
  channel: '011'
- name: BS11/TS1
  type: BS
  channel: '012'
- name: BS11/TS2
  type: BS
  channel: '013'
- name: BS13/TS0
  type: BS
  channel: '014'
- name: BS13/TS1
  type: BS
  channel: '015'
- name: BS13/TS2
  type: BS
  channel: '016'
- name: BS15/TS0
  type: BS
  channel: '017'
- name: BS15/TS1
  type: BS
  channel: 018
- name: BS19/TS0
  type: BS
  channel: 019
- name: BS19/TS1
  type: BS
  channel: '020'
- name: BS19/TS2
  type: BS
  channel: '021'
- name: BS21/TS0
  type: BS
  channel: '022'
- name: BS21/TS1
  type: BS
  channel: '023'
- name: BS21/TS2
  type: BS
  channel: '024'
- name: BS23/TS0
  type: BS
  channel: '025'
- name: BS23/TS1
  type: BS
  channel: '026'
- name: BS23/TS2
  type: BS
  channel: '027'
```
---
###Amatsukaze
####NVEncプロファイル
```:NVEnc_HEVC_アニメ_デフォルト_ref6_bfram5
--vpp-afs preset=anime,24fps=true,timecode=true -c hevc --profile main10 --vbr 0 --vbr-quality 23 --multipass 2pass-quarter --gop-len auto --bref-mode each --ref 6 --bframes 5 --ssim
```

[^1]: 本来渡す引数は`%1`としたいが、番組名にスペースが入っている場合正しい引数を渡せないため、`%*`としている。`%RECPATH%`を`\"`で囲えばいいが正しく認識してくれないのでこうしている。うまくやる方法があれば教えてください。