DGIndexとFakeAacWavをバッチファイルで処理する

スポンサーリンク
スポンサーリンク
エンコード

一括処理できるので便利です。

スポンサーリンク
スポンサーリンク

バッチファイル

@echo off

rem プログラムのパス
set DGIndex="C:\DGIndex\DGIndex.exe"
set template="C:\DGIndex\template.avs"
set fawcl="C:\FakeAacWav\fawcl.exe"

rem ループ処理の開始
:loop
if "%~1" == "" goto end

rem DGIndexの開始
%DGIndex% -i "%~1" -o "%~dpn1" -ia 5 -fo 0 -yr 2 -om 2 -at %template% -hide -exit

rem fawclの開始
for %%i in ("%~dpn1*.aac") do %fawcl% -s2 "%%i"

shift
goto loop
:end

使い方

拡張子を.batにして保存してください。

DGIndex.exe、fawcl.exe、template.avsのパスを指定してください。

fawcl.exeはFAW.exeと一緒に入っていると思います。

template.avsは必須ではないですが、あると便利です。
例えば以下のように書きます。

d2v = "__vid__"
aac = "__aud__"
wav = LeftStr(aac, FindStr(aac, "DELAY") + 5) + "0ms_aac.wav"
MPEG2Source(d2v)
AudioDub(last, WAVSource(wav))

return last

wavのパスを入力する手間が省けて便利です。
avsファイルが不要なら-at %template%を消してください。

TSファイルをバッチファイルにドラッグ&ドロップすると処理が始まります。
複数の場合は順番に処理されます。

解説

DGIndex

-iaはiDCTアルゴリズムの設定です。

5(IEEE-1180 Reference)
4(64-bit Floating Point)
3(32-bit SSE2 MMX)

品質は5 > 4 > 3、速度は3 > 5です。

fawcl

DGIndexが出力したaacを探してfawclに渡しています。
aacにはDelay値が含まれていてファイル名が予測できないため、このような処理になっています。

-s2はwavを半分にします。
2GBを超えるとエラーになるため、それを回避しています。

d2v.badについて

たまにd2vと一緒にd2v.badが出力されることがあります。

フィールドオーダーの変化を検出して補正したためなのですが、この補正されたd2vを使用すると音ズレすることがあります。

GUIで操作すると以下のような画面が出て、補正するかどうか聞かれるのですが、コマンドラインだと出ないため補正されてしまいます。

これを回避する方法としてDGIndexの修正版を使用することをおすすめします。

修正版には「D2V補正」というオプションが追加されており、これを「無効」にすることで、常に補正されないようにできます。

修正版のビルド方法はこちらの記事を参考にしてください。

コメント

  1. Taka より:

    いつも大変参考にさせていただいております。
    以下の流れの中で本記事を参考にさせていただいております。
    https://enctools.com/avisynth-ts-encode/#toc3

    DGIndexで出力したファイルはdelay込みだと思いますが、その遅延の修正はどこで行われているでしょうか?
    fawclでは遅延の修正はできないという認識なのですが・・・。

    • thtsf より:

      aacのファイル名に含まれているDelay値をもとに修正されます。
      出力されるwavのファイル名では0msになっているはずです。

      • Taka より:

        ご回答ありがとうございます。理解できました。
        確かにfawclでの出力ファイルは0msでした。

タイトルとURLをコピーしました