MJPEG ビデオの RTP パケットを作成しようとしています。最初に、フレームの長さを示すファイルの最初の 5 バイトを読み取り、次に返されたサイズを読み取ります。
これが私のコードです:
while(totalSizeScanned < totalSize){
var tmp_buf = Buffer(5)
fs.readSync(fd,tmp_buf,totalSizeScanned,5);
totalSizeScanned += 5;
var stringBuffer = tmp_buf.toString("utf-8");
this.total_len = parseInt(stringBuffer, 10);
var frame_buf = Buffer(this.total_len);
fs.readSync(fd, frame_buf, totalSizeScanned, this.total_len);
file_content[frameNo] = frame_buf;
frameNo++;
totalSizeScanned += this.total_len;
}
これにより、2 回目の readSync 呼び出しで「長さがバッファを超えています」というエラーが表示されます。私が読んだサイズはバッファのサイズでなければならないので、なぜこれが起こっているのかわかりません。ドキュメントとグーグルを約1時間検索してきましたが、何も見つかりませんでした。私はノードを初めて使用するので、これは些細なことかもしれませんが、よくわかりません。
ありがとう。