如何在node-fluent-ffmpeg上获取stderr

时间:2014-03-26 08:56:31

标签: node.js ffmpeg

现在不推荐使用saveToFile回调参数:

FfmpegCommand.prototype.saveToFile = function(targetfile, callback) {
    if (callback) {
      this.options.logger.warn('saveToFile callback is deprecated, use \'end\' and \'error\' events instead');

我已经改变了我的代码:

new ffmpeg({ source: source })
            .toFormat('ogg')
            .saveToFile(path.normalize(targetFile), function(stdout, stderr) {
                console.log('stdout', stdout);
                console.log('stderr', stderr);
            });

到此:

new ffmpeg({ source: source })
    .toFormat('ogg')
    .on('end', function() {
        console.log('file has been converted succesfully');
    })
    .on('error', function(err) {
        console.log('an error happened: ' + err.message);
    })
    .saveToFile(path.normalize(targetFile));

但我不知道如何获得旧代码作为参数(stderr)给我的stderr。 我知道我可以从'错误'事件中获取错误消息,但我想让stderr获得有关出错的更深层信息。

提前致谢。

1 个答案:

答案 0 :(得分:3)

您只需将stdout和stderr作为参数移动到.on(' error')事件中,如下所示:

    .on('error', function(err, stdout, stderr) {
        console.log(err.message); //this will likely return "code=1" not really useful
        console.log("stdout:\n" + stdout);
        console.log("stderr:\n" + stderr); //this will contain more detailed debugging info
    })