1

我正在使用 fluent-ffmpeg GIT 我想进一步处理保存的文件。但保存没有任何回调。如何使用已保存的文件进行承诺。我的代码是

ffmpeg(filename)
    .toFormat('mp3')
    .on('error', (err) => {
       console.log('An error occurred: ' + err.message);
    })
    .on('progress', (progress) => {
        console.log('Processing: ' + progress.targetSize + ' KB converted');
})
.on('end', () => {
        console.log('Processing finished !');
})
.save(`./${newname}.mp3`)

我的问题是“保存”功能没有回调。那么我怎样才能再次将输出保存在 S3 上呢?

4

1 回答 1

3

save方法不需要自己的回调。正如文档所解释的,

save(filename):将输出保存到文件

开始 ffmpeg 处理并将输出保存到文件中。

注意:save() 方法实际上是调用 output() 和 run() 的语法糖。

<...>

end 事件在处理完成时发出。侦听器接收 ffmpeg 标准输出和标准错误作为参数,除非在生成缩略图时(见下文),在这种情况下,它们会接收到生成的文件名的数组。

该流可以被承诺为任何其他流:

new Promise((resolve, reject) => {
    ffmpeg(filename)
    .toFormat('mp3')
    .on('error', reject)
    .on('progress', (progress) => {
        console.log('Processing: ' + progress.targetSize + ' KB converted');
    })
    .on('end', resolve)
    .save(`./${newname}.mp3`)
});
于 2018-08-07T12:42:22.153 回答