基于hls协议的直播方法、系统及客户端的利记博彩app

文档序号:9892109阅读:951来源:国知局
基于hls协议的直播方法、系统及客户端的利记博彩app
【技术领域】
[0001]本发明涉及网络通信技术领域,特别是指一种基于HLS协议的直播方法、系统及客户端。
【背景技术】
[0002]内容分发网络(⑶N,Content Delivery Network)是一种新型网络构建方式。其依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。CDN通过负载均衡、本地缓存等策略使得客户可以更方便的从本地服务器上获得资源,避免全网的网络拥堵,在视频分发等领域有很广泛的应用。CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。CDN的关键技术主要有内容存储和分发技术。
[0003]HLS (Http live streaming)协议是苹果公司实现的基于超文本传输协议Http的流媒体传输协议,HLS协议将容量巨大的连续媒体数据进行分段,分割为数量众多的小文件进行传递,迎合了网页服务器的文件传输性,并采用一个不断更新的轻量级索引文件来控制分割后小媒体文件的下载和播放,可以实现流媒体的直播和点播。
[0004]通过HLS协议,视频数据经处理后分为视频节目切片TS文件以及媒体数据索引M3U8文件,并存在于云服务器上。M3U8文件中通常包括视频片段的多个统一资源定位符URL。多媒体播放器获取M3U8文件后,进而按照其中的URL下载对应的视频片段并进行播放。也可以按照M3U8文件中的URL将视频片段下载并存储在本地,以供后续在本地进行播放。
[0005]目前,视频的直播和点播也广泛应用了⑶N加速技术,在手机和电视业务中,⑶N配合HLS协议来实现视频内容的直播和点播是最常见的视频观看方式。
[0006]现有技术在⑶N配置下,直播节目通常会使用重定向的技术隐藏具体的码流URL地址,通过主服务器的Master URL地址与各个分发子服务器Sub URL地址配合的方法实现,例如:
[0007]1.用户客户端首先得到一个Master URL。
[0008]2.用户客户端向主服务器请求这个Master URL。
[0009]3.主服务器根据用户客户端的地域情况通过重定向技术向用户客户端分发一个子服务器B的新的Sub URL,记为URLb。
[0010]4.用户客户端通过URLb向服务器获取直播节目M3U8索引列表。
[0011]5.客户端解析M3U8索引列表并下载具体的节目码流切片。
[0012]6.根据HLS协议规定,M3U8索引列表在直播情况下仅包含3个最近的切片,用户客户端需要定时的去更新M3U8列表,因此客户端会返回步骤2定时更新M3U8列表并下载新的切片,以此不断重复步骤2-5。
[0013]7.在某一个时刻,子服务器B带宽不足的情况,⑶N会通过均衡负载将用户的请求重定向到新的子服务器H,得到一个新的URLb。
[0014]然而,目前由于不同子服务器之间M3U8索引序号没有可比性,⑶N服务器无法保证其不同的子服务器的码流切片分发一致性,因此直播节目中,往往会出现节目回跳或者节目切片丢失等情况,造成用户无法流畅观看直播节目,使得用户体验降低。

【发明内容】

