本发明涉及流媒体系统设计领域,具体地,尤其涉及一种低延时流化hls实现方法。
背景技术:
近年来,随着在线视频技术多维度的整体提升,“秀场”、“游戏直播”等互动直播模式为广大网民带来了实时观看、深度互动的全新体验,让互动直播模式迅速崛起,并逐渐成为新时代的互联网社交入口。支撑互动直播的在线视频技术是一个较为复杂和专业的领域,涉及音视频编解码、图像优化处理、流媒体传输分发、多终端播放等多学科技术的应用。互动直播的吸引人之处,在于终端用户将自己“代入”直播场景中,与主播、其它观众像是在一间屋子内,不是在看视频,而是场景中的一员。而这种场景式互动,在直播技术上极其依赖“低延时”。
目前,各直播平台的技术架构大同小异,在“低延时”保障方面,pc端和移动app端通过rtmp或http-flv协议将延迟控制到3-5秒,以此配合各种互动功能的实现。而在移动web端(即基于移动设备浏览器的h5播放器)只能用延迟较大的hls协议,因此目前移动web端还只能实现原始的看直播、看弹幕,最重要的互动功能无法实现。
移动web端目前唯一可用的hls协议,全称是httplivestreaming,是由苹果公司提出的一套基于http传输流媒体的网络协议。对于直播来说,它的工作原理是把直播流切分成ts流媒体切片文件,同时生成m3u8索引文件,播放端按照索引文件顺序依次下载每个切片文件进行播放。标准的hls协议规定,浏览器需要获取到3个已经生成的完整ts切片文件才可以开始播放,而苹果官方建议的流媒体切片文件时长为10秒左右,加之cdn等网络传输延时,基于hls协议的直播延时理论上会超过40秒。这就是基于hls协议的移动web端直播延时达不到互动直播要求的原因。
技术实现要素:
本发明的目的在于克服上述问题,从而提出了一种低延时流式hls技术(我们首次提出此概念,并命名其为hls+),将移动web端的播放延时降低到接近app的水平,真正为移动web端带来低延时解决方案。移动web端互动直播避免了终端用户观看直播前下载app的繁琐。
参见附图1,它示出了本发明实施例的低延时流式hls技术流程。
本发明的低延时流式hls技术基于标准hls协议之上,采用variant跳转,快速启动切片算法以及stage增量算法等多项技术,动态地为每个播放请求生成独立的m3u8列表,把服务器上缓存的媒体数据动态快速地生成仅对这个播放请求的小切片文件,以此将传统的hls流式处理,从而可大大降低标准hls的延时。播放流程包括以下步骤:
步骤1.播放用户向边缘服务器提出播放请求;
步骤2.边缘服务器接到请求,自动分配一个uuid给用户作为标识;
步骤3.边缘服务器启动rtmp回源拉流(若之前已有其它用户请求过同一流,则边缘服务器已有此流,无须重新拉流);
步骤4.对要播放的rtmp流数据快速启动切片(每片长度1-2s,甚至更小),并生成独立的m3u8列表;
步骤5.播放器拿到独立的m3u8列表,及最初的3个切片即可开始播放;
步骤6.播放器刷新m3u8列表,然后获得后续切片播放;
上述步骤2中,系统利用uuid标识用户,以保证为每个播放请求独立切片。上述步骤3中,边缘服务器回源与标准hls协议不同,拉流采用rtmp流,简化了回源。上述步骤4中,采用快速启动切片算法,将gopcache的数据快速切片成小切片;并且采用stage增量算法,保持启动时切出4个ts片,播放器每次请求m3u8都有新的ts片。
附图说明
附图1是本发明实施例的系统结构及方法流程图。
具体实施方式
以下将结合附图对本发明的实施例进行详细说明。应当理解此处所描述的实施例仅用于解释说明本发明,并不用于限定本发明。
参见附图1,它示出了本发明实施例的低延时流化hls(即hls+)的系统结构及方法流程。本发明的低延时流化hls技术在回源拉流时,与rtmp流的回源是完全相同的,无须另外建设hls切片系统,简化了回源过程。
所述的低延时流化hls(即hls+)的工作流程如下,包括以下步骤:
步骤1.播放用户向边缘服务器提出播放请求;
步骤2.边缘服务器接到请求,通过302跳转或variant跳转,自动分配一个uuid给用户作为标识;
步骤3.边缘服务器启动rtmp回源拉流(若之前已有其它用户请求过同一流,则边缘服务器已有此流,无须重新拉流);
步骤4.对要播放的rtmp流数据,通过快速启动切片算法,将gopcache的数据快速切片成每片长度1-2s的切片(甚至可以更小),并生成独立的m3u8列表;
步骤5.播放器拿到独立的m3u8列表,及最初的3个切片即可开始播放;
步骤6.采用stage增量算法,保持启动时切出4个ts片,播放器每次请求m3u8都有新的ts片。由播放器刷新m3u8列表,然后获得后续切片播放;
所述的低延时流化hls(即hls+)有以下优点:
上述低延时流化hls技术在回源拉流时,与rtmp流是完全相同的,无须另外建设hls切片系统,流媒体与rtmp使用同一个集群,则可省一套设备组,省n个机房和设备,直接使用rtmp/flv的设备组。
上述低延时流化hls系统,rtmp/flv与hls可使用同一个域名,客户配置简单,使用简单,快速上线,域名cname简单。
上述低延时流化hls系统可降低延迟,实时转封装为hls,对比传统hls达到40s的延迟,hls+可以和rtmp在同一个级别。
上述低延时流化hls系统数据统一,系统给出的在线人数,带宽,计费,防盗链,认证,全部统一实现。
上述低延时流化hls系统全部合并回源,减轻客户源站压力,访问rtmp/flv/hls只回一路rtmp,并且是访问时才回源。
上述低延时流化hls系统可快速排错,hls+使用可追溯日志,可以知道每个客户端的情况,快速排错。
上述低延时流化hls系统访问时回源,只有当用户有访问hls或其他流时,才会回源取流。
上述低延时流化hls系统快速启动,启动时间在3秒内,没有感官差异。