Загрузите видео по частям и сохраните их с помощью запроса Nodejs - PullRequest
0 голосов
/ 04 марта 2019

Я хочу загрузить фрагмент видеофайла по фрагменту, используя «запрос» 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, оба имеют одинаковые проблемы (неверный формат файла).Если файл чанка больше исходного видео, я получаю полный видео файл без звука.

...