node.js - 逐行解析node.js child_process的STDERR输出

标签 node.js ffmpeg

我正在使用 FFMPEG 和 Node.js 编写一个简单的在线转换工具。我试图弄清楚如何解析从 FFMPEG 接收的转换输出的每一行,并且只在浏览器中显示相关的结果客户端。就我而言,我想要 FFMPEG 在命令行上吐出的编码时间计数器。

到目前为止,我的功能是:

function metric(ffmpeg, res) { 

  ffmpeg.stdout.on('data', function(data) {
     res.writeHead(200, {'content-type': 'text/html'});
     res.write('received upload:\n\n');
     console.log(data);
  });

  ffmpeg.stderr.on('data', function (data) {
     var temp += data.toString();
            var lines = temp.split('\n');

            //for debugging purposes
            for(var i = 0;i<lines.length;i++) {
                console.log('this is line: ' + i + '----' + lines[i]);
            }
     res.write(lines);
  });

  ffmpeg.on('exit', function (code) {
     console.log('child process exited with code ' + code);
     res.end();
  });     
}

这最终返回的是多个数组,每个数组都包含来自前一个数组的数据以及下一个数据 block 。例如,函数返回数组 1:{0=>A, 1=>B},数组 2:{0=>A, 1=>B, 2=>C},数组 3:{0=>A, 1=>B、2=>C、3=>D},以此类推。

我对 Node 很陌生,所以我可能遗漏了一些简单的东西。任何指导将不胜感激!

最佳答案

这应该做的工作:

var buff = new Buffer(data);
console.log(buff.toString('utf8'));

有关缓冲区的更多信息,这里是文档的链接:http://nodejs.org/docs/v0.4.2/api/buffers.html

关于node.js - 逐行解析node.js child_process的STDERR输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8584171/

相关文章:

node.js - heroku bash 无法识别 sequelize 命令

Android NDK 交叉编译 FFmpeg,dlopen 失败 : cannot locate symbol

javascript - 异步加载 NPM 模块

node.js - Nest 无法解析 JobsService 的依赖项(?)。请确保索引 [0] 处的参数 JobModel 在 AppModule 上下文中可用

javascript - 将对象数组转换为与 nodejs/pg/unnest 兼容的数组

node.js - 是否可以在 URL 中不显示端口号的情况下使用 Node.js 服务器。

batch-file - 如何使用 ffmpeg 降低多个 JPEG 图像文件的质量?

c++ - OpenCV 和网络摄像机 - 或者 - 如何监视邻居?

FFMpeg DVB 字幕内存泄漏

ffmpeg - 无法识别的选项 'sync' 。拆分参数列表时出错 : Option not found