node.js - fluent-ffmpeg:使用流将 wav 转换为 alac .m4a

标签 node.js ffmpeg fluent-ffmpeg

在我的 node.js 服务器上,我想将 wav 文件转换为苹果无损 .m4a
使用fluent-ffmpeg,到目前为止我得到了这个:

const transcoder = ffmpeg(fs.createReadStream(`${__dirname}/convertTest.wav`));

transcoder
  .withAudioCodec('alac')
  .addOutput(fs.createWriteStream(`${__dirname}/test2.m4a`))
  .run()
;
但这给我带来了以下错误:
Error: ffmpeg exited with code 1: Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 -- 
Conversion failed!
我读到 mp4 容器需要一个可搜索的文件,因此不适用于流。所以这实际上有效:
const transcoder = ffmpeg(`${__dirname}/convertTest.wav`);

transcoder
  .withAudioCodec('alac')
  .save(`${__dirname}/test2.m4a`)
  .run()
;
由于我将所有文件都作为流而不是物理文件,因此我正在寻找以某种方式将其抽象出来以使其与流一起使用的方法。 fluent-ffmpeg可以做到这一点吗?
alac 编解码器和 .m4a 格式是非可选的,所以我需要它来处理这些格式。

最佳答案

事实证明,ALAC 编解码器不支持流,因为必须在不同时间读取文件头。所以我不得不在没有流的情况下使用它。

关于node.js - fluent-ffmpeg:使用流将 wav 转换为 alac .m4a,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66425435/

相关文章:

macos - Mac OS X 上的 node.js npm "Error: No such module"

带有-hwaccel_output_format的FFMPEG Hwaccel错误

node.js - ffmpeg 输出文件不同

node.js - Nodejs 具有快速、静态目录名

node.js - 如何设置专用的专用 Node.js Ubuntu 服务器?

ffmpeg 编译因 cuda 失败,找不到 libnpp

ffmpeg - 为什么将音频添加到 mp4 需要很长时间?

node.js - ffmpeg mp3 通过 Node js 流式传输

node.js - FFMPEG:使用具有复杂滤波器的视频滤波器

javascript - 我想使用 readdir (异步)和递归来查找特定扩展名的文件