首页 文章

如何配置nginx plus以提供Live HLS(不是VOD)

提问于
浏览
0

我无法配置最新的nginx plus来流LIVE HLS(不是VOD),似乎hls模块只执行VOD HLS功能!如果我没有提供m3u8播放列表

#EXT-X-ENDLIST

它不会起作用 . 我发现它只能从mp4文件中动态生成m3u8 . 我不能使用nginx文档中描述的rtmp模块 . 我想要nginx plus来播放和播放包含3个ts段的直播m3u8播放列表,其中播放列表不会以:

#EXT-X-ENDLIST

我怎么能做到这一点?

Update

有@aergistal帮助,似乎nginx plus不需要流媒体直播m3u8播放列表,其中我删除了

hls;

从位置配置,它确实服务m3u8 live ts段就好了 .

按照https://en.wikipedia.org/wiki/HTTP_Live_Streaming

Nginx Plus:VOD HLS作为起源

所以我猜OpenSource Nginx版本足以满足我的要求 .

Edit: 添加m3u8内容(位于路径/usr/share/nginx/html/hls/t.m3u8),fstab条目,nginx配置

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:719727873
#EXT-X-BYTERANGE:629987@1809876
#EXT-X-PROGRAM-DATE-TIME:2015-08-13T10:54:29.523000Z
#HP-DTS:6890675118
#HP-IFRAMES:6890718318,6890761518,6890804718,6890847918,6890891118
#EXTINF:2,
mnt/win/Video/143/9/463262/bms_VIDEO_ENG_1439463262.ts?range=bytes=1809876-2439863
#EXT-X-BYTERANGE:667211@2439864
#EXT-X-PROGRAM-DATE-TIME:2015-08-13T10:54:31.923000Z
#HP-DTS:6890891118
#HP-IFRAMES:6890934318,6890977518,6891020718,6891063918,6891107118
#EXTINF:2,
mnt/win/Video/143/9/463262/bms_VIDEO_ENG_1439463262.ts?range=bytes=2439864-3107075
#EXT-X-BYTERANGE:593515@3107076
#EXT-X-PROGRAM-DATE-TIME:2015-08-13T10:54:34.323000Z
#HP-DTS:6891107118
#HP-IFRAMES:6891150318,6891193518,6891236718,6891279918,6891323118
#EXTINF:2,
mnt/win/Video/143/9/463262/bms_VIDEO_ENG_1439463262.ts?range=bytes=3107076-3700591

fstab条目(仅供参考)

//172.18.1.12/bms /usr/share/nginx/html/hls/mnt/win cifs user,uid=500,rw,suid,username=administrator,password=x 0 0

nginx配置服务器块:

server {
           listen 888;

           # Path for static files
           root /usr/share/nginx/html;
           location  /hls {
           }

    }

1 回答

  • 3

    Nginx Plus 使用 Apple HLSAdobe HDS 支持video-on-demand only的自适应流式传输 . 或者,您可以使用带有Nginx RTMP ModuleRTMP 输入创建 HLS Live 流(也适用于Nginx的基本版本) .

    虽然Nginx不会创建Live HLS 流,但您仍可以使用 ffmpeg 等其他工具创建 HLS ,因为它使用了 HTTP .

    即使在Nginx的免费版本中,这也是开箱即用的,无需配置任何东西 .

    (可选)您可以手动添加MIME类型或添加特定标头(例如,cache-control,CORS):

    location /hls {
          root /path/to/root;
    
          types {
               application/vnd.apple.mpegurl m3u8;
               video/mp2t ts;
          }
    
          add_header 'Access-Control-Allow-Origin' '*';
          add_header 'Cache-Control' 'no-cache';
    }
    

相关问题