一种通过组播传输HLS流媒体的方法、系统和终端与流程

文档序号:12498543阅读:888来源:国知局
一种通过组播传输HLS流媒体的方法、系统和终端与流程
本发明涉及HLS媒体流领域,尤其涉及一种通过组播传输HLS流媒体的方法、系统和终端。
背景技术
:HLS(HTTPLiveStreaming)是美国苹果公司提出的一促动态码率自适应流媒体技术,主要用于流媒体音视频服务。其包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。HLS流媒体技术由于具有对流服务器与终端要求低、可通过多码率保证在不同网络下播放的流畅性等优点,所以近年来在互联网视频业务的应用中占有主流位置。目前HLS技术已经提交给IETF成为标准草案。组播(Multicast)技术在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。组播技术通过网络复制传输流,极大减轻了服务器和网络压力。在IPTV建设实践中,通过组播分发直播频道,相比单播方式减小了30%~50%投资。可以看出,HLS与组播技术都有各自的特点,HLS可更好地适用于网络条件较差的情况,组播技术由于使用UDP技术,对网络条件要求较高。HLS基于HTTP,传统上只能使用TCP来传输,由于组播只能使用UDP,所以HLS难以直接使用组播来传输。目前,国内各电信运营商设备与组网有较大不同,对组播支持能力不齐,所以部分网络开启组播、部分无法使用,需要一种能适应不 同网络的情况融合传输技术。为解决以上问题,开始有运营商希望能找到一种融合HLS与组播优点的解决方案。如专利申请号为201510081200.9,“一种广电OTT融合终端及其实现方法”,其提出在终端侧实现HLS与组播的方案,该方案,存在以下不足:1)该方案HLS与组播传输在网络侧无关联关系,仅由终端进行融合,无法实现组播上实现HLS的自适应特性。2)由于HLS与组播无关联,所以无法实现HLS与组播的平滑切换。技术实现要素:本发明要解决的技术问题是如何通过组播技术来传输分发HLS流媒体。根据本发明一方面,提出一种通过组播传输HLS流媒体的方法,包括:在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端;终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。在一个实施例中,索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。在一个实施例中,终端根据索引文件获取组播地址对应的单播URL,当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。在一个实施例中,终端记录当前HLS流媒体分片文件的PCR时间,当接收到的组播流出现丢包或中断时,根据分片时长、分片码流参数计算切换分片对应的字节范围;终端携带字节范围参数到HLR 服务器下载对应的HLS流媒体分片文件。在一个实施例中,终端在初始播放视频流时,通过单播方式向HLR服务器下载当前播放的HLS流媒体分片文件,并获取对应的组播地址;通过组播地址,使用组播方式接收后续HLS流媒体分片文件对应的组播流。在一个实施例中,终端在从单播方式切换至组播方式接收HLS流媒体分片文件时,从转换网关接收与当前单播方式下载的HLS流媒体分片文件所对应的组播流。根据本发明的另一方面,还提出一种通过组播传输HLS流媒体的系统,包括:HLR服务器,用于将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;转换网关,用于从HLR服务器下载索引文件,通过索引文件的标签信息下载HLS流媒体分片文件,并将HLS流媒体分片文件转换为组播流发送至终端;终端,用于根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。在一个实施例中,索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。在一个实施例中,终端用于根据索引文件获取组播地址对应的单播URL,当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。在一个实施例中,终端用于记录当前HLS流媒体分片文件的PCR时间,当接收到的组播流出现丢包或中断时,根据分片时长、分片码流参数计算切换分片对应的字节范围;携带字节范围参数到HLR服务器下载对应的HLS流媒体分片文件。在一个实施例中,终端用于在初始播放视频流时,通过单播方式向HLR服务器下载当前播放的HLS流媒体分片文件,并获取对应的组播地址;通过组播地址,使用组播方式接收后续HLS流媒体分片文件对应的组播流。在一个实施例中,终端用于在从单播方式切换至组播方式接收HLS流媒体分片文件时,从转换网关接收与当前单播方式下载的HLS流媒体分片文件所对应的组播流。根据本发明的另一方面,还提出一种终端,包括:地址获取模块,用于根据索引文件获取组播地址,其中索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址;接收模块,用于通过转换网关从HLR服务器接收组播流;还原模块,用于将接收到的组播流转换为HLS流媒体分片文件;播放模块,用于播放HLS流媒体分片文件。在一个实施例中,地址获取模块用于根据索引文件获取组播地址对应的单播URL;单播组播切换模块,用于当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。在一个实施例中,单播组播切换模块用于记录当前HLS流媒体分片文件的PCR时间,当接收到的组播流出现丢包或中断时,根据分片时长、分片码流参数计算切换分片对应的字节范围;携带字节范围参数到HLR服务器下载对应的HLS流媒体分片文件。在一个实施例中,同步模块,用于在初始播放视频流时,通过单播方式向HLR服务器下载当前播放的HLS流媒体分片文件,并获取对应的组播地址;通过组播地址,使用组播方式接收后续HLS流媒体分片文件对应的组播流。在一个实施例中,同步模块用于在从单播方式切换至组播方式接收HLS流媒体分片文件时,从转换网关接收与当前单播方式下载的HLS流媒体分片文件所对应的组播流。与现有技术相比,本发明在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端;终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。因此,能够实现组播技术来传输HLS 视频、音频,大大减小了投资。另外,还可以有效使用HLS的自适应流媒体技术,适应不同的网络环境,非常适用于网络情况复杂的电信运营商数据承载网。通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。附图说明构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:图1为本发明通过组播传输HLS流媒体的方法的一个实施例的流程示意图。图2为本发明通过组播传输HLS流媒体的方法的另一个实施例的流程示意图。图3为本发明通过组播传输HLS流媒体的系统的一个实施例的结构示意图。图4为本发明通过组播传输HLS流媒体的终端的一个实施例的结构示意图。图5为本发明通过组播传输HLS流媒体的终端的另一个实施例的结构示意图。具体实施方式现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决 不作为对本发明及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。图1为本发明通过组播传输HLS流媒体的方法的一个实施例的流程示意图。该方法包括以下步骤:在步骤110,在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中。其中,本发明的HLR服务器支持新的HLS索引扩展,通过扩展HLS索引文件,在扩展型HLS服务器上把传统HLS与组播进行关联。在步骤120,通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端。其中,转换网关从扩展型HLS服务器上下载M3U8索引文件,根据M3U8索引的标签信息再到扩展型HLS服务器上下载HLS流媒体分片,并按指定的组播组发送组播数据流。索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。例如,本发明对M3U8索引进行了扩展如表1所示:标签取值备注EXT-X-TRANTYPE=Multicast可使用组播进行传输EXT-X-STREAM-INFGroupIP=“***”该媒体流对应的组播地址表1M3U8索引扩展字段M3U8示例如下:#EXTM3UEXT-X-TRANTYPE=Multicast#EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERAGE-BANDWIDTH=1000000,GroupIP=“239.1.1.1”http://example.com/low.m3u8#EXT-X-STREAM-INF:BANDWIDTH=2560000,AVERAGE-BANDWIDTH=2000000,GroupIP=“239.1.1.2”http://example.com/mid.m3u8在步骤130,终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。在本发明的实施例中,在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端;终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。因此,能够实现组播技术来传输HLS视频、音频,大大减小了投资。图2为本发明通过组播传输HLS流媒体的方法的另一个实施例的流程示意图。该方法包括以下步骤:在步骤210,在HLR服务器上将不同码流的HLR流媒体分片,并在M3U8标签中实现不同码流的HLS文件与组播组进行关联。即在步骤210中把HLS流媒体的视、音频数据封装在组播协议报文中进行传输。HLS的流媒体数据是以TS格式封装的,每个TS报文为188个字节。HLR服务器支持信息的HLS索引扩展,M3U8索引扩展如表1所示。在步骤220,HLS->组播转换网关,负责把HLS的直播文件分片 转换为组播流,HLS->组播转换网关不改变原HLS的TS分片文件。HLS->组播转换网关在转换以TS封闭的流媒体分片时,按每7个TS(188字节)包生成一个UDP包,并在这载荷前,用2字节标明其序号,为终端进行重组提供标记。在步骤230,终端解释M3U8索引文件,获得直播频道的组播地址及对应的单播URL,通过组播接收视频流,并把接收到的视频流转换为HLS直播分片文件,再送到播放器播放。在步骤240,出现丢包时,终端查找组播相对应的文件URL,通过单播下载所对应的数据分片。其中,由于组播网关是无缓存机制的,要充分利用HLS自适应网络机制,也需要在终端进行分片缓存。在本发明的实施例中,通过扩展HLS索引文件,在扩展型HLS服务器上把传统HLS与组播进行关联;通过单播、组播结合,实现了组播缓存HLS分片的机制。为了保证本发明能够实现初始播放同步,本发明还可以在终端初始播放时,先通过单播方式向HLS服务器下载当前直播的第1个分片。同时终端加入对应组播组,转换网关应比HLS服务的第1分片更快,如吐分片3。终端通过单播接收完第2个分片,同时也可通过组播接收到第3分片,后续将使用组播接收。本发明的另一个实施例,当组播出现大量丢包或中断时,终端将把组播方式切换至单播。即终端把当前的TSPCR时间记录下来,并根据分片时长、分片码流等参数计算出切换分片对应的字节范围ByteRange;终端携带ByteRange参数到HLS服务器下载对应的分片。例如,在同一个HLS节目里,可以有高中低等多个视频流,这些视频流严格按照时间同步进行分片。如,按10秒一个间隔来分片,有高中低3个视频流,就同时有3个时间为10秒长的视频分片流。终端在检查到需要进行切换时(如网络带宽不足,需要从高码率切换到低码率播放),终端需要保证视频的连续性。终端首先进行从高码率的组播组离开,加入低码率的组播组,从而可以接收到数据。 但切换后接收到的数据因为是实时发送的,所以从离开到接收的这段时间切换的数据是缺失的。为此,我们在切换时是通过单播方式来下载缺失的内容的。缺失的内容我们可以知道切换的时间,通过时间我们可以反算出该时间开始的数据是在哪个分片的哪个位置(ByteRange)。在本发明的实施例中,终端把当前的TSPCR时间记录下来,并根据分片时长、分片码流等参数计算出切换分片对应的字节范围ByteRange;终端携带ByteRange参数到HLS服务器下载对应的分片。能够保证组播与HLS单播的平滑切换,支持组播多码率切换,能够适应不同的网络环境,非常适用于网络情况复杂的电信运营商数据承载网。图3为本发明通过组播传输HLS流媒体的系统的一个实施例的结构示意图。该系统包括HLR服务器310、转换网关320和终端330。HLR服务器310用于将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中。其中,本发明的HLR服务器支持新的HLS索引扩展,通过扩展HLS索引文件,在扩展型HLS服务器上把传统HLS与组播进行关联。转换网关320用于从HLR服务器下载索引文件,通过索引文件的标签信息下载HLS流媒体分片文件,并将HLS流媒体分片文件转换为组播流发送至终端。其中,转换网关从扩展型HLS服务器上下载M3U8索引文件,根据M3U8索引的标签信息再到扩展型HLS服务器上下载HLS流媒体分片,并按指定的组播组发送组播数据流。索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。例如,本发明对M3U8索引进行了扩展如表1所示。M3U8示例如下:#EXTM3UEXT-X-TRANTYPE=Multicast#EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERA GE-BANDWIDTH=1000000,GroupIP=“239.1.1.1”http://example.com/low.m3u8#EXT-X-STREAM-INF:BANDWIDTH=2560000,AVERAGE-BANDWIDTH=2000000,GroupIP=“239.1.1.2”http://example.com/mid.m3u8终端330用于根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。在本发明的实施例中,在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端;终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。因此,能够实现组播技术来传输HLS视频、音频,大大减小了投资。本发明的另一个实施例,HLR服务器310用于将不同码流的HLR流媒体分片,并在M3U8标签中实现不同码流的HLS文件与组播组进行关联。即将HLS流媒体的视、音频数据封装在组播协议报文中进行传输。HLS的流媒体数据是以TS格式封装的,每个TS报文为188个字节。转换网关320为HLS->组播转换网关,负责把HLS的直播文件分片转换为组播流,HLS->组播转换网关不改变原HLS的TS分片文件。HLS->组播转换网关在转换以TS封闭的流媒体分片时,按每7个TS(188字节)包生成一个UDP包,并在这载荷前,用2字节标明其序号,为终端进行重组提供标记。终端330用于解释M3U8索引文件,获得直播频道的组播地址及对应的单播URL,终端通过组播接收视频流,并把接收到的视频流转换为HLS直播分片文件,再送到播放器播放。出现丢包时,终端330 查找组播相对应的文件URL,通过单播下载所对应的数据分片。其中,由于组播网关是无缓存机制的,要充分利用HLS自适应网络机制,也需要在终端进行分片缓存。在本发明的实施例中,通过扩展HLS索引文件,在扩展型HLS服务器上把传统HLS与组播进行关联;通过单播、组播结合,实现了组播缓存HLS分片的机制。为了保证本发明能够实现初始播放同步,本发明的终端330还用于在初始播放时,先通过单播方式向HLS服务器下载当前直播的第1个分片。同时终端加入对应组播组,转换网关应比HLS服务的第1分片更快,如吐分片3。终端通过单播接收完第2个分片,同时也可通过组播接收到第3分片,后续将使用组播接收。本发明的另一个实施例,当组播出现大量丢包或中断时,终端330用于将把组播方式切换至单播。即终端把当前的TSPCR时间记录下来,并根据分片时长、分片码流等参数计算出切换分片对应的字节范围ByteRange;终端携带ByteRange参数到HLS服务器下载对应的分片。例如,在同一个HLS节目里,可以有高中低等多个视频流,这些视频流严格按照时间同步进行分片。如,按10秒一个间隔来分片,有高中低3个视频流,就同时有3个时间为10秒长的视频分片流。终端在检查到需要进行切换时(如网络带宽不足,需要从高码率切换到低码率播放),终端需要保证视频的连续性。终端首先进行从高码率的组播组离开,加入低码率的组播组,从而可以接收到数据。但切换后接收到的数据因为是实时发送的,所以从离开到接收的这段时间切换的数据是缺失的。为此,我们在切换时是通过单播方式来下载缺失的内容的。缺失的内容我们可以知道切换的时间,通过时间我们可以反算出该时间开始的数据是在哪个分片的哪个位置(ByteRange)。在本发明的实施例中,终端把当前的TSPCR时间记录下来,并根据分片时长、分片码流等参数计算出切换分片对应的字节范围 ByteRange;终端携带ByteRange参数到HLS服务器下载对应的分片。能够保证组播与HLS单播的平滑切换,支持组播多码率切换,能够适应不同的网络环境,非常适用于网络情况复杂的电信运营商数据承载网。图4为本发明通过组播传输HLS流媒体的终端的一个实施例的结构示意图。该终端包括地址获取模块410、接收模块420、还原模块430和播放模块440。地址获取模块410用于根据索引文件获取组播地址,其中索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。其中,本发明的HLR服务器支持新的HLS索引扩展,通过扩展HLS索引文件,在扩展型HLS服务器上把传统HLS与组播进行关联。转换网关从扩展型HLS服务器上下载M3U8索引文件,地址获取模块410根据M3U8索引的标签信息再到扩展型HLS服务器上下载HLS流媒体分片,并按指定的组播组发送组播数据流。索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。例如,本发明对M3U8索引进行了扩展如表1所示。M3U8示例如下:#EXTM3UEXT-X-TRANTYPE=Multicast#EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERAGE-BANDWIDTH=1000000,GroupIP=“239.1.1.1”http://example.com/low.m3u8#EXT-X-STREAM-INF:BANDWIDTH=2560000,AVERAGE-BANDWIDTH=2000000,GroupIP=“239.1.1.2”http://example.com/mid.m3u8接收模块420用于通过转换网关从HLR服务器接收组播流。还原模块430用于将接收到的组播流转换为HLS流媒体分片文件。播放模块440用于播放HLS流媒体分片文件。在本发明的实施例中,终端根据索引文件获取组播地址,通过转换网关从HLR服务器接收组播流,并将接收到的组播流转换为HLS流媒体分片文件发送至播放器。因此,能够实现组播技术来传输HLS视频、音频,大大减小了投资。本发明通过组播传输HLS流媒体的终端的另一个实施例的结构示意图。该终端包括:地址获取模块510、接收模块520、单播组播切换模块530、同步模块540、还原模块550和播放模块560。地址获取模块510用于根据索引文件获取组播地址对应的单播URL。接收模块520用于通过转换网关从HLR服务器接收组播流。单播组播切换模块530用于当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。单播组播切换模块530还用于把当前的TSPCR时间记录下来,并根据分片时长、分片码流等参数计算出切换分片对应的字节范围ByteRange;终端携带ByteRange参数到HLS服务器下载对应的分片。例如,在同一个HLS节目里,可以有高中低等多个视频流,这些视频流严格按照时间同步进行分片。如,按10秒一个间隔来分片,有高中低3个视频流,就同时有3个时间为10秒长的视频分片流。终端在检查到需要进行切换时(如网络带宽不足,需要从高码率切换到低码率播放),终端需要保证视频的连续性。终端首先进行从高码率的组播组离开,加入低码率的组播组,从而可以接收到数据。但切换后接收到的数据因为是实时发送的,所以从离开到接收的这段时间切换的数据是缺失的。为此,我们在切换时是通过单播方式来下载缺失的内容的。缺失的内容我们可以知道切换的时间,通过时间我们可以反算出该时间开始的数据是在哪个分片的哪个位置(ByteRange)。为了保证本发明能够实现初始播放同步,本发明还可以设置同步模块540,用于初始播放时,先通过单播方式向HLS服务器下载当前 直播的第1个分片。同时终端加入对应组播组,转换网关应比HLS服务的第1分片更快,如吐分片3。终端通过单播接收完第2个分片,同时也可通过组播接收到第3分片,后续将使用组播接收。还原模块550用于将接收到的组播流转换为HLS流媒体分片文件。播放模块560用于播放HLS流媒体分片文件。在本发明的实施例中,终端可以通过单播、组播结合,实现了组播缓存HLS分片的机制。同时能够保证组播与HLS单播的平滑切换,支持组播多码率切换,能够适应不同的网络环境,非常适用于网络情况复杂的电信运营商数据承载网。至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1