实现hls频道时移播放的方法及系统的制作方法

文档序号:7772015阅读:1894来源:国知局
实现hls频道时移播放的方法及系统的制作方法
【专利摘要】本发明公开了一种实现HLS频道时移播放的方法及系统,涉及互联网多媒体领域,该方法为:服务器保留时移范围内的分片;客户进行时移操作时,客户端根据当前时间和时移的时间点算出时间差,生成一个新的URL发到服务器;服务器解析出时间差,算出应播放的分片,组织新的m3u8文件发给客户端;客户端依次请求分片播放,快播放完所有分片时,再用前面的URL来请求新的m3u8文件;服务器解析出时间差,算出应该播放的分片的序号,组织新的m3u8文件发送给客户端;客户端收到新的m3u8文件后,计算应播放哪个分片,再依次请求播放;客户端周期性请求新的m3u8文件。本发明能实现HLS频道的时移播放,提升用户体验。
【专利说明】实现HLS频道时移播放的方法及系统
【技术领域】
[0001]本发明涉及互联网多媒体领域,特别是涉及一种实现HLS(HTTP Live Streaming,苹果公司实现的基于HTTP的流媒体网络传输协议)频道时移播放的方法及系统。
【背景技术】
[0002]互联网多媒体的应用日益兴旺,HLS的规范在互联网多媒体应用越来越广泛。HLS在互联网的应用主要是VOD (Video On Demand,视频点播)播放和频道播放。简单描述一下HLS实现VOD播放的方法,客户端首先请求这个VOD的m3u8 (播放列表文件)文件,服务器收到该请求后,生成一个m3u8文件,该m3u8文件里面包含多个分片的信息,每个分片在m3u8文件中都有固定唯一的序号,客户端依次请求播放分片。当需要拖动时,客户端计算出需要播放的分片,直接请求这个分片,并依次请求其后的分片进行播放。
[0003]下面简单描述一下HLS实现频道播放的流程:客户端首先请求某个频道的m3u8文件,服务器收到请求后,生成一个m3u8文件,该m3u8文件里面包含当前时间之前的若干个分片,并包含TAG (标签)项#EXT-X-MEDIA-SEQUENCE (媒体序号),来表明该m3u8文件的第一个分片的序号,客户端根据m3u8文件中的内容依次请求每个分片的播放,快播放完所有分片时,客户端用相同的URL (Uniform/Universal Resource Locator,统一资源定位符)再到服务器请求新的m3u8文件,客户端根据新的m3u8文件中的TAG项#EXT-X-MEDIA-SEQUENCE,来决定后边应该请求的分片,然后再请求对该分片进行播放,如此周期性循环,以实现频道直播的播放。
[0004]目前的HLS频道播放只能实现直播的播放,无法实现频道时移的播放,用户体验受到限制。

【发明内容】

