如何配置nginx plus以服务实时HLS(非VOD)

如何配置nginx plus以服务实时HLS(非VOD),nginx,http-live-streaming,Nginx,Http Live Streaming,我无法将最新的nginx plus配置为流式直播HLS(不是VOD),似乎HLS模块只执行VOD HLS功能!如果我提供的m3u8播放列表没有 #EXT-X-ENDLIST 这行不通。我发现它只能从mp4文件动态生成m3u8。我不能使用nginx文档中描述的rtmp模块。我希望nginx plus提供并播放包含3个ts段的实时m3u8播放列表,其中播放列表不以以下内容结尾: #EXT-X-ENDLIST 我怎样才能做到这一点 更新 有了@aergistal帮助,nginx plus似乎不需要

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

#EXT-X-ENDLIST
这行不通。我发现它只能从mp4文件动态生成m3u8。我不能使用nginx文档中描述的rtmp模块。我希望nginx plus提供并播放包含3个ts段的实时m3u8播放列表,其中播放列表不以以下内容结尾:

#EXT-X-ENDLIST
我怎样才能做到这一点

更新

有了@aergistal帮助,nginx plus似乎不需要流式播放我删除的m3u8播放列表

hls

从位置配置,它确实为m3u8 live ts段提供了良好的服务

依照

Nginx Plus:VOD HLS作为源站

所以我想开源的Nginx版本足以满足我的需求

编辑:添加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条目(仅供参考)

nginx配置服务器块:

server {
           listen 888;

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

    }

Nginx Plus支持使用
Apple HLS
Adobe HDS
的自适应流媒体。或者,您可以使用的
RTMP
输入创建
HLS-Live
流(也适用于Nginx的基本版本)

虽然Nginx不会创建实时的
HLS
流,但您仍然可以提供由另一个工具(如
ffmpeg
)创建的
HLS
,因为它使用
HTTP

即使在Nginx的免费版本中,这也是现成的,不需要配置任何东西

或者,您可以手动添加MIME类型或添加特定头(例如缓存控制、CORS):


Nginx Plus支持使用
Apple HLS
Adobe HDS
的自适应流媒体。或者,您可以使用的
RTMP
输入创建
HLS-Live
流(也适用于Nginx的基本版本)

虽然Nginx不会创建实时的
HLS
流,但您仍然可以提供由另一个工具(如
ffmpeg
)创建的
HLS
,因为它使用
HTTP

即使在Nginx的免费版本中,这也是现成的,不需要配置任何东西

或者,您可以手动添加MIME类型或添加特定头(例如缓存控制、CORS):


Nginx Plus支持使用
Apple HLS
Adobe HDS
的自适应流媒体。或者,您可以使用的
RTMP
输入创建
HLS-Live
流(也适用于Nginx的基本版本)

虽然Nginx不会创建实时的
HLS
流,但您仍然可以提供由另一个工具(如
ffmpeg
)创建的
HLS
,因为它使用
HTTP

即使在Nginx的免费版本中,这也是现成的,不需要配置任何东西

或者,您可以手动添加MIME类型或添加特定头(例如缓存控制、CORS):


Nginx Plus支持使用
Apple HLS
Adobe HDS
的自适应流媒体。或者,您可以使用的
RTMP
输入创建
HLS-Live
流(也适用于Nginx的基本版本)

虽然Nginx不会创建实时的
HLS
流,但您仍然可以提供由另一个工具(如
ffmpeg
)创建的
HLS
,因为它使用
HTTP

即使在Nginx的免费版本中,这也是现成的,不需要配置任何东西

或者,您可以手动添加MIME类型或添加特定头(例如缓存控制、CORS):



您不需要进行配置,只需将片段和播放列表写入可通过web访问的目录即可。您可以在
位置
块中设置mime类型和头。Nginx不会为您创建实时流,但是,您需要使用FFmpeg等其他工具来输出片段/播放列表。@a谢谢,我没有遇到生成片段和播放列表的问题。问题是,当我尝试在vlc或ios中打开链接时,它没有打开!但如果我尝试打开file.mp4.m3u8,它会工作!您是否有错误代码/消息?检查nginx
error.log
或VLC控制台输出。@A再次感谢,根据nginx error.log,我的位置配置似乎无效,我明天离开办公室时将使用有效配置进行测试。请在原始问题中添加live
m3u8
播放列表的内容好吗?为什么要这样使用字节范围,是否希望使用HLS版本3而不是添加了字节范围支持的版本4进行实时流传输?您不需要进行配置,只需将片段和播放列表写入web可访问的目录即可。您可以在
位置
块中设置mime类型和头。Nginx不会为您创建实时流,但是,您需要使用FFmpeg等其他工具来输出片段/播放列表。@a谢谢,我没有遇到生成片段和播放列表的问题。问题是,当我尝试在vlc或ios中打开链接时,它没有打开!但如果我尝试打开file.mp4.m3u8,它会工作!您是否有错误代码/消息?检查nginx
error.log
或VLC控制台输出。@A再次感谢,根据nginx error.log,我的位置配置似乎无效,我明天离开办公室时将使用有效配置进行测试。请在原始问题中添加live
m3u8
播放列表的内容好吗?为什么要这样使用字节范围,是否希望使用HLS版本3而不是添加了字节范围支持的版本4进行实时流传输?您不需要进行配置,只需将片段和播放列表写入web可访问的目录即可。您可以在
位置
块中设置mime类型和头。Nginx不会为yo创建实时流
server {
           listen 888;

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

    }
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';
}