[0015]有鉴于此,本发明的目的在于提出一种基于HLS协议的直播方法、系统及客户端,解决了用户在观看直播节目时,出现的节目回跳或者节目切片丢失问题。
[0016]基于上述目的本发明提供的基于HLS协议的直播方法,在基于HLS协议直播过程从子服务器下载M3U8索引列表,并根据M3U8索引列表下载节目资源的切片进行播放;其中,当主服务器为重新分配另一个子服务器后,从该新分配的子服务器下载M3U8索引列表和节目资源的切片;
[0017]解析从新的子服务器中下载的节目资源切片,获取下载的切片中的PTS时间戳信息;
[0018]将从新的子服务器下载的切片中的PTS时间戳信息与从原先子服务器下载的切片中的PTS时间戳信息进行比较,根据比较结果确定播放或不播放当前新下载的节目资源切片。
[0019]可选地,所述根据比较结果确定播放或不播放当前新下载的节目资源切片过程包括:如果所述从新的子服务器下载的切片中的PTS时间戳信息早于或等于所述从原先子服务器下载的切片中的PTS时间戳信息,则判定该新下载的切片已经在本地存在,选择下一个新下载的切片中的PTS时间戳继续执行与从原先子服务器下载的切片中的PTS时间戳比较的步骤;和/或所述根据比较结果确定播放或不播放当前下载的节目资源切片过程包括:如果所述从新的子服务器下载的切片中的PTS时间戳信息晚于从原先子服务器下载的切片中的PTS时间戳信息,则播放当前新下载的节目资源切片。
[0020]进一步地,将从新的子服务器下载的切片中的PTS时间戳信息与从原先子服务器下载的切片中的PTS时间戳信息进行比较的过程包括:从新获取切片中选择M3U8索引号最小的切片的PTS时间戳信息与从原先子服务器下载的M3U8索引号最大的切片的PTS时间戳信息进行比较;如果所述从新的子服务器下载的切片中的PTS时间戳信息早于或等于所述从原先子服务器下载的切片中的PTS时间戳信息,则按照M3U8索引号由小到大的顺序依次选择下一个新下载的切片中的PTS时间戳继续执行与从原先子服务器下载的切片中的PTS时间戳比较的步骤。
[0021]进一步地,所述判定出如果所述从新的子服务器下载的切片中的PTS时间戳信息晚于所述从原先子服务器下载的切片中的PTS时间戳信息后,进一步包括:判断所述从新的子服务器下载的切片中的PTS时间戳信息比从原先子服务器下载的切片中的PTS时间戳信息相差的时间间隔是否超出预设的时间阈值,如果是,则暂不播放播放当前新下载的节目资源切片,否则播放该PTS时间戳信息所对应的切片。
[0022]进一步地,所述如果判定出从新的子服务器下载的切片中的PTS时间戳信息比所述从原先子服务器下载的切片中的PTS时间戳信息相差的时间间隔超出预设的时间阈值后,还包括:
[0023]向所述新分配的子服务器请求下载M3U8序列号更小的M3U8索引列表和节目资源的切片,并重复将从新的子服务器下载的切片中的PTS时间戳信息与从原先子服务器下载的切片中的PTS时间戳信息进行比较的步骤,直至从新的子服务器下载的切片中的PTS时间戳信息比所述从原先子服务器下载的切片中的PTS时间戳信息相差的时间间隔未超出预设的时间阈值,播放该PTS时间戳信息所对应的切片。
[0024]可选地,每次从子服务器下载节目资源的切片后,如果下载过程正常,则下一次直接向当前子服务器下载M3U8索引列表以及节目资源的切片;否则,向主服务器请求重新分配另一个子服务器。
[0025]在另一方面,本发明还提供了一种基于HLS协议的直播系统,包括:
[0026]子服务器,用于提供直播节目的M3U8索引列表以及节目资源的切片;
[0027]主服务器,用于为所述客户端重新分配子服务器后;
[0028]客户端,用于从该新分配的子服务器下载M3U8索引列表和节目资源的切片;解析从新的子服务器中下载的节目资源切片,获取PTS时间戳信息;并将从新的子服务器下载的切片中的PTS时间戳信息与从原先子服务器下载的切片中的PTS时间戳信息进行比较,根据比较结果确定播放或不播放当前新下载的节目资源切片。
[0029]可选地,所述客户端,还用于在确定所述从新的子服务器下载的切片中的PTS时间戳信息早于或等于所述从原先子服务器下载的切片中的PTS时间戳信息后,判定该新下载的切片已经在本地存在,选择下一个新下载的切片中的PTS时间戳继续执行与本地切片中的PTS时间戳比较的步骤;
[0030]和/或所述客户端,还用于在确定所述从新的子服务器下载的切片中的PTS时间戳信息晚于所述从原先子服务器下载的切片中的PTS时间戳信息后,播放当前新下载的节目资源切片。
[0031]进一步地,所述客户端还用于从新的子服务器下载的切片中选择M3U8索引号最小的切片的PTS时间戳信息与从原先子服务器下载的M3U
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1