一种通过组播实现的HLS直播系统及方法技术方案

技术编号:24692752 阅读:67 留言:0更新日期:2020-06-27 11:41
本发明专利技术公开了一种通过组播实现的HLS直播系统及方法,涉及互联网多媒体技术领域。该HLS直播系统的系统端设备设有切片服务器,终端设备设有HLS生成器和播放器。切片服务器从直播源接收直播流,进行虚拟HLS切片,将媒体分片和M3U8索引文件信息封装成RTP包以组播方式发出;当播放器播放时,向HLS生成器请求M3U8索引文件;HLS生成器接收切片服务器的RTP直播组播流,从其中提取媒体分片缓存于内存,并生成完整的M3U8索引文件响应播放器;播放器根据该M3U8索引文件向HLS生成器请求下载媒体分片进行播放。本发明专利技术不但能有效结合组播和HLS的优点,而且为不支持RTSP流的终端设备提供了HLS直播功能,降低了终端要求。

HLS live broadcasting system and method realized by multicast

【技术实现步骤摘要】
一种通过组播实现的HLS直播系统及方法
本专利技术涉及互联网多媒体
,具体来讲是一种通过组播实现的HLS(HTTPLiveStreaming,苹果公司实现的基于HTTP的流媒体网络传输协议)直播系统及方法。
技术介绍
在IPTV建设实践中,通过组播分发直播频道,相比单播方式减小了30%~50%投资。但随着技术的发展,HLS流媒体技术由于具有对流服务器与终端要求低、可通过多码率保证在不同网络下播放的流畅性等优点,所以近年来在互联网视频业务的应用中占有主流位置,并且电信运营商使用HLS方式的直播日渐增加。但是HLS基于HTTP(HypertextTransferProtocol,超文本传输协议),传统上只能使用TCP(TransmissionControlProtocol,传输控制协议)来传输,属于单播模式,在大用户量情况下,需占用巨大的网络带宽资源。因此,针对现有状况,如何有效利用运营商IPTV的组播资源,在不增加网络带宽的情况下,以组播传输方式实现一种低时延的HLS直播,使得组播和HLS的优点皆保留并充分利用,是本领域技术人员亟待解决的问题。
技术实现思路
本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种通过组播实现的HLS直播系统及方法,不但能有效结合组播和HLS的优点,而且为不支持RTSP(RealTimeStreamingProtocol,实时流传输协议)流的终端设备提供了HLS直播功能,降低终端要求,满足了实际应用需求。为达到以上目的,本专利技术提供一种通过组播实现的HLS直播系统,包括直播源、系统端设备和终端设备,系统端设备设有切片服务器,终端设备设有HLS生成器和播放器;所述切片服务器,用于:从直播源接收一个或多个直播频道的直播流,分别进行:虚拟HLS切片,将媒体分片和M3U8索引文件数据信息封装在RTP包中,以组播方式发送出去;所述播放器,用于:当请求播放某个直播频道时,向HLS生成器请求M3U8索引文件;并根据HLS生成器响应的M3U8索引文件中的分片列表,向HLS生成器请求下载媒体分片进行播放;所述HLS生成器,用于:收到播放器请求播放直播频道后,接收所述切片服务器发送的该直播频道的RTP直播组播流,根据M3U8索引文件数据信息从RTP直播组播流中提取媒体分片缓存于内存,并生成完整的M3U8索引文件;再以该M3U8索引文件响应播放器。在上述技术方案的基础上,所述切片服务器进行虚拟HLS切片,将媒体分片和M3U8索引文件数据信息封装在RTP包中,以组播方式发送出去,具体包括以下操作:所述切片服务器对接收的直播流进行解析,将每个媒体分片封装在多个RTP包,并立即以组播方式发送出去,形成媒体RTP包流;同时,每当切片服务器封装成的一个RTP包中包含的是一个媒体分片的最后一部分媒体内容时,生成对应的M3U8索引文件数据信息;并将生成的M3U8索引文件数据信息封装在另一个RTP包中,该包以和媒体RTP包流同一路组播地址、不同端口号发送;多个封装有M3U8索引文件数据信息的RTP包,形成M3U8索引文件数据RTP包流,所述媒体RTP包流与所述M3U8索引文件数据RTP包流组成RTP直播组播流。在上述技术方案的基础上,所述切片服务器封装的媒体RTP包,包括RTP头、RTP扩展头和媒体分片数据;所述切片服务器封装的M3U8索引文件数据RTP包,包括RTP头和M3U8索引文件数据;所述M3U8索引文件数据包含对应媒体分片起始媒体RTP包序号和结束媒体RTP包序号;所述HLS生成器收到播放器请求播放直播频道后,接收切片服务器的RTP直播组播流,根据M3U8索引文件数据信息从RTP直播组播流中提取媒体分片缓存于内存,并生成完整的M3U8索引文件,具体包括以下操作:所述HLS生成器收到播放器请求播放直播频道后,接收切片服务器的RTP直播组播流;每当收到M3U8索引文件数据RTP包时,根据其包含的对应媒体分片起始媒体RTP包序号和结束媒体RTP包序号,找到对应媒体分片的所有媒体RTP包;去除各媒体RTP包的RTP头和RTP扩展头后,将媒体分片数据组成一个完整的媒体分片缓存于内存;待收到的M3U8索引文件数据RTP包的个数达到HLS生成器预设的配置时,根据当前收到的M3U8索引文件数据RTP包,组成一个完整的M3U8索引文件。在上述技术方案的基础上,所述媒体RTP包的RTP扩展头包含:帧类型FT参数、帧位置指示FP参数、当前RTP包中的视频帧的展示时间Frame_pts参数;所述HLS生成器根据M3U8索引文件数据RTP包中,包含的对应媒体分片起始媒体RTP包序号和结束媒体RTP包序号,找到对应媒体分片的所有媒体RTP包时,若在没有重传请求机制下出现未收到部分媒体RTP包的情况,所述HLS生成器根据已收到的媒体RTP包,组成一个只包含已收到媒体RTP包的媒体分片,同时根据RTP扩展头中的Frame_pts参数计算已收到的媒体RTP包构成的媒体分片的播放时长,再用它更新对应M3U8索引文件数据RTP包中的相应标签值;或者,所述HLS生成器根据媒体RTP包序号及RTP扩展头中的FT参数、FP参数、Frame_pts参数,先舍弃不能组成完整视频帧的媒体RTP包,用剩余包组成媒体分片,并根据Frame_pts参数重新计算媒体分片的播放时长,再用它更新对应M3U8索引文件数据RTP包中的相应标签值。在上述技术方案的基础上,所述终端设备预置有RTP直播组播流的组播地址组与直播频道的对应关系,该对应关系通过终端设备管理平台下发给终端设备;所述HLS生成器根据该对应关系加入相应的组播地址组,接收切片服务器发送的对应直播频道的RTP直播组播流。在上述技术方案的基础上,所述媒体分片的最小时长等于一个画面组GOP的时长。本专利技术还提供一种基于上述系统的通过组播实现的HLS直播方法,该方法包括以下步骤:S1、切片服务器从直播源接收一个或多个直播频道的直播流,分别进行:虚拟HLS切片,将媒体分片和M3U8索引文件数据信息封装在RTP包中,以组播方式发出;S2、当终端设备中的播放器请求播放某个直播频道时,向HLS生成器请求M3U8索引文件;S3、HLS生成器接收切片服务器发送的该直播频道的RTP直播组播流,根据M3U8索引文件数据信息从RTP直播组播流中提取媒体分片缓存于内存,并生成完整的M3U8索引文件;S4、HLS生成器以生成的M3U8索引文件响应播放器;并持续收流并提取媒体分片和M3U8索引文件数据信息,以更新媒体分片缓存和M3U8索引文件;S5、播放器根据M3U8索引文件中的分片列表,向HLS生成器请求下载媒体分片进行播放;并定期向HLS生成器请求新的M3U8索引文件,以下载新媒体分片进行播放。在上述技术方案的基础上,步骤S1具体包括以下操作:所述切片服务器从直播源接收一个或多个直播频道的直播流;分别进行媒体流的解析,将每个媒体分片封装在多个RTP包,并立即以组播方式发送本文档来自技高网...

