1. HLS的特性
HLS (HTTP Live Streaming)是Apple开发的流媒体标准,主要用于直播卖货系统开发中音视频的编码和传输,实现PC端和手机端的无插件播放。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。HLS最开始是苹果公司为ios开发的流媒体传输协议,为了取代当时的flash而开发。因为HLS无需插件,又是基于HTTP协议,对手机资源的消耗远小于flash,进而得到了大力发展,最新的H5已经原生支持HLS了。但是HLS协议的小切片方式会生成大量的文件,HLS推荐的切片时长为10s,必须下载到m3u(8)和至少3个ts切片文件时才会开始播放,这就导致了直播卖货系统开发使用hls的延迟必然在30s以上。
2. 解决思路
想要解决直播卖货系统开发中HLS的延迟问题,得从hls的原理入手。HLS需要3个ts切片文件才能播放的机制无法修改,但是可以从ts切片文件的时长入手,通过在直播卖货系统开发中修改ts切片文件的时长,将之改为1s一个ts切片,相关配置文件如下:
application hlsram {
# enable live streaming
live on;
hls on;
hls_path /media/hlsram;
hls_fragment 5s;
hls_cleanup on;
hls_nested on;
hls_playlist_length 25s;
}
application out {
# enable live streaming
live on;
}
application rec {
# enable live streaming
live on;
hls on;
hls_path /media/record;
hls_fragment 30s;
hls_continuous on;
hls_nested on;
hls_cleanup off;
hls_fragment_naming system;
hls_playlist_length 120s;
}
3. 结论
通过实际测试,直播卖货系统开发可以将HLS延迟降低到3-4s左右,提升了HLS的直播体验。
————————————————
声明:本文由云豹科技转发自sooth2008博客,如有侵权请联系作者删除
原文链接:https://blog.csdn.net/sooth2008/article/details/108821416