延迟是指某一特定视频帧被设备(摄像机、播放机、编码器等)捕获的时间与该帧在终端用户显示器上播放的时间之间的时间差
1.各个环节的缓存区
2.服务端的GOP缓存
3.带宽和传输距离
4.网络抖动和拥塞控制
HLS的一个分片大概5-10s,一般加载3个分片播放。所以延迟大概15-30s.
使用EXT-X-PART标签来表示更小的分片,一个分片的最小持续时间为200毫秒。
下面HLS文件中可以看到第271分片被分割成11部分,每部分333ms。
通过HTTP/2推送模式节省两次RTT:
不发送完整的播放列表,而是发送播放列表的增量(默认的播放列表被保存,然后只在出现时发送友答增量,而不是发送完整的播放列表);
服务器的责任是保留请求(阻塞),直到包含新片段的播放列表版本可用。阻断播放列表的重新加载消除了轮好谨慧询;
通过在客户端请求中,增加参数来表明需要哪个位置的数据:
_HLS_msn=<M>: 序列号
_HLS_part=<N>: part号
_HLS_skip=YES|v2 可以跳过
例如:
对请求: https://example.com/2M/waitForMSN.php?_HLS_msn=273&_HLS_part=3 &_HLS_skip=YES 的响应如下:
通过EXT-X-PRELOAD-HINT标签,来声明即将产生的片段。
客晌裤户端可以提前发起请求,当该片段生成时立即回复给客户端。
LL-HLS围绕影响延时的几个因素,进行优化。
更小的分片划分,相当于减少的服务端的缓存, PRELOAD标签减少网络建联耗时的影响,服务器阻塞,减少建联耗时和轮询消耗。
参考地址:
https://developer.apple.com/documentation/http_live_streaming/enabling_low-latency_http_live_streaming_hls
https://zhuanlan.zhihu.com/p/358492414
HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播举枣和点播,主要应正者拆用在iOS系统,为iOS设备(如iPhone、iPad)提供音视频直播和点播方案。HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小。要实现HLS点播,重点在于对媒嫌迅体文件分段,目前有不少开源工具可以使用。最好不要删除欢迎分享,转载请注明来源:内存溢出
评论列表(0条)