[0005]本发明的目的是为了克服上述【背景技术】的不足,提供一种实现HLS频道时移播放的方法及系统,在不修改HLS规范的情况下,能够实现HLS频道的时移播放,提升用户体验。
[0006]本发明提供一种实现HLS频道时移播放的方法,包括以下步骤:
[0007]S1、客户端和服务器依据苹果公司实现的基于HTTP的流媒体网络传输协议HLS规范实现频道直播流服务,服务器保留所有在时移范围内的分片;
[0008]S2、客户端正在播放当前频道,服务器根据客户端请求的统一资源定位符URL返回播放列表文件m3u8文件;客户端提供一个用于显示时移范围、客户进行时移操作的时间条;
[0009]S3、当客户在时移范围内进行时移操作时,客户端根据当前时间和时移的时间点算出时间差,然后根据这个时间差生成一个新的URL,发到服务器请求新的m3u8文件;
[0010]S4、服务器收到该新的URL后,解析出时间差,并根据这个时间差算出应该播放的分片,组织新的m3u8文件发送给客户端;
[0011]S5、客户端收到新的m3u8文件后,依次请求分片进行播放;[0012]S6、客户端在快播放完所有分片时,再次用前面的URL来请求新的m3u8文件,时间差是固定的;
[0013]S7、服务器收到该URL后,解析出时间差,并根据这个时间差和当前保存的内容,算出应该播放的分片的序号,组织新的m3u8文件发送给客户端,服务器生成的新的m3u8文件中的分片是和上次发送的m3u8文件的分片是衔接的;
[0014]S8、客户端收到新的m3u8文件后,根据标签项媒体序号#EXT-X_MEDIA_SEQUENCE来计算应该播放哪个分片,再依次请求播放;
[0015]S9、重复步骤S3?S8,客户端周期性请求新的m3u8文件,每次请求都和当前时间有个固定的时间差,实现HLS频道时移的播放。
[0016]在上述技术方案的基础上,步骤S9之后还包括以下步骤:
[0017]S10、客户端进行暂停操作时,记录下暂停的时间,当继续播放时,客户端重新修正时间差,将时间差再加上暂停的时间,生成一个新的URL,重新开始播放,客户端新收到的m3u8文件中的分片和原来正在播放的分片是衔接上的。
[0018]本发明还提供一种实现HLS频道时移播放的系统,包括客户端和服务器,所述客户端和服务器依据HLS规范实现频道直播流服务,所述服务器还用于:保留所有在时移范围内的分片;根据客户端请求的URL返回m3u8文件;所述客户端还用于:提供一个用于显示时移范围、客户进行时移操作的时间条;当客户在时移范围内进行时移操作时,客户端根据当前时间和时移的时间点算出时间差,然后根据这个时间差生成一个新的URL,发到服务器请求新的m3u8文件;
[0019]所述服务器收到该新的URL后,解析出时间差,并根据这个时间差算出应该播放的分片,组织新的m3u8文件发送给客户端;
[0020]所述客户端收到新的m3u8文件后,依次请求分片进行播放;在快播放完所有分片时,再次用前面的URL来请求新的m3u8文件,时间差是固定的;
[0021]所述服务器收到该URL后,解析出时间差,并根据这个时间差和当前保存的内容,算出应该播放的分片的序号,组织新的m3u8文件发送给客户端,服务器生成的新的m3u8文件中的分片是和上次发送的m3u8文件的分片是衔接的;
[0022]所述客户端收到新的m3u8文件后,根据标签项媒体序号#EXT-X_MEDIA_SEQUENCE来计算应该播放哪个分片,再依次请求播放;客户端周期性请求新的m3u8文件,每次请求都和当前时间有个固定的时间差,实现HLS频道时移的播放。
[0023]在上述技术方案的基础上,所述客户端还用于:进行暂停操作时,记录下暂停的时间,当继续播放时,客户端重新修正时间差,将时间差再加上暂停的时间,生成一个新的URL,重新开始播放,客户端新收到的m3u8文件中的分片和原来正在播放的分片是衔接上的。
[0024]与现有技术相比,本发明的优点如下:
[0025]本发明在不修改HLS规范的情况下,能够实现HLS频道的时移播放,提升用户体验。
【专利附图】

