node.js - 在 NodeJS 中读取连续的二进制数据流

标签 node.js stream

我正在尝试从 Node.js 中的流(由子进程创建)读取大量二进制数据。我在流程中使用 stdout.on('data') 事件来获取数据。
无论我搜索多少,我似乎都找不到有关传递给回调的参数的任何文档。 typeof(data) 说它是一个对象,但据我所知,它只是一个数组。

它是一个数组吗?还是一根绳子?不管它是什么,我怎样才能得到一个字节数组?
这是我的代码:

var childProc = require('child_process'),
    spawn = childProc.spawn;

// /home/ubuntu/bin/ffmpeg -f video4linux2 -r 1 -s 640x480 -i /dev/video0 -c:v rawvideo -f rawvideo -pix_fmt rgb8 -

var streamProc = spawn('/home/ubuntu/bin/ffmpeg', [
    '-f', 'video4linux2',
    '-r', '1',
    '-s', '640x480',
    '-i', '/dev/video0',
    '-c:v', 'rawvideo',
    '-f', 'rawvideo',
    '-pix_fmt', 'rgb24',
    '-'
    ]);

streamProc.stdout.on('data', function(data) {

    var bytes = [];

    //Do some magical conversion here to populate the array

    //debugger;
    console.log('OUT: ' + bytes.join()); //Just some debugging steps
});

streamProc.stderr.on('data', function(data) {
    //debugger;
    if(process.argv.indexOf('showerr') != -1)
        console.log('ERR: ' + data);
});

streamProc.on('close',function(exitCode) {
    console.log('EXT: Program exited with code ' + exitCode);
});

我是否遗漏了一些明显的东西?

最佳答案

这是 Buffer实例

另请查看NodeBasicFFMPEG , ffmpeg-node , node-fluent-ffmpeg

请注意,“data”事件只为您提供一 block 数据,您可能需要使用类似 bufferlist 的内容自行重新组装它。图书馆

关于node.js - 在 NodeJS 中读取连续的二进制数据流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19308388/

相关文章:

javascript - 解析json数组流

node.js - 如何使用 React-Helmet 优化 SPA 的 SEO?

javascript - 将代理添加到处理程序 - Hapi

javascript - 在函数中解构数组失败并显示 "let is not defined"?

node.js - FFmpeg node js 将视频文件(.mp4)转换为m3u8 : Output format m3u8 is not available

python - 使用 python 接收 icecast 元数据

javascript - Sails.js w/Handlebars(SPA 风格)中 Ember.js 产量的等价物

c++ - 如何使用 gRPC 在客户端和服务器之间双向发送和接收流元数据?

c++ - 将std::ostringstream转换为std::stringstream

c++ - 在 C++ 中尝试在每个运算符重载级联之后写一个换行符