如何在 Windows 上将 ffmpeg 传送到 opusenc?

如何在 Windows 上将 ffmpeg 传送到 opusenc?

在 Linux 上你可以做这样的事情:

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

这很巧妙,因为这意味着您不必在将 WAV 数据传递给 opus 之前将其写入磁盘,因此编码可以在内存中动态进行。

我在 Windows 上安装了这两个ffmpegopusenc并且由于 Powershell 有管道,我希望能够做类似的事情,因此我正在尝试这个:

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

我期望发生的事情:ffmpeg 应该将 wav 音频直接传输到 opusenc 进行编码

实际情况是:仅有的运行 ffmpeg 而不将数据传递给 opusenc,这由 PS 进程的 RAM 不断增长和 opusenc 没有输出来表明。

答案1

使用常规命令cmd.exe而不是 Powershell。 完全相同的命令在 cmd 中有效,但在 PS 中无效:

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

相关内容