1

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

明らかな何かが欠けていますか?

4

1 に答える 1

1

それはBufferインスタンスです

NodeBasicFFMPEG 、ffmpeg-nodenode-fluent-ffmpegもご覧ください。

「データ」イベントはデータのチャンクのみを提供することに注意してください。バッファリストライブラリなどを使用して自分で再構築する必要がある場合があります

于 2013-10-11T00:54:27.820 に答える