如何在 FFMPEG 和 Node 中使用流

How to use streams with FFMPEG and Node

我有兴趣将 ffmpeg 与节点一起使用。我查看了许多可用的库(例如 fluent-ffmpeg),但它们不是我要找的。

我想知道是否有办法用节点执行 FFMPEG,而不是创建文件,而是将所有内容传输到流中。我不想将 disc space 用于 'reasons' 并且我的应用程序执行命令并将 audio/video 管道化为节点流更有意义。

有办法吗?如果是这样,我最好的选择是什么?

是的,作为子进程这真的很容易。

如果您使用连字符 - 作为输入或输出文件名,它将允许您使用 STDIN 或 STDOUT 进行管道传输。因此,你只需要做这样的事情:

const ffmpeg = child_process.spawn('ffmpeg', [
  '-i', '-',
  // Some other parameters here
  '-'
]);

您可以在此处使用 ffmpeg.stdinffmpeg.stdout

另请参阅:https://nodejs.org/api/child_process.html