基于m3u8的流媒体文件直播方法及系统的制作方法

文档序号:10539335
基于m3u8的流媒体文件直播方法及系统的制作方法
【专利摘要】本发明提供一种基于m3u8的流媒体文件直播的方法和系统。通过修改用户直播请求返回的索引文件m3u8,在其中加入由调度分配的动态的回源路径,依据回源路径进行媒体分片文件ts的回源,与现有技术中只能根据服务器内部配置好的固定的回源地址进行回源的方式相比,实现根据实时的网络状况如负载、带宽等情况,为客户端请求提供最优的ts下载路径,减少客户端下载延迟,提升播放的流畅度;此外,通过调度策略灵活地分配动态回源地址,使得服务器能够灵活地根据动态回源地址进行回源,均衡了系统的访问压力,避免了系统过载,合理地利用系统资源。
【专利说明】
基于m3u8的流媒体文件直播方法及系统
技术领域
[0001 ]本发明实施例涉及互联网媒体播放技术领域,尤其涉及一种基于m3u8的流媒体文件直播方法及系统。
【背景技术】
[0002]HLS(Http live streaming)协议是苹果公司实现的基于超文本传输协议Http的流媒体传输协议,HLS协议将容量巨大的连续媒体数据进行分段,分割为数量众多的小文件进行传递,迎合了网页服务器的文件传输性,并采用一个不断更新的轻量级索引文件来控制分割后小媒体文件的下载和播放,可以实现流媒体的直播和点播。HLS协议在优先考虑流畅性的前提下支持码率的自动切换,目前被各大视频网站广泛使用。
[0003]通过HLS协议,视频数据经处理后分为视频片段ts文件以及媒体数据索引m3u8文件,并存在于云服务器上。m3u8文件实际上只是一种文件组的组织形式,将视频片段ts文件以播放列表的形式组织在一起以供多媒体播放器下载播放。m3u8文件中通常包括视频片段的多个统一资源定位符URL。多媒体播放器获取m3u8文件后,进而按照其中的URL下载对应的视频片段并进行播放。客户端播放HLS内容的过程,本质上是分别下载索引文件和分片文件的过程。
[0004]现有的视频直播系统中一般包括源服务器、多个直播前置节点以及多个边缘节点。直播时,客户端播放器发起HLS直播请求,服务器接受请求后,将索引文件m3u8返还给客户端,客户端根据接收到的m3u8文件进行ts的下载和播放,现有的m3u8文件中只包含了 ts文件的URL,无其他参数,客户端播放器从哪里请求m3u8就从哪里提取ts,如在边缘节点请求m3u8,只能从边缘节点提取ts,如果边缘节点没有,通常需要去别的服务器上进行ts回源。在现有技术中,服务器进行回源的方法通常是根据服务器内部配置好的固定的回源地址,去别的服务器上进行回源。
[0005]然而,由于现有技术中服务器只能根据服务器内部配置好的固定的回源地址进行回源,无法灵活地为服务器分配回源地址,其不能够根据实时动态的网络负载状况为客户端请求提供最佳的回源地址去提取ts。而且,当有许多服务器同时去固定的回源地址上回源时,会导致提供回源的服务器的访问压力不均衡,产生系统过载、系统资源利用不合理的情况,对用户来讲,更容易造成下载延时,影响用户直播体验;另一方面,请求无m3u8的缓存效果,这样在请求的服务器出现网络状况时,会出现下载延时,播放不畅,影响用户体验。

【发明内容】

