nginx之使用 Nginx RTMP 模块的 HLS 不起作用

mfryf 阅读:77 2024-04-30 13:58:09 评论:0

所以我在我的 mac 上的 usr/local/nginx 位置安装了 NGINX 和 RTMP MODULE。 RTMP 流工作正常,但不是 HLS 版本。这是我的配置文件:

events { 
worker_connections  1024; 
} 
 
rtmp { 
 
server { 
 
    listen 1936; 
 
    chunk_size 4000; 
 
    application small { 
        live on; 
        # Video with reduced resolution comes here from ffmpeg 
    } 
 
    # video on demand 
    application vod { 
        play /var/flvs; 
    } 
 
    application vod2 { 
        play /var/mp4s; 
    } 
 
    # Many publishers, many subscribers 
    # no checks, no recording 
    application videochat { 
 
        live on; 
 
        # The following notifications receive all 
        # the session variables as well as 
        # particular call arguments in HTTP POST 
        # request 
 
        # Make HTTP request & use HTTP retcode 
        # to decide whether to allow publishing 
        # from this connection or not 
        on_publish http://localhost:8080/publish; 
 
        # Same with playing 
        on_play http://localhost:8080/play; 
 
        # Publish/play end (repeats on disconnect) 
        on_done http://localhost:8080/done; 
 
        # All above mentioned notifications receive 
        # standard connect() arguments as well as 
        # play/publish ones. If any arguments are sent 
        # with GET-style syntax to play & publish 
        # these are also included. 
        # Example URL: 
        #   rtmp://localhost/myapp/mystream?a=b&c=d 
 
        # record 10 video keyframes (no audio) every 2 minutes 
        record keyframes; 
        record_path /tmp/vc; 
        record_max_frames 10; 
        record_interval 2m; 
 
        # Async notify about an flv recorded 
        on_record_done http://localhost:8080/record_done; 
 
    } 
 
 
    # HLS 
 
    # For HLS to work please create a directory in tmpfs (/tmp/hls here) 
    # for the fragments. The directory contents is served via HTTP (see 
    # http{} section in config) 
    # 
    # Incoming stream must be in H264/AAC. For iPhones use baseline H264 
    # profile (see ffmpeg example). 
    # This example creates RTMP stream from movie ready for HLS: 
    # 
    # ffmpeg -loglevel verbose -re -i movie.avi  -vcodec libx264 
    #    -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1 
    #    -f flv rtmp://localhost:1935/hls/movie 
    # 
    # If you need to transcode live stream use 'exec' feature. 
    # 
    application hls { 
        live on; 
        hls on; 
        hls_path /tmp/hls; 
    } 
 
    # MPEG-DASH is similar to HLS 
 
    application dash { 
        live on; 
        dash on; 
        dash_path /tmp/dash; 
    } 
} 
} 
 
# HTTP can be used for accessing RTMP stats 
http { 
 
server { 
 
    listen      8080; 
 
    # This URL provides RTMP statistics in XML 
    location /stat { 
        rtmp_stat all; 
 
        # Use this stylesheet to view XML as web page 
        # in browser 
        rtmp_stat_stylesheet stat.xsl; 
    } 
 
    location /stat.xsl { 
        # XML stylesheet to view RTMP stats. 
        # Copy stat.xsl wherever you want 
        # and put the full directory path here 
        root /path/to/stat.xsl/; 
    } 
 
    location /hls { 
        # Serve HLS fragments 
        types { 
            application/vnd.apple.mpegurl m3u8; 
            video/mp2t ts; 
        } 
        root /tmp; 
        add_header Cache-Control no-cache; 
    } 
 
    location /dash { 
        # Serve DASH fragments 
        root /tmp; 
        add_header Cache-Control no-cache; 
    } 
} 
} 

我正在使用 hls要流式传输到的应用程序。当我查看位于 rtmp://ip:1936/hls/test 的流时我可以看得很清楚。当我尝试查看 http://ip:1936/hls/test.m3u8我看不到。我在此位置为 hls /usr/local/nginx/tmp/hls 创建了一个文件夹.我想知道这是否在正确的位置,因为文件夹中没有创建任何内容?会不会是权限问题?

我正在使用 OBS 流式传输使用 x246 编码的视频,但不确定它是否是音频的 AAC。

这里有一个类似的问题: https://groups.google.com/forum/#!topic/nginx-rtmp/dBKh4akQpcs
但没有答案:(。

任何帮助表示赞赏。谢谢。

请您参考如下方法:

您对 HLS 的内容超过端口 8080 并且 rtmp 超过 1936

表示 rtmp://ip:1936/hls/test
http://ip:8080/hls/test.m3u8


标签:nginx
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号