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/ Как решить єту проблему? И чего я не пойму ? |
Использовать ноду для стриминга это плохая идея (.
Пока это похоже на попытку своими силами реализовать RTSP Имхо гораздо проще смотреть в сторону уже готовых решений например nginx rtsp streaming есть специальная библиотека для вещяния медиа потоков live555 или использовать VLC плеер он умеет вещать почти в любом формате и легко управляется через telnet или консоль |
MallSerg, понял. То что нужно огромное спасибо. Я искал решения на ноде, а нужно было искать решение не на ноде)
|
Часовой пояс GMT +3, время: 14:12. |