Как передать ffmpeg в opusenc в Windows?

Как передать ffmpeg в opusenc в Windows?

В Linux вы можете сделать что-то вроде этого:

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

Это удобно, поскольку означает, что вам не нужно записывать данные WAV на диск перед передачей их в Opus, поэтому кодирование происходит «на лету» в памяти.

У меня установлены оба ffmpegв opusencWindows, и поскольку в Powershell есть каналы, я ожидал, что смогу сделать что-то подобное, поэтому я пробую это:

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

Чего я ожидаю: ffmpeg должен передавать wav-аудио напрямую в opusenc для кодирования.

Что происходит вместо этого: кажется,толькозапустить ffmpeg без передачи данных в opusenc, о чем свидетельствует постоянный рост оперативной памяти процесса PS и отсутствие выходных данных от opusenc.

решение1

Используйте обычный cmd.exeвместо Powershell. Точно такая же команда работает в cmd, но не в PS:

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

Связанный контент