hls_variant
`hls_variant` 指令用于在 NGINX RTMP 模块中为 HLS (HTTP Live Streaming) 指定变体流。
NGINX RTMP module
语法hls_variant name bandwidth | resolution;
默认值none
上下文
参数1+
说明
hls_variant 指令在 NGINX RTMP 模块中用于为 HLS (HTTP Live Streaming) 应用定义多个流变体。使用此指令可以推送同一内容的不同码率版本,使客户端能够根据当前网络状况选择最佳质量的流。这对于自适应流尤为有用,服务器可以在不同视频质量级别之间自动切换以优化用户体验。
每个 hls_variant 条目都需要一个参数,用于指定流变体的特性,包括带宽和分辨率。该指令通过提供必要的元数据来生成相应的播放列表文件(.m3u8),客户端利用这些文件访问不同的流变体。随着客户端适应变化的网络条件,HLS 播放器可以基于 hls_variant 指令所提供的各变体流的指定属性在这些变体之间无缝切换。
重要的是要谨慎配置流变体,确保它们被适当编码。如果各变体在编码参数上差异较大,用户在尝试实时切换流时可能会遇到播放问题。因此,在不同变体之间保持 codecs 和关键帧间隔的一致性对实现平滑的自适应流体验至关重要。
配置示例
application live {
live on;
hls on;
hls_variant low bandwidth=200000;
hls_variant mid bandwidth=800000;
hls_variant high bandwidth=5000000;
}⚠
确保带宽设置与内容的实际比特率相匹配,以避免播放问题。
⚠
所有变体应具有一致的编码参数,以确保流之间平滑切换。
⚠
在定义变体的 HLS 上下文中正确配置至关重要,以避免冲突。