传递附加写入流,
fs.createWriteStream(filePath, { flags: 'a' })
,作为输出似乎不起作用。
const stream = require('stream');
let bufferReadStream = new stream.PassThrough();
bufferReadStream.end(Buffer.concat(largeChunk));
ffmpeg(bufferReadStream)
.format('mp3')
.output(fs.createWriteStream(filePath, { flags: 'a' }))
.on('end', () => {
console.log('formatting finished!');
})
.on('error', err => {
console.log('format buffer error: ', err);
})
.run();
我正在将音频流(.webm)上传到节点,该节点被接受为缓冲区数组。 我试图避免将非常大的音频文件保存到磁盘,然后将其格式化为 .mp3 文件,因为大型音频文件需要等待时间。
我尝试将音频文件的块直接转换为 mp3 并将它们附加到 mp3 文件中。该代码第一次成功运行,创建了一个 mp3 文件,但第二次之后,它抛出一个错误,而不是将其附加到现有的 mp3 文件中。
format buffer error:
Error: ffmpeg exited with code 1: pipe:0: Invalid data found when processing input
at ChildProcess.<anonymous> (/Users/inspiredtolive/Desktop/HackReactor/Picky-Notes/node_modules/fluent-ffmpeg/lib/processor.js:177:22)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
不要制作/使用被截断的文件。相反,将请求上传流本身传递给您拥有的 ffmpeg 东西。 您可以使用像
multipart
模块这样支持 Stream 的东西。顺便说一句,您遗漏的其他代码(例如文件上传详细信息,以及 ffmpeg 来自哪个模块/它是如何初始化的)非常重要。
废水看波方式 我们弱财磨损天气 一周 工作日 周末 称体重 欢迎西湿鲸 无论什么时候轮子什么时候 哪里 是否哪个 同时白色 谁整谁为何宽 老婆狂野会赢风 窗口 有风的翅膀 获胜者 冬天 明智的愿望与内而外 狼女人奇迹美妙的木头 词工作工人世界担心 最坏的最坏的价值会受伤 写错了