パイプ渡しでのエンコード

avs2wav で WAV ファイルを作成して、wavegain で音量を変えて、neroAacEnc で AAC ファイルにエンコードしていたけれど。
wavegain から neroAacEnc をパイプで渡すように変更した。

avs2wav %avs% %avs:avs=wav%
WaveGain -y -o %avs:avs=wav% | neroAacEnc_SSE2 -ignorelength -q 0.4 -if - -of^
 %avs:avs=m4a%

avs2wav も標準出力へ出力できるし wavegain も標準入力から入力できるので、こちらも繋げてしまおうと思ったのだけれど、wavegain での解析後に ERROR: could not parse WAV file とエラーが出てしまう。

avs2wav %avs% - | WaveGain -y -o - | neroAacEnc_SSE2 -ignorelength -q 0.4 -if -^
 -of %avs:avs=m4a%

wavegain の動きは、まず全体に対して解析を行って、その後に全体に対して変更を適用しているように見えるので、入力と出力の両方を標準入力と標準出力から行うということができないような気はする。