Wie leite ich ffmpeg unter Windows an opusenc weiter?

Wie leite ich ffmpeg unter Windows an opusenc weiter?

Unter Linux können Sie etwa Folgendes tun:

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

Das ist praktisch, weil es bedeutet, dass Sie die WAV-Daten nicht auf die Festplatte schreiben müssen, bevor Sie sie an Opus weitergeben, sodass die Kodierung stattdessen direkt im Speicher erfolgt.

Ich habe beides ffmpegund opusences ist unter Windows installiert. Da Powershell über Pipes verfügt, habe ich erwartet, dass ich etwas Ähnliches tun kann. Deshalb versuche ich Folgendes:

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

Was ich erwarte: ffmpeg sollte WAV-Audio direkt an opusenc zur Kodierung weiterleiten

Was stattdessen geschieht: Es scheintnurFühren Sie ffmpeg aus, ohne die Daten an opusenc weiterzugeben. Dies wird durch ein konstantes RAM-Wachstum des PS-Prozesses und keine Ausgabe von opusenc angezeigt.

Antwort1

Verwenden Sie die normale cmd.exestatt der Powershell. Derselbe Befehl funktioniert in cmd, aber nicht in PS:

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

verwandte Informationen