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

现在saveToFilecallback参数已被弃用:

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)); 

但我不知道如何获得旧代码给我作为param(stderr)的stderr。 我知道我可以从“错误”事件中获取错误消息,但是我想要获得stderr来获取有关哪里出错的更深入的信息。

提前致谢。

您只需将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 })