Nignx rtmp模块m3u8文件未生成

问题描述

我正在尝试使用Nginx rtmp模块创建本地流服务器。服务器本身似乎运行良好,因为我可以使用OBS流式传输到服务器。服务器将.ts视频文件存储在“ / usr / local / Nginx / sbin / hls”目录下,但不会创建与它们关联的m3u8文件

配置文件如下;

#user  nobody;
worker_processes  auto;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/Nginx.pid;


events {
    worker_connections  1024;
}

rtmp {

    server {

        listen 1935;  #listen port

        chunk_size 4096;


        application live {  #rtmp push stream request path 
            live on;
            hls on;
            hls_path /usr/local/Nginx/sbin/hls/;
            hls_fragment 3s;
            hls_playlist_length 18s;
        deny play all;
        }
    }
}


http {
    sendfile off;
    tcp_nopush on;
    # aio on;
    directio 512;
    default_type application/octet-stream;

    server {
        listen 8080;

        location / {
            # 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 /usr/local/Nginx/sbin/;
        }
    }
}

解决方法

解决方案通过设置流密钥来解决。 生成的视频文件名为-n.ts(n为视频编号)。设置流密钥后,文件名变为“ streamkey-n.ts”