【附图说明】
[0026]图1是本发明实施例中实现HLS频道时移播放的方法的流程图。[0027]图2是服务器当前保留分片的示意图。
[0028]图3是客户端正在播放当前频道的示意图。
[0029]图4是客户端往前时移90秒的示意图。
[0030]图5是在图2的基础上延时I分钟后服务器保留分片变化的示意图。
[0031]图6是暂停10秒后重新生成新的URL进行请求的示意图。
【具体实施方式】
[0032]下面结合附图及具体实施例对本发明作进一步的详细描述。
[0033]参见图1所示,本发明实施例提供一种实现HLS频道时移播放的方法,包括以下步骤:
[0034]S1、客户端和服务器依据HLS规范实现频道直播流服务,参见图2所示,服务器保留所有在时移范围内的分片,假定每个分片是10秒,当前正的生成的分片的序号是1140,假定这个频道的ID是1001 ;
[0035]S2、参见图3所示,客户端正在播放当前频道,服务器根据客户端请求的URL返回m3u8文件,客户端请求的URL是http://ip/hls/live/1001.m3u8,服务器返回的m3u8文件中包括三个分片,序号分别是1137、1138、1139 ;客户端提供一个用于显示时移范围、客户进行时移操作的时间条;
[0036]S3、当客户在时移范围内进行时移操作时,客户端根据当前时间和时移的时间点算出时间差,然后根据这个时间差生成一个新的URL,发到服务器请求新的m3u8文件;例如:参见图4所示,客户进行了 往前90秒的时移操作,客户端重新请求,请求的URL是http://ip/hls/live/1001.m3u8?timeshift=90 ;
[0037]S4、服务器收到该新的URL后,解析出时间差,并根据这个时间差算出应该播放的分片,组织新的m3u8文件发送给客户端;例如:服务器收到请求后,解析出时间差90秒,再根据当前保存的内容,计算出应该播放的分片的序号分别是1128、1129、1130,将分片信息生成新的m3u8文件中返回给客户端;
[0038]S5、客户端收到新的m3u8文件后,依次请求分片进行播放;
[0039]S6、客户端在快播放完所有分片时,再次用前面的URL http://ip/hls/live/1001.m3u8?timeshift=90,来请求新的m3u8文件,因此,时间差是固定的;
[0040]S7、服务器收到该URL后,解析出时间差,并根据这个时间差和当前保存的内容,算出应该播放的分片的序号分别是1130、1131、1132,组织新的m3u8文件发送给客户端;由于相同的URL中的时间差是固定的,所以服务器生成的新的m3u8文件中的分片是和上次发送的m3u8文件的分片是衔接的;
[0041]S8、客户端收到新的m3u8文件后,根据标签项媒体序号#EXT-X_MEDIA_SEQUENCE来计算应该播放哪个分片,再依次请求播放;例如:由于前面的m3u8文件已经包含序号为1130的分片了,等序号为1130的分片播放完后,就接着请求序号为1131的分片进行播放;
[0042]S9、重复步骤S3~S8,客户端周期性请求新的m3u8文件,由于每次请求都和当前时间有个固定的时间差,从而实现HLS频道时移的播放;例如:一分钟后,服务器的保留分片变成如图5所示,客户端的请求的URL还是http://ip/hls/live/1001.m3u8?timeshift=90,服务器还是根据时间差90秒,再根据这个时间差和当前保存的内容,计算出应该播放的分片的序号分别是1134、1135、1136,将序号分别为1134、1135、1136的分片返回给客户端,客户端根据m3u8文件中的分片进行播放;
[0043]S10、客户端进行暂停操作时,记录下暂停的时间,当继续播放时,客户端重新修正时间差,将时间差再加上暂停的时间,生成一个新的URL,重新开始播放;由于URL中时间差进行了修改,所以客户端新收到的m3u8文件中的分片和原来正在播放的分片是衔接上的。参见图6所示,客户端暂停10秒,再重新播放,重新生成新的URL为,http://ip/hls/live/1001.m3u8?timeshift=100,服务器算出时间差100,再计算出相应的分片的序号生成m3u8文件给客户端。
[0044]本发明实施例还提供一种实现HLS频道时移播放的系统,包括客户端和服务器,客户端和服务器依据HLS规范实现频道直播流服务,服务器还用于:保留所有在时移范围内的分片;根据客户端请求的URL返回m3u8文件;
[0045]客户端还用于:提供一个用于显示时移范围、客户进行时移操作的时间条;当客户在时移范围内进行时移操作时,客户端根据当前时间和时移的时间点算出时间差,然后根据这个时间差生成一个新的URL,发到服务器请求新的m3u8文件;
[0046]服务器收到该新的URL后,解析出时间差,并根据这个时间差算出应该播放的分片,组织新的m3u8文件发送给客户端;
[0047]客户端收到新的m3u8文件后,依次请求分片进行播放;在快播放完所有分片时,再次用前面的URL来请求新的m3u8文件,时间差是固定的;
[0048]服务器收到该URL后,解析出时间 差,并根据这个时间差和当前保存的内容,算出应该播放的分片的序号,组织新的m3u8文件发送给客户端,服务器生成的新的 m3u8文件中的分片是和上次发送的m3u8文件的分片是衔接的;
[0049]客户端收到新的m3u8文件后,根据标签项媒体序号#EXT-X_MEDIA_SEQUENCE来计算应该播放哪个分片,再依次请求播放;客户端周期性请求新的m3u8文件,每次请求都和当前时间有个固定的时间差,实现HLS频道时移的播放。
[0050]客户端还用于:进行暂停操作时,记录下暂停的时间,当继续播放时,客户端重新修正时间差,将时间差再加上暂停的时间,生成一个新的URL,重新开始播放,客户端新收到的m3u8文件中的分片和原来正在播放的分片是衔接上的。
[0051 ] 本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型属在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
[0052]说明书中未详细描述的内容为本领域技术人员公知的现有技术。
【权利要求】
1.一种实现HLS频道时移播放的方法,其特征在于,包括以下步骤: S1、客户端和服务器依据苹果公司实现的基于HTTP的流媒体网络传输协议HLS规范实现频道直播流服务,服务器保留所有在时移范围内的分片; S2、客户端正在播放当前频道,服务器根据客户端请求的统一资源定位符URL返回播放列表文件m3u8文件;客户端提供一个用于显示时移范围、客户进行时移操作的时间条; S3、当客户在时移范围内进行时移操作时,客户端根据当前时间和时移的时间点算出时间差,然后根据这个时间差生成一个新的URL,发到服务器请求新的m3u8文件; S4、服务器收到该新的URL后,解析出时间差,并根据这个时间差算出应该播放的分片,组织新的m3u8文件发送给客户端; S5、客户端收到新的m3u8文件后,依次请求分片进行播放; S6、客户端在快播放完所有分片时,再次用前面的URL来请求新的m3u8文件,时间差是固定的; S7、服务器收到该URL后,解析出时间差,并根据这个时间差和当前保存的内容,算出应该播放的分片的序号,组织新的m3u8文件发送给客户端,服务器生成的新的m3u8文件中的分片是和上次发送的m3u8文件的分片是衔接的; S8、客户端收到新的m3u8文件后,根据标签项媒体序号#EXT-X-MEDIA-SEQUENCE来计算应该播放哪个分片,再依次请求播放; S9、重复步骤S3~S8,客户端 周期性请求新的m3u8文件,每次请求都和当前时间有个固定的时间差,实现HLS频道时移的播放。
2.如权利要求1所述的实现HLS频道时移播放的方法,其特征在于:步骤S9之后还包括以下步骤: S10、客户端进行暂停操作时,记录下暂停的时间,当继续播放时,客户端重新修正时间差,将时间差再加上暂停的时间,生成一个新的URL,重新开始播放,客户端新收到的m3u8文件中的分片和原来正在播放的分片是衔接上的。
3.一种实现HLS频道时移播放的系统,包括客户端和服务器,所述客户端和服务器依据HLS规范实现频道直播流服务,其特征在于:所述服务器还用于:保留所有在时移范围内的分片;根据客户端请求的URL返回m3u8文件; 所述客户端还用于:提供一个用于显示时移范围、客户进行时移操作的时间条;当客户在时移范围内进行时移操作时,客户端根据当前时间和时移的时间点算出时间差,然后根据这个时间差生成一个新的URL,发到服务器请求新的m3u8文件; 所述服务器收到该新的URL后,解析出时间差,并根据这个时间差算出应该播放的分片,组织新的m3u8文件发送给客户端; 所述客户端收到新的m3u8文件后,依次请求分片进行播放;在快播放完所有分片时,再次用前面的URL来请求新的m3u8文件,时间差是固定的; 所述服务器收到该URL后,解析出时间差,并根据这个时间差和当前保存的内容,算出应该播放的分片的序号,组织新的m3u8文件发送给客户端,服务器生成的新的m3u8文件中的分片是和上次发送的m3u8文件的分片是衔接的; 所述客户端收到新的m3u8文件后,根据标签项媒体序号#EXT-X-MEDIA-SEQUENCE来计算应该播放哪个分片,再依次请求播放;客户端周期性请求新的m3u8文件,每次请求都和当前时间有个固定的时间差,实现HLS频道时移的播放。
4.如权利要求3所述的实现HLS频道时移播放的系统,其特征在于:所述客户端还用于:进行暂停操作时,记录下暂停的时间,当继续播放时,客户端重新修正时间差,将时间差再加上暂停的时间,生成一个新的URL,重新开始播放,客户端新收到的m3u8文件中的分片和原来正在播放的分片是衔接上的。
【文档编号】H04N21/6587GK103517157SQ201310449988
【公开日】2014年1月15日 申请日期:2013年9月27日 优先权日:2013年9月27日
【发明者】杜兵 申请人:武汉市烽视威科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1