一括処理できるので便利です。
バッチファイル
@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補正」というオプションが追加されており、これを「無効」にすることで、常に補正されないようにできます。
修正版のビルド方法はこちらの記事を参考にしてください。
コメント
いつも大変参考にさせていただいております。
以下の流れの中で本記事を参考にさせていただいております。
https://enctools.com/avisynth-ts-encode/#toc3
DGIndexで出力したファイルはdelay込みだと思いますが、その遅延の修正はどこで行われているでしょうか?
fawclでは遅延の修正はできないという認識なのですが・・・。
aacのファイル名に含まれているDelay値をもとに修正されます。
出力されるwavのファイル名では0msになっているはずです。
ご回答ありがとうございます。理解できました。
確かにfawclでの出力ファイルは0msでした。