chinachu 使っていっぱい録画していると、だんだんHDDを圧迫していきます。 エンコードして圧縮してあげればいいですが、FreeBSD でハードエンコが動かないので*1とりあえず別のWindowsマシンでエンコードしていました(過去形
ところで、最近のWindowsのエンコ環境として、Amatsukaze というものがあります。 解凍して、実行して、そこに ts ファイルをドロップしてあげると、よきに計らってCMカットやらロゴ消しやらデインタレースやらやってくれるという とてもらくちんな環境があり、さっそくそれを導入してみましたが、Windowsマシンの NVEnc で、快適にエンコードをしてくれることがわかりました。
「機械でできることはなるべく機械にやってもらう」がモットーの私としては、できれば録画したらすぐに自動でエンコードしてくれたらいいのですが、 マシンが別のため、いちいち手動でドラッグ&ドロップしてやっていました。
ところで、Amatsukaze には AmatsukazeAddTask.exe という、「エンコサーバのキューにエンコを積む」という素敵なプログラムがあります。 これ、拡張子見てわかるように、Windows のプログラムですが、mono で動くように作者様が対応してくれたため、Windows以外の環境でも 動くようになりました。
あとは、組み合わせるだけでした。
ということで、用意するもの。
chinachu の環境 ハードエンコできるようなWindowsマシン 電気代。
とりあえず、Amatsukaze でエンコードできるようになっていることは前提として。 別のWindowsマシンからAmatsukazeAddTask が動くようにしておきましょう。別のWindowsマシン無い?あるよね? 録画されたファイルはSMBで共有されているものとします。ここで、エンコサーバ側からは、Yドライブとして見えるように してあります。
chinachu マシン側では、mono が動くようにしておきます。
あとは、Amatsukaze の配布物から、AmatsukazeAddTask.exe と、AmatsukazeServer.dll をコピーしておきます。
と返ってきたら、実行できます。 パスの通ったらフォルダに 下記のようなスクリプトを作って実行属性を与えておきます。 このスクリプトはEDCB用録画後実行バッチで作成したものをベースに手を加えてあげるとよいでしょう。 NVEnc_h264_small_deinterlace はエンコサーバのAmatsukaze で作ったプロファイルを指定します。この辺は それぞれの環境に合わせてqsvだったりx265だったり、お好みで。
ここで一旦テストして、Amatsukaze側にキューが登録されることを確認しておきましょう。 エンコサーバ側では AmatsukazeServer を実行して待ち受けておきます。
あとは、chinachu で録画後に自動実行されるように config.json に追記します。
と、思っていたら、そうはイカのきん(以下略
Amatsukaze はエンコード後に、成功した場合は Successedフォルダに、失敗した場合は –no-move を指定しないと failed フォルダに ts ファイルを移動してしまいます。 手動でエンコキューに入れている際は「テストモード」にすることによってそれを防げたのですが、AmatsukazeAddTask から登録する場合にはその設定がありません。 –no-move でいけるとおもったんだけどなー。 で、それだと chinachu の管理外になってしまうので、自動エンコードする際に指定するプロファイルのなかで、実行後バッチをしていしてあげましょう。 エンコサーバ側の、Amatsukaze フォルダの下のbatの中に、実行後_move.bat というファイルを作ります。中身は
for /f “delims=” %%a in ("%IN_PATH%") do set IN_DIR=%%~dpa move /Y %IN_DIR%*.ts %IN_DIR%..\
その後、プロファイルの設定で、実行後バッチにこれを指定して[適用]します。 これで、移動されたファイルをもとに戻してくれます。
最後になりましたが、いろいろと便利なソフトを公開してくれている作者の方々に感謝。
参考リンク: chinachu プロジェクトサイト https://chinachu.moe/
Amatsukaze の github https://github.com/nekopanda/Amatsukaze
Linux系の録画ツールで録画した番組をAmatsukazeで自動エンコードする方法 https://till0196.com/post4149