En Linux puedes hacer algo como esto:
(bash)
ffmpeg -i foo.mp3 -f wav - | opusenc --bitrate 64 - bar.opus
Esto es genial, porque significa que no tienes que escribir los datos WAV en el disco antes de pasarlos al opus, por lo que la codificación ocurre sobre la marcha en la memoria.
Tengo ambos ffmpeg
instalados opusenc
en Windows, y como Powershell tiene canalizaciones, esperaba poder hacer algo similar, así que estoy intentando esto:
(PS)
> ffmpeg -y -i .\foo.mp3 -f wav - | .\opusenc.exe --bitrate 64 - bar.opus
Lo que espero que suceda: ffmpeg debería canalizar audio wav directamente a opusenc para codificarlo
Lo que sucede en cambio: parecesoloejecute ffmpeg sin pasar los datos a opusenc, indicado por un crecimiento constante de RAM del proceso PS y sin salida de opusenc.
Respuesta1
Utilice el cmd.exe
Powershell normal en lugar de. Exactamente el mismo comando funciona en cmd, pero no en PS:
> ffmpeg -y -i .\foo.mp3 -f wav - | .\opusenc.exe --bitrate 64 - bar.opus