Потоковое сохраненное видео HLS с использованием Nginx или Node
Мы должны передавать потоковые файлы HLS (.m3u8, а не в реальном времени) клиентам на локальном сервере. Несколько клиентов запрашивают несколько видео одновременно, и сохраненные сегменты m3u8 должны обслуживаться с сервера.
Я вижу две альтернативы
1) Потоковая передача с помощью nginx Live. 2) Использование Nodejs или приложения Python для потоковой передачи видео на клиентов.
Я запутался с nginx и отдельным сервером приложений. Nginx также поддерживает потоковую передачу без сервера приложений. Может ли nginx работать для потоковой передачи нескольких сохраненных видео для нескольких клиентов или только для прямой трансляции?
Nginx Tutorial:: https://docs.peer5.com/guides/setting-up-hls-live-streaming-server-using-nginx/
Приложение Nodejs: HLS-сервер для обслуживания сохраненных файлов m3u8 https://github.com/RationalCoding/hls-server
Я попробовал nodeApp и он работал нормально и хотел использовать для этого обратный прокси nginx. Но я нахожу потоковое с использованием nginx. Так что для моего приложения я должен пойти с потоковым приложением узла или потоковой передачи Nginx? этот nginx динамически поддерживает несколько потоков одновременно?
Любые предложения или документы полезны.
2 ответа
Если он не работает, то любой веб-сервер будет работать, так как это просто набор маленьких файлов. Для этого вам не нужна особая потоковая поддержка.
HLS для видео по запросу может обслуживаться с любого простого веб-сервера. Будь то nginx, Apache, IIS или какой-нибудь самодельный сервер узлов.
Да, мы можем использовать любой HTTP-сервер для обслуживания статических файлов. Если вы хотите написать логику, то должны использовать сервер приложений. NGINX сервер Conf для статического обслуживания HLS.
server {
listen 8001;
server_name localhost;
location /gcf-media {
# Disable cache
add_header 'Cache-Control' 'no-cache';
# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
types {
application/dash+xml mpd;
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /Users/tarun/Desktop/labVideo;
}
Теперь попробуйте localhost:8081/gcf-media/1/1.m3u8 в VLC или любом клиентском приложении.