【问题标题】:Fluent ffmpeg how to user save callback流利的ffmpeg如何用户保存回调
【发布时间】:2019-01-14 13:08:37
【问题描述】:

我正在使用 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 上呢?

【问题讨论】:

    标签: node.js express amazon-s3 ffmpeg fluent-ffmpeg


    【解决方案1】:

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

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

    启动 ffmpeg 处理并将输出保存到文件中。

    注意:save() 方法实际上是调用两者的语法糖 输出()和运行()。

    <...>

    处理完成时发出结束事件。侦听器接收 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`)
    });
    

    【讨论】:

    • 所以.on("end ")会在保存后调用?
    • 这个问题并不完全正确。 save是同步调用;这是关于流应该做什么的说明。在save 之后调用的是end callback。我想这就是你的意思,答案是肯定的。
    猜你喜欢
    • 2021-04-04
    • 2016-11-18
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    相关资源
    最近更新 更多