Windows で ffmpeg を opusenc にパイプするにはどうすればいいですか?

Windows で ffmpeg を opusenc にパイプするにはどうすればいいですか?

Linux では次のように実行できます。

(bash)
ffmpeg -i foo.mp3 -f wav - | opusenc --bitrate 64 - bar.opus

これは便利です。なぜなら、WAV データを Opus に渡す前にディスクに書き込む必要がなくなり、代わりにメモリ内でオンザフライでエンコードが行われるからです。

私は両方を Windows にインストールしておりffmpegopusencPowershell にはパイプがあるので、同様のことができると期待していたので、これを試しています。

(PS)
> ffmpeg -y -i .\foo.mp3 -f wav - | .\opusenc.exe --bitrate 64 - bar.opus

私が期待していること: ffmpeg はエンコードのために wav オーディオを opusenc に直接パイプするはずです

代わりに何が起こるか:それはのみデータを opusenc に渡さずに ffmpeg を実行します。これは、PS プロセスの RAM が一定に増加し、opusenc からの出力がないことによって示されます。

答え1

Powershell の代わりに通常のものを使用してくださいcmd.exe。まったく同じコマンドが cmd では機能しますが、PS では機能しません。

> ffmpeg -y -i .\foo.mp3 -f wav - | .\opusenc.exe --bitrate 64 - bar.opus

関連情報