Тема: video stream
Показать сообщение отдельно
  #1 (permalink)  
Старый 23.03.2015, 07:09
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

video stream
Не пойму про стримминг видео .
У нас есть на сервере файл 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/
Как решить єту проблему? И чего я не пойму ?
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием