hls_base_url
`hls_base_url` 指令设置由 NGINX RTMP 模块生成的 HLS (HTTP Live Streaming) 分段的基础 URL。
NGINX RTMP module
语法hls_base_url URL;
默认值none
上下文
参数1
说明
hls_base_url 指令主要用于 HTTP Live Streaming (HLS) 场景,用于指定 HLS 客户端可从中获取媒体分段的基础 URL。通过配置该指令,服务器管理员可以控制 HLS 分段相对于发布视频流的应用的位置。当客户端请求 HLS 播单 (M3U8 文件) 时,会使用该基础 URL 来构造访问媒体分段的完整 URL,这些分段通常以 .ts 文件提供。一个典型的 hls_base_url 使用场景是当分段的存放或访问路径与播单提供的位置不同时,这允许使用自定义访问点,例如 CDN 或外部存储,从而实现流管理与传输位置的解耦。例如,如果分段存放在不同的服务器上,设置合适的 hls_base_url 可以确保客户端仍能访问流而无需了解底层文件结构。该指令接受一个参数,指定应该以斜杠结尾的基础 URL。根据主机配置(分段是本地提供还是来自远程服务器),URL 可设置为相应的访问点。配置错误可能导致客户端无法访问媒体分段,因为路径无法正确解析。还应注意,如果 URL 包含特殊字符,可能需要进行正确的 URL 编码,以确保 HLS 客户端能够正确解析。
配置示例
application myapp {
live on;
hls on;
hls_base_url http://mycdn.domain.com/hls/;
}⚠
确保 base URL 以 trailing slash 结尾,否则 clients 可能无法正确解析 segment URLs。
⚠
使用错误的 URL 可能导致 clients 在尝试访问 .ts segments 时出现 404 错误。
⚠
如果 base URL 包含特殊字符,请仔细检查是否存在 URL encoding 问题。