温存用適当エンコ環境を Amatsukaze 使用に切り替え

スポンサーリンク

 ここ数年は PT2 で録画したアニメのうち「録画したけどまた見るかも知れないから取り敢えず残しておく」なんていう適当に温存しておくエンコとして HandBrakeCLI を用いた自作のスクリプトでエンコードしてきた。
 適当エンコという物は筆者個人の定義として「CM カットやロゴ消し無し且つインタレ解除と逆テレシネ有り」ということ。これにより Fluid Motion が効いてヌルヌル且つ適度な画質を保ちつつファイルサイズを縮小して保存しておけるという事に。

筆者の適当エンコ要件

  1. 画質はそこまで求めない
  2. ファイルサイズは小さくしておきたい
  3. CM カットやロゴ消しは面倒だからやらない
  4. Fluid Motion 必須なのでプログレッシブの 24fps にする (インタレ解除 & 逆テレシネ)
  5. エンコードは速い方が良いので H.264 を用い、解像度は 960×720 SAR 4:3 の 720p にする。

 この条件に合わせて Amatsukaze の動作をカスタマイズしていく。今回はこの設定をメモとしつつ紹介してみたい。

Amatsukaze と Avisynth 用フィルターのダウンロード

 Github のリポジトリにある Release から一番上にある最新の物をダウンロードして使用させて頂く。
 適当なフォルダに展開しておく。

nekopanda/Amatsukaze
Amatsukaze - Automated MPEG2-TS Transcoder

 Avisynth のフィルターを使うことが出来るので、今回インタレ解除と逆テレシネで用いるフィルターの x64 版をダウンロードしておく。
 TIVTC はバージョン 1.0.10 の物を用いる事。最新版では動作しない。
 yadifmod2 は 0.0.4 を用いた。

pinterf/TIVTC
TIVTC
chikuzen/yadifmod2
yadifmod2 - YadifMod2 = Yadif + YadifMod

 ダウンロードしたフィルター 2 つともアーカイブ内 x64 フォルダ以下にある DLL ファイルを Amatsukaze\exe_files\plugins64 のフォルダにコピーしておく事。

Amatsukaze の設定

 Amatsukaze.vbs を実行すると GUI が現れるので、エンコード設定 のタブを表示させて設定をする。
 筆者設定は次の通り。

 エンコーダは x264 を用いる。これは x264.exe を用いたエンコードになる。
 追加オプション--crf 21 --aq-mode 3 --aq-strength 0.6 --asm avx --sar 4:3 としている。後に掲載する Avisynth スクリプト中でリサイズをしているが、もし 1280×720 と等倍で保持したい場合には --sar 1:1 と一部書き換える必要がある。
 好みに応じて更に --preset medium --tune animation などと追加しても良い。
 動画サイズを 960×720 として SAR 値を 4:3 とすると微妙にぼやける程度だが筆者には十分許容。1280×720 として SAR 値を 1:1 にした方が画質は良いがデータ量が増えるので、エンコ速度は少し低下するしファイルサイズも増える。画質を取るかエンコード速度とファイルサイズを取るかで好きに弄ってみると良い。
 また CPU として Ryzen 7 1700X を使用している関係上 --asm avx と付けているが、Intel の CPU であれば不要なので外すこと。

 次はメインフィルタを弄る。これは次に示す Avisynth のスクリプトをファイル名をプリセットに則って付けた物となる。
 「メイン_インタレ解除_720p.avs」というファイル名にして Amatsukaze\avs のフォルダに設置した。

Import("AMTFilterFunctions.avs")
src = IsProcess("AmatsukazeCLI.exe") ? AMT_SOURCE : LWLibavVideoSource("T:\sandbox\t28\ts\test.ts")
src.AssumeTFF()
Yadifmod2(mode=0, order=-1, field=-1).TDecimate(mode=1, hybrid=0)
Spline36Resize(960, 720)
AssumeBFF()

 Yadifmod2 の行はインタレ解除に逆テレシネを簡易的に行い、Spline36Resize で動画サイズをリサイズしている。上述の通り動画の解像度と 1280×720 の等倍で保持したい場合には Spline36Resize(1280, 720) とすれば良い。
 また、実写ソースで 29.970fps のままインタレ解除のみ行いたい場合には 4 行目を Yadifmod2(mode=0, order=-1, field=-1) とだけすれば良い。avs ファイルを別で用意して使い分けるとエンコもやりやすくなる。

 次に 2 枚目のスクリーンショットで「ロゴ消しをしない」にチェックを入れた。これはフェードイン/アウトをするタイプのロゴであるばあい、対応しきれずゴミが残るから。気にしないようであればそのままロゴ消しして貰うのも良いと思われる。

エンコードしてみる

 Amatsukaze の基本的な使い方は次のドキュメント通りに行うのでここでの説明は割愛するが、基本的には TS ファイルをキューにドラッグし、ロゴ情報がなければ生成してあげる手順を行うのみ。

nekopanda/Amatsukaze
Amatsukaze - Automated MPEG2-TS Transcoder

 オフィシャルのドキュメント通りに手順を踏んでエンコードが開始されるとこの様になる。

 筆者個人としての要件を設定した物だと期待通りのエンコード速度が得られ、概ね 110~125fps の速度でエンコードしてくれている。CPU は Ryzen 7 1700X で 3.8GHz に OC した状態だ。

エンコード結果

 エンコードの結果はログを見ることで把握出来る。

 今回の設定と TS ファイルの組み合わせでは 1,977MB の TS ファイルをエンコードし、7 分 10 秒かかった結果 253MB とする事が出来たという事になる。HandBrakeCLI で同様にした場合、エンコードしたファイルは 279MB だったのでそれよりも縮んだ。

 また、Amatsukaze を利用するに最大のメリットとして感じている物は自動的に CM 若しくはそれと思しき箇所へのチャプター入れが行われることだ。
 エンコード開始前にロゴ生成を要する理由はここにあってロゴの有無を検出する事で CM の位置を結構な精度で検出してくれる。
 CM 開始ないし終了位置にチャプターがあるということは、動画再生ソフトでチャプターを飛ばしてしまえば本編にサクッと飛ばすことが出来るのである。
 次のスクリーンショットは再生ソフトとして MPC-BE を用いてエンコードした MP4 を再生したところ。
 プログレスバーにある白いヒゲみたいなのがチャプター位置で CM や大きなシーンチェンジ位置になっていた。ともあれ CM に入ったら PageDown を押して本編に飛ばすことが出来たので視聴時間短縮にも繋がった。

おわりに

 保存用エンコをする場合なら CM カットをきっちりやっていたが、適当エンコならこの自動でチャプターを入れてくれつつも画質的に満足出来てエンコ速度も速い。
 キューがあるだけに複数ファイルのエンコードも出来てしまうのでかなり万能なエンコードツールないしフロントエンドだと思われる。
 Avisynth のフィルターを使えるところも強みだと思うので、画質により拘った設定も試行錯誤すれば可能だろうと思う。
 今まで自作したスクリプトでやってきた TS ファイルの適当エンコも Amatsukaze に乗り換えることで快適にエンコも視聴も出来るようになり、一石二鳥という感じだった。
 今後も愛用させて貰おうかと思う。

スポンサーリンク