ts_hls

`ts_hls` 指令允许在 NGINX 中为 MPEG-TS 流生成实时 HLS (HTTP Live Streaming) 内容。

语法ts_hls path=PATH [segment=MIN[:MAX]] [segments=NUMBER] [max_size=SIZE] [noclean];
默认值none
上下文location
参数1+

说明

ts_hls 指令在 NGINX 的 location 块中使用,用于为 MPEG-TS 内容设置实时 HLS。指定此指令时,需要一个 PATH 参数,用来定义存放 HLS 播放列表和分片文件的目录。如果指定的目录尚不存在,NGINX 会创建该目录。对于每个活动的 MPEG-TS 流,NGINX 会在所指定的 PATH 下创建一个对应的子目录,子目录名由 URI 的最后一部分派生。

HLS 分片的生成由多个可配置参数控制。segment 参数定义每个分片的最小和最大时长,默认最小值为 5 秒。这意味着分片将在视频关键帧处开始创建,如果在最大时长内没有出现下一个关键帧,分片将被截断。此外,segments 参数可以控制 HLS 播放列表中可保留的最大分片数量——随着新分片的加入,较旧的分片将被移除,从而有效管理内存使用。

可以通过 max_size 参数限制分片的大小,并通过 noclean 控制文件清理,noclean 会阻止自动删除较旧的文件。需要注意的是,多个 ts_hls 指令中指定的同一路径不能被不同流重复使用,以确保每个流的文件得到独立管理。

配置示例

location /live {
    ts;
    ts_hls path=/var/hls segment=10s segments=5;
}

确保所指定的 PATH 对 NGINX 进程是可写的。

避免在多个 ts_hlsts_dash 指令中重复使用相同的路径,因为这会导致冲突。

如果使用动态段或大小,请注意内存管理,以避免过度消耗资源。

← 返回所有指令