Я хочу загрузить фрагмент видеофайла по фрагменту, используя «запрос» Nodejs, и сохранить его как один видеофайл.
Я уже сделал это -
function IDMLoop() {
request
.get(url, {
headers: {
'User-Agent': 'request',
'Range': `bytes=${rangeStart}-${rangeEnd}`
}
})
.on('response', function (response) {
console.log()
var body = '';
response.on('data', function (chunk) {
body += chunk;
});
response.on('end', function () {
console.log('BODY: ' + body);
// tried both one but getting invalid file format
fs.writeFileSync('000000001.mp4', body);//---------------------------(1)
fs.appendFileSync('00000000.mp4', Buffer.alloc(1024*11, body));
});
})
// this method also showing invalid file format
// .pipe(fs.createWriteStream(`doooodle.${contentType}`, { start: rangeStart })) //--------------------------------------(2)
.on('finish', function () {
console.log('err')
rangeStart = rangeEnd + 1;
rangeEnd = (rangeStart === totalFilesize) ? totalFilesize : rangeStart + diff;
if (rangeStart <= totalFilesize) {
IDMLoop()
} else {
console.log('finish download');
}
})
.on('error', function (err) {
console.log(err)
})
}
IDMLoop()
Я пыталсяМетод 1 и 2, оба имеют одинаковые проблемы (неверный формат файла).Если файл чанка больше исходного видео, я получаю полный видео файл без звука.