[0006]针对现有技术中存在的问题,本发明实施例提供一种基于m3u8的流媒体文件直播方法和系统。
[0007]本发明实施例一方面提供一种基于m3u8的流媒体直播优化的方法,包括:
[0008]在内容分发网络的边缘节点接收用户发出的直播请求;
[0009]当检查出所述直播请求需要回源时,根据当前内容分发网络中的各节点的网络状况,在流媒体文件的源服务器处对所述直播请求对应的m3u8文件添加回源路径,所述回源路径包括源服务器的IP地址和内容分发网络中的直播前置节点的IP地址;
[0010]将添加回源路径后的m3u8文件经直播前置节点和边缘节点返回给用户。
[0011]本发明实施例另一方面提供基于m3u8的流媒体文件直播的系统,包括:
[0012]接收装置,配置以接收用户发出的直播请求;
[0013]调度装置,配置以根据当前内容分发网络中的各节点的网络状况,在流媒体文件的源服务器处对所述直播请求对应的m3u8文件添加回源路径;
[0014]发送装置,配置以返回添加回源路径后的m3u8文件给用户。
[0015]本发明实施例提供的基于m3u8的流媒体直播方法和系统,通过修改请求返回的m3u8文件,在其中加入由调度给出的动态的回源路径,依据回源路径进行ts文件的回源,与现有技术中只能根据服务器内部配置好的固定的回源地址进行回源的方式相比,实现根据实时的网络状况如负载、带宽等情况,为客户端请求提供最优的ts下载路径,减少客户端下载延迟,提升播放的流畅度;此外,通过调度策略灵活地分配动态回源地址,使得服务器能够灵活地根据动态回源地址进行回源,均衡了系统的访问压力,避免了系统过载,合理地利用系统资源。另一方面,对索引文件m3u8的缓存进行优化,即通过在边缘节点根据m3u8的完整性调整缓存时间,由此实现缓存资源的合理利用,并且减少不必要的回源消耗和等待时间,提高了处理效率,减少了下载延迟,从而增加了用户体验。
【附图说明】
[0016]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本发明基于m3u8的流媒体文件直播方法实施例流程图;
[0018]图2为本发明基于m3u8的流媒体文件直播系统实施例结构示意图;
【具体实施方式】
[0019]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020]如图1所示,本发明实施例提供的一种基于m3u8的流媒体文件直播方法,此方法包括如下步骤:
[0021]SlOl:在内容分发网络的边缘节点接收用户发出的直播请求;
[0022]S102:检查直播请求是否需要回源;
[0023]现有直播系统中一般存在源服务器、多个直播前置节点以及多个边缘节点,用户通过边缘节点发起直播请求,边缘节点响应直播请求,并进行是否需要回源的判断。
[0024]S103:若不需要回源,用户请求指向的资源在边缘节点中有相应的缓存文件,边缘节点直接将缓存的文件返回给用户;
[0025]S104:当检查出所述直播请求需要回源时,根据当前内容分发网络中的各节点的网络状况,在流媒体文件的源服务器处对所述直播请求对应的m3u8文件添加回源路径,所述回源路径包括源服务器的IP地址和直播前置节点的IP地址;
[0026]回源路径是调度接收回源请求,并根据当前的网络状况,动态分配的当前时间最优的回源路径,回源路径被加到源上,其存储了多个直播前置的IP地址以及源的IP地址。这样,当客户端在请求的边缘结点没有找到相应的资源时,就会根据回源路径快速得到请求的资源。
[0027]S105:将添加回源路径后的m3u8文件经直播前置节点和边缘节点返回给用户。
[0028]优选地,在步骤S105中所述将添加回源路径后的m3u8文件经直播前置节点和边缘节点返回给用户包括,在直播前置节点和边缘节点处缓存m3u8文件和与m3u8文件相应的ts文件。
[0029]直播前置节点和边缘节点需要缓存当前请求的返回的m3u8文件,在边缘节点需要替换回源路径,即完全根据当前请求返回的m3u8文件的回源路径去回源,然后每一步都把ts文件缓存下来。例如,上一次请求返回的索引文件m3u8的回源路径为pathl,当前请求的索引文件m3u8的回源路径为path2,在回源时,会依次用当前请求的回源路径path2替换直播前置节点以及边缘节点的上一次请求的pathl,这样每一步都把ts文件缓存下来了。
[0030]进一步地,所述在所述边缘节点处缓存m3u8文件和与m3u8文件相应的ts文件的步骤还包括,在边缘节点判断m3u8文件的完整性,基于m3u8文件的完整性,确定ts文件的缓存时间,其中:
[0031]-当m3u8文件不完整时,确定ts文件的第一缓存时间;
[0032]-当m3u8文件完整时,确定ts文件的第二缓存时间;
[0033]-所述第二缓存时间大于所述第一缓存时间。
[0034]进一步地,在边缘节点接收到m3u8文件时,判断m3u8文件的完整性包括:
[0035]在边缘节点接收到m3u8文件时,解析所述m3u8文件中的ts文件的数量,将解析出的ts文件的数量与预定阈值进行比较,当ts文件的数量小于预定阈值时,则判定所述m3u8文件不完整;当ts文件的数量等于预定阈值时,则判定所述m3u8文件完整。
[0036]优选地,预定阈值为请求响应头中带过来请求的ts片数msliz,通常配置为msliz=3,第二缓存时间为100秒,第一缓存时间为3秒。
[0037]之所以要判断完整性并进行相应长度的缓存,是因为请求m3u8文件可能是当前时间点,也可能是之前时间点;当请求m3u8是当前时间点时不能缓存太长时间,比如只缓存3秒,当请求m3u8是之前时间点时则缓存较长时间,比如100秒。这样既能够保证针对请求m3u8进行适当的缓存,也能够避免因为过多的缓存而影响后续的用户的请求(例如,当请求m 3 u 8是当前时间点而缓存1 O秒时,就会影响后续的用户请求)。其中m 3 u 8的文件名为desc.m3u8,同时带一个参数绝对时移abtimeshift,通过文件名和绝对时移就可以唯一标识!113118。缓存以(168(3.1113118+1:;[1116811丨;1^1:作为键对1113118文件进行缓存。
[0038]例如当前时间为6: 10,客户请求当前时间点,获取的m3u8中只有一片ts,则只缓存3秒钟,如果请求6:05的时间点,返回3片ts,缓存通过desc.m3u8+timeStamp作为键将该m3u8缓存下来,缓存100秒,如果下一个用户再请求6:05时间节点,返回已缓存的三片ts即可,减少了不必要的等待时间。
[0039]本发明实施例通过上述方法,实现了根据实时的网络状况进行回源操作,与现有技术中只能根据服务器内部配置好的固定的回源地址的方式相比,减少了客户端下载延迟,提升了播放的流畅度,同时均衡了系统访问压力,避免了系统过载,合理地利用系统资源。此外,通过对索引文件m3u8的缓存以及根据其完整性进行缓存时间的调整,实现了缓存资源的合理利用,并且减少不必要的回源消耗和等待时间,提高了处理效率,减少了下载延迟,从而增加了用户体验。
[0040]上述与图1所示的实施例有关的方法,参照图2,可以根据本发明实施例的系统予以实施。
[0041 ]基于m3u8的流媒体文件直播系统,包括:
[0042]接收装置,配置以接收用户发出的直播请求;
[0043]调度装置,配置以根据当前内容分发网络中的各节点的网络状况,在流媒体文件的源服务器处对所述直播请求对应的m3u8文件添加回源路径;
[0044]发送装置,配置以返回添加回源路径后的m3u8文件给用户。
[0045]进一步地,如图2所示的系统中所述发送装置包括:
[0046]直播前置节点缓存单元,配置以在直播前置节点处缓存m3u8文件和与m3u8文件相应的ts文件,和/或
[0047]边缘节点缓存单元,配置以在边缘节点处缓存m3u8文件和与m3u8文件相应的ts文件。
[0048]更进一步地,如图2所示,所述边缘节点缓存单元包括:
[0049]判断模块,配置以在边缘节点接收到m3u8文件时,判断m3u8文件的完整性;
[0050]缓存时间确定模块,配置以基于m3u8文件的完整性,确定ts文件的缓存时间,其中,当m3u8文件不完整时,确定ts文件的第一缓存时间;当m3u8文件完整时,确定ts文件的第二缓存时间;所述第二缓存时间大于所述第一缓存时间。
[0051]其中所述判断模块包括:
[0052]解析组件,配置以解析m3u8文件中的ts文件的数量;
[0053]比较组件,配置以将解析出的ts文件的数量与预定阈值进行比较,当ts文件的数量小于预定阈值时,则判定所述m3u8文件不完整;当ts文件的数量等于预定阈值时,则判定所述m3u8文件完整。
[0054]优选地,第一缓存时间为3秒,第二缓存时间为100秒。
[0055]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0056]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0057]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种基于m3u8的流媒体文件直播方法,其特征在于,包括: 在内容分发网络的边缘节点接收用户发出的直播请求; 当检查出所述直播请求需要回源时,根据当前内容分发网络中的各节点的网络状况,在流媒体文件的源服务器处对所述直播请求对应的m3u8文件添加回源路径,所述回源路径包括源服务器的IP地址和内容分发网络中的直播前置节点的IP地址; 将添加回源路径后的m3u8文件经直播前置节点和边缘节点返回给用户。2.根据权利要求1所述的方法,其特征在于,所述将添加回源路径后的m3u8文件经直播前置节点和边缘节点返回给用户,包括: 在直播前置节点接收到m3u8文件时,在所述直播前置节点处缓存m3u8文件和与m3u8文件相应的ts文件;和/或 在边缘节点接收到m3u8文件时,在所述边缘节点处缓存m3u8文件和与m3u8文件相应的ts文件。3.根据权利要求2所述的方法,其特征在于,所述在边缘节点接收到m3u8文件时,在所述边缘节点处缓存m3u8文件和与m3u8文件相应的ts文件包括: 在边缘节点接收到m3u8文件时,判断m3u8文件的完整性, 基于m3u8文件的完整性,确定ts文件的缓存时间,其中, -当m3u8文件不完整时,确定ts文件的第一缓存时间; -当m3u8文件完整时,确定ts文件的第二缓存时间; -所述第二缓存时间大于所述第一缓存时间。4.根据权利要求3所述的方法,其特征在于,所述在边缘节点接收到m3u8文件时,判断m3u8文件的完整性包括: 在边缘节点接收到m3u8文件时,解析所述m3u8文件中的ts文件的数量,将解析出的ts文件的数量与预定阈值进行比较, 当ts文件的数量小于预定阈值时,则判定所述m3u8文件不完整; 当ts文件的数量等于预定阈值时,则判定所述m3u8文件完整。5.根据权利要求3或4所述的方法,其特征在于,第一缓存时间为3秒,第二缓存时间为10 秒。6.一种基于m3u8的流媒体文件直播系统,其特征在于,包括: 接收装置,配置以接收用户发出的直播请求; 调度装置,配置以根据当前内容分发网络中的各节点的网络状况,在流媒体文件的源服务器处对所述直播请求对应的m3u8文件添加回源路径; 发送装置,配置以返回添加回源路径后的m3u8文件给用户。7.根据权利要求6所述的系统,其特征在于,所述发送装置包括: 直播前置节点缓存单元,配置以在直播前置节点处缓存m3u8文件和与m3u8文件相应的ts文件,和/或 边缘节点缓存单元,配置以在边缘节点处缓存m3u8文件和与m3u8文件相应的ts文件。8.根据权利要求7所述的系统,其特征在于,所述边缘节点缓存单元包括: 判断模块,配置以在边缘节点接收到m3u8文件时,判断m3u8文件的完整性; 缓存时间确定模块,配置以基于m3u8文件的完整性,确定ts文件的缓存时间,其中,当m3u8文件不完整时,确定ts文件的第一缓存时间;当m3u8文件完整时,确定ts文件的第二缓存时间;所述第二缓存时间大于所述第一缓存时间。9.根据权利要求8所述的系统,其特征在于,所述判断模块包括: 解析组件,配置以解析m3u8文件中的t s文件的数量; 比较组件,配置以将解析出的ts文件的数量与预定阈值进行比较,当ts文件的数量小于预定阈值时,则判定所述m3u8文件不完整;当ts文件的数量等于预定阈值时,则判定所述m3u8文件完整。10.根据权利要求8或9所述的系统,其特征在于,第一缓存时间为3秒,第二缓存时间为.100 秒。
【文档编号】H04N21/239GK105898352SQ201510780964
【公开日】2016年8月24日
【申请日】2015年11月13日
【发明人】刘斌
【申请人】乐视云计算有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1