2

我正在尝试利用 FFMPEG 拥有的大量音频过滤器,看看是否可以直接在自定义 AudioWorklet 中使用它们,这样我就不必为每个过滤器重新发明轮子。我遇到的一个选择是将 AVFilter 库转换为 WASM 并编写一个包装类来调用库函数。 https://dev.to/alfg/ffmpeg-webassembly-2cbl

但我正在寻找一种解决方案,其中数据可以通过管道传输到过滤器,并且输出会立即传递到其他音频工作集节点,以便可以毫无延迟地听到效果。

任何形式的帮助将不胜感激。

4

1 回答 1

1

看看Audio Worklet 设计模式。FFMPEG 模块将被编译为 WebAssembly 模块,AudioWorklet 可以直接与 WASM 模块通信,理想情况下是通过SharedArrayBuffer低延迟音频处理。

对于不支持 SharedArrayBuffer 的浏览器,MessagePort.postMessage()可以使用,传递TransferrableArrayBuffers。

于 2021-11-18T20:09:29.780 回答