【问题标题】:fluent-ffmpeg module: "end" event does not firefluent-ffmpeg 模块:“结束”事件不会触发
【发布时间】:2015-12-06 22:17:34
【问题描述】:

我正在使用fluent-ffmpeg npm 模块

我已经从我的客户端发布了一个视频,并且正在使用 new stream.Readable 来“读取”视频缓冲区。

ffmpeg 正在转换和保存文件,一切看起来都很漂亮,但“结束”事件永远不会触发。

我的代码如下:

const videoStream = new stream.Readable({
    read: function (n) {
        this.push(myVideoBuffer);
    }
});

ffmpeg(videoStream)
.on('progress', e => console.log(e))
.on('end', () => {
    console.log('ended')
    videoStream.destroy();
})
.on('error', e => console.error(e))
.save(`${process.cwd()}/media/videos/${Date.now()}.mp4`);

我获得了每个进度事件的日志,它确实保存了视频,但从未调用过“结束”事件的回调。

我认为这是一个错误,因为其他一切正常。

【问题讨论】:

    标签: node.js ffmpeg stream buffer fluent-ffmpeg


    【解决方案1】:

    显然,在我推送了我的 Buffer 之后,我不得不将 null 推送到我的可读流中以结束流,从而依次结束了 ffmpeg 进程。

    const videoStream = new stream.Readable({
        read: function (n) {
            this.push(myVideoBuffer);
            this.push(null);
        }
    });
    

    就是这样;现在我的“结束”事件正在触发,一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多