Я пытаюсь прочитать ответ HTTP и добавить его в файл mp4box.Затем я хочу проанализировать весь файл, чтобы получить все поля moof + mdat.По какой-то причине, хотя тело ответа имеет 16 блоков (8 наборов moof + mdat), я только когда-либо вижу 2 блока в своем файле ISO-файла mp4box.
Я слушаю событие данных из интерфейса http.Затем я пытаюсь передать arrayBuffer в буфер MSE ISOFile, как описано в readme mp4box.js.По какой-то причине я вижу только 2 поля, когда вижу 16.
const request = require('request');
var MP4Box = require('../../dist/mp4box.all.js');
const now = Math.trunc((new Date() / 8000));
console.log(now);
const m4s = MP4Box.createFile();
request(`https://livesim.dashif.org/livesim-chunked/chunkdur_1/ato_7/testpic4_8s/A48/${now}.m4s`,{encoding:null})//this response is chunked from the server
.on('response',function(response){
console.log(response.statusCode);
console.log(response.headers['content-type']);
response.on('data',function(chunk){
let ab = chunk.buffer;
ab.fileStart = 0;
console.log('got chunk: ' + ab.byteLength + ' bytes');//8 chunks of ~5,000 bytes which are moof+mdat pairs of audio
m4s.appendBuffer(ab);
});
response.on('end',function(){
console.log('body complete');
console.log('found ' + m4s.boxes.length + ' boxes'); //result: 2 when it should be 16
});
});```
I'm expecting to see 8 chunks (which are pairs of moof+mdat boxes) in the m4s object?