Node.js 使用Nginx或Node流式传输已保存的HLS视频

Node.js 使用Nginx或Node流式传输已保存的HLS视频,node.js,nginx,video-streaming,http-live-streaming,hls.js,Node.js,Nginx,Video Streaming,Http Live Streaming,Hls.js,我们必须将存储的HLS(.m3u8,非实时)文件流式传输到本地服务器上的客户端。多个客户端同时请求多个视频,必须从服务器提供存储的m3u8片段 我看到两种选择 1) 使用nginx直播流媒体 2) 使用Nodejs或python应用程序将视频流传输到客户端 我对nginx和单独的应用服务器感到困惑。Nginx还支持一些无需任何应用服务器的流媒体。nginx可以为多个客户端流式传输多个存储的视频,还是仅用于实时流式传输 Nginx教程:: Nodejs应用程序:用于为存储的m3u8文件提供服务的H

我们必须将存储的HLS(.m3u8,非实时)文件流式传输到本地服务器上的客户端。多个客户端同时请求多个视频,必须从服务器提供存储的m3u8片段

我看到两种选择

1) 使用nginx直播流媒体 2) 使用Nodejs或python应用程序将视频流传输到客户端

我对nginx和单独的应用服务器感到困惑。Nginx还支持一些无需任何应用服务器的流媒体。nginx可以为多个客户端流式传输多个存储的视频,还是仅用于实时流式传输

Nginx教程::

Nodejs应用程序:用于为存储的m3u8文件提供服务的HLS服务器

我尝试了nodeApp,它工作得很好,我想用nginx reverseproxy来实现这个。但是我发现使用nginx的流媒体。因此,对于我的应用程序,我应该使用节点应用程序流式处理还是nginx流式处理?这个nginx一次是否动态支持多个流


任何有帮助的建议或文件

如果它不是活动的,那么任何Web服务器都可以工作,因为它只是一堆小文件。您不需要为此提供任何特殊的流媒体支持


用于视频点播的HLS可以从任何普通Web服务器提供服务。无论是nginx、Apache、IIS还是一些自制的节点服务器。

是的,我们可以使用任何HTTP服务器来提供静态文件。如果您想编写一些逻辑,那么必须使用ApplicationServer。 用于静态HLS服务的NGINX服务器配置

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或任何客户端应用程序

如果它不运行,任何HTTP服务器(包括Nginx)都将完成相同的任务。