【技术保护点】
1.一种通过组播实现的HLS直播系统,包括直播源、系统端设备和终端设备,其特征在于:系统端设备设有切片服务器,终端设备设有HLS生成器和播放器;/n所述切片服务器,用于:从直播源接收一个或多个直播频道的直播流,分别进行:虚拟HLS切片,将媒体分片和M3U8索引文件数据信息封装在RTP包中,以组播方式发送出去;/n所述播放器,用于:当请求播放某个直播频道时,向HLS生成器请求M3U8索引文件;并根据HLS生成器响应的M3U8索引文件中的分片列表,向HLS生成器请求下载媒体分片进行播放;/n所述HLS生成器,用于:收到播放器请求播放直播频道后,接收所述切片服务器发送的该直播频道的RTP直播组播流,根据M3U8索引文件数据信息从RTP直播组播流中提取媒体分片缓存于内存,并生成完整的M3U8索引文件;再以该M3U8索引文件响应播放器。/n

【技术特征摘要】
1.一种通过组播实现的HLS直播系统,包括直播源、系统端设备和终端设备,其特征在于:系统端设备设有切片服务器,终端设备设有HLS生成器和播放器;
所述切片服务器,用于:从直播源接收一个或多个直播频道的直播流,分别进行:虚拟HLS切片,将媒体分片和M3U8索引文件数据信息封装在RTP包中,以组播方式发送出去;
所述播放器,用于:当请求播放某个直播频道时,向HLS生成器请求M3U8索引文件;并根据HLS生成器响应的M3U8索引文件中的分片列表,向HLS生成器请求下载媒体分片进行播放;
所述HLS生成器,用于:收到播放器请求播放直播频道后,接收所述切片服务器发送的该直播频道的RTP直播组播流,根据M3U8索引文件数据信息从RTP直播组播流中提取媒体分片缓存于内存,并生成完整的M3U8索引文件;再以该M3U8索引文件响应播放器。


