我们必须将存储的HLS(.m3u8,非实时)文件流式传输到本地服务器上的客户端。多个客户端同时请求多个视频,并且必须从服务器提供存储的m3u8段。
我看到两种选择
1)使用nginx Live进行流式传输 2)使用Nodejs或python应用程序将视频流式传输到客户端。
我对nginx和单独的应用程序服务器感到困惑。 Nginx还支持一些没有任何应用服务器的流媒体。 nginx可以用于为多个客户端流式传输多个存储的视频,还是仅用于实时流式传输?
Nginx教程:: https://docs.peer5.com/guides/setting-up-hls-live-streaming-server-using-nginx/
Nodejs app:用于提供存储的m3u8文件的HLS服务器https://github.com/RationalCoding/hls-server
我尝试了nodeApp及其工作正常,并希望使用nginx reverseproxy。但我发现使用nginx进行流式传输。那么对于我的应用程序,我应该使用节点应用程序流或nginx流?这个nginx一次动态地支持多个流吗?
任何有用的建议或文件。
答案 0 :(得分:1)
如果它不是实时的,那么任何网络服务器都可以工作,因为它只是一堆小文件。您不需要任何特殊的流媒体支持。
视频点播的HLS可以从任何普通网络服务器提供。无论是nginx,Apache,IIS还是一些自制的节点服务器。
答案 1 :(得分:0)
是的,我们可以使用任何HTTP服务器来提供静态文件。如果要编写一些逻辑,则必须使用应用程序服务器。 NGINX服务器配置用于静态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;
}
现在试试 在VLC或任何客户端应用程序中的localhost:8081 / gcf-media / 1 / 1.m3u8