Не пойму про стримминг видео .
У нас есть на сервере файл video.mp4 нам нужно отдать его на клиент.
1. Нужно установить заголовки и проверить range
header = {
"Cache-Control": "public; max-age=36000",
Connection: "keep-alive",
"Content-Type": info.mime,
"Content-Disposition": "inline; filename=" + info.file + ";",
"Accept-Ranges": "bytes"
};
if (info.rangeRequest) {
// Partial http response
code = 206;
header.Status = "206 Partial Content";
header["Content-Range"] = "bytes " + info.start + "-" + info.end + "/" + info.size;
}
2. Нужно создать стрим отдать его на клиент
stream = fs.createReadStream(info.path, { flags: "r", start: info.start, end: info.end });
stream = stream.pipe(new Throttle(settings.throttle))
stream.pipe(res);
stream.on ( "close", function ( ) {
res.status(200).end(0);
} );
или так
stream = fs.createReadStream(info.path, { flags: "r", start: info.start, end: info.end });
stream.pipe(res);
stream.on ( "close", function ( ) {
res.status(200).end(0);
} );
Но при попытке открыть 2 вкладки с одними и теми же видео видео одна вкладка висит пока открыта первая.. Если использовать статик сервер тоже самое.
Вот демка на статик сервере thecyber.16mb.com/player/
Как решить єту проблему? И чего я не пойму ?