2.如权利要求1所述的通过组播实现的HLS直播系统,其特征在于,所述切片服务器进行虚拟HLS切片,将媒体分片和M3U8索引文件数据信息封装在RTP包中,以组播方式发送出去,具体包括以下操作:
所述切片服务器对接收的直播流进行解析,将每个媒体分片封装在多个RTP包,并立即以组播方式发送出去,形成媒体RTP包流;
同时,每当切片服务器封装成的一个RTP包中包含的是一个媒体分片的最后一部分媒体内容时,生成对应的M3U8索引文件数据信息;并将生成的M3U8索引文件数据信息封装在另一个RTP包中,该包以和媒体RTP包流同一路组播地址、不同端口号发送;多个封装有M3U8索引文件数据信息的RTP包,形成M3U8索引文件数据RTP包流,所述媒体RTP包流与所述M3U8索引文件数据RTP包流组成RTP直播组播流。


3.如权利要求2所述的通过组播实现的HLS直播系统,其特征在于:所述切片服务器封装的媒体RTP包,包括RTP头、RTP扩展头和媒体分片数据;
所述切片服务器封装的M3U8索引文件数据RTP包,包括RTP头和M3U8索引文件数据;所述M3U8索引文件数据包含对应媒体分片起始媒体RTP包序号和结束媒体RTP包序号;
所述HLS生成器收到播放器请求播放直播频道后,接收切片服务器的RTP直播组播流,根据M3U8索引文件数据信息从RTP直播组播流中提取媒体分片缓存于内存,并生成完整的M3U8索引文件,具体包括以下操作:
所述HLS生成器收到播放器请求播放直播频道后,接收切片服务器的RTP直播组播流;每当收到M3U8索引文件数据RTP包时,根据其包含的对应媒体分片起始媒体RTP包序号和结束媒体RTP包序号,找到对应媒体分片的所有媒体RTP包;去除各媒体RTP包的RTP头和RTP扩展头后,将媒体分片数据组成一个完整的媒体分片缓存于内存;待收到的M3U8索引文件数据RTP包的个数达到HLS生成器预设的配置时,根据当前收到的M3U8索引文件数据RTP包,组成一个完整的M3U8索引文件。


4.如权利要求3所述的通过组播实现的HLS直播系统,其特征在于,所述媒体RTP包的RTP扩展头包含:帧类型FT参数、帧位置指示FP参数、当前RTP包中的视频帧的展示时间Frame_pts参数;
所述HLS生成器根据M3U8索引文件数据RTP包中,包含的对应媒体分片起始媒体RTP包序号和结束媒体RTP包序号,找到对应媒体分片的所有媒体RTP包时,若在没有重传请求机制下出现未收到部分媒体RTP包的情况,所述HLS生成器根据已收到的媒体RTP包,组成一个只包含已收到媒体RTP包的媒体分片,同时根据RTP扩展头中的Frame_pts参数计算已收到的媒体RTP包构成的媒体分片的播放时长,再用它更新对应M3U8索引文件数据RTP包中的相应标签值;
或者,所述HLS生成器根据媒体RTP包序号及RTP扩展头中的FT参数、FP参数、Frame_pts参数,先舍弃不能组成完整视频帧的媒体RTP包,用剩余包组成媒体分片,并根据Frame_pts参数重新计算媒体分片的播放时长,再用它更新对应M3U8索引文件数据RTP包中的相应标签值。


5.如权利要求1所述的通过组播实现的HLS直播系统,其特征在于:所述终端设备预置有RTP直播组播流的组播地址组与直播频道的对应关系,该对应关系通过终端设备管理平台下发给终端设备;
所述HLS生成器根据该对应关系加入相应的组播地址组,接收切片服务器发送的对应直播频道的RTP直播组播流。


6.如权利要求1至5中任一项所述的通过组播实现的HLS直播系统,其特征在于:所述媒体分片的最小时长等于一个画面组GO...

【专利技术属性】
技术研发人员:徐继军杜兵
申请(专利权)人:烽火通信科技股份有限公司武汉市烽视威科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1