CN108989426B - 基于hls协议的拉流方法、系统及客户端和存储介质 - Google Patents

基于hls协议的拉流方法、系统及客户端和存储介质 Download PDF

Info

Publication number
CN108989426B
CN108989426B CN201810784692.1A CN201810784692A CN108989426B CN 108989426 B CN108989426 B CN 108989426B CN 201810784692 A CN201810784692 A CN 201810784692A CN 108989426 B CN108989426 B CN 108989426B
Authority
CN
China
Prior art keywords
stream
file
target
node
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810784692.1A
Other languages
English (en)
Other versions
CN108989426A (zh
Inventor
杜琛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Onething Technology Co Ltd
Original Assignee
Shenzhen Onething Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Onething Technology Co Ltd filed Critical Shenzhen Onething Technology Co Ltd
Priority to CN201810784692.1A priority Critical patent/CN108989426B/zh
Publication of CN108989426A publication Critical patent/CN108989426A/zh
Application granted granted Critical
Publication of CN108989426B publication Critical patent/CN108989426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种基于HLS协议的拉流方法、系统及一种客户端和计算机可读存储介质,该方法包括:获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流;当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;若是,则从所述目标节点拉取所述目标ts流。由此可见,本申请提供的基于HLS协议的拉流方法客户端在播放ts流的同时,通过节点缓存其他ts流,提高了ts流的拉取效率。

Description

基于HLS协议的拉流方法、系统及客户端和存储介质
技术领域
本申请涉及通信技术领域,更具体地说,涉及一种基于HLS协议的拉流方法、系统及一种客户端和一种计算机可读存储介质。
背景技术
随着互联网技术的飞速发展,越来越多的信息如影视、音乐等逐渐以网络作为传播的媒介。流媒体指以流方式在网络中传送音频、视频和多媒体文件的媒体形式。相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等待整个文件下载完毕。由于流媒体服务器流媒体技术的优越性,该技术广泛应用于视频点播、视频会议、远程教育、远程医疗和在线直播系统中。
直播视频文件的提供方,通过推流技术将流媒体文件推送到源服务器,即流媒体服务器。在观看直播视频文件时,观看方发出观看请求,通过拉流技术将直播视频文件流拉到观看方的客户端。拉流技术是指从流媒体服务器,将直播视频文件提供方推送的直播视频文件流,拉取到观看方的客户端。
HLS(英文全称:HTTP Live Streaming)是Apple的动态码率自适应技术,主要用于电脑端和移动终端的音视频服务,包括一个m3u8文件,该m3u8文件包括TS媒体分片文件和key加密串文件,TS媒体分片文件为索引文件,用于存储各ts流在流媒体服务器中的下载地址。在现有技术中,基于HLS协议的拉流一般采用传统的直拉m3u8文件的方式,即客户端需要播放流媒体服务器中的ts流时,解析m3u8文件,根据m3u8文件中第一个ts流的下载地址主动从流媒体服务器中拉取第一个ts流,当该ts流拉取完毕后,按照相同的方式依次进行后续ts流的拉取,效率较低。
因此,如何提高ts流的拉取效率是本领域技术人员需要解决的问题。
发明内容
本申请的目的在于提供一种基于HLS协议的拉流方法、系统及一种客户端和一种计算机可读存储介质,提高了ts流的拉取效率。
为实现上述目的,本申请提供了一种基于HLS协议的拉流方法,应用于客户端,包括:
获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流;
当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;
若是,则从所述目标节点拉取所述目标ts流。
其中,所述获取m3u8文件之前,还包括:
根据预设的调度规则和客户端信息确定候选节点。
其中,若客户端信息包括所述客户端的运营商和归属地,则所述根据预设的调度规则和客户端信息确定候选节点:
将与所述客户端运营商相同且距离与所述客户端的归属地在预设范围内的节点确定为候选节点。
其中,从所述候选节点中选取目标节点,包括:
在所述候选节点中选取与所述客户端的归属地距离最近的节点作为目标节点。
其中,若所述目标节点不存在所述目标ts流,则还包括:
从所述流媒体服务器中拉取所述目标ts流。
其中,所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流,包括:
所述候选节点从所述流媒体服务器缓存所述m3u8文件中的预设数量个ts流,作为缓存ts流;
相应的,所述从流媒体服务器中拉取所述m3u8文件的第一个ts流之后,还包括:
从所述流媒体服务器中拉取所述m3u8文件中除所述第一个ts流和所述缓存ts流的其他ts流。
其中,若所述m3u8文件包括8个ts流,所述预设数量为5。
为实现上述目的,本申请提供了一种基于HLS协议的拉流方法,应用于节点,包括:
接收客户端发送的m3u8文件,并从流媒体服务器中缓存所述m3u8文件中的ts流;
当接收到所述客户端发送的目标ts流的拉取命令时,判断内存中是否存在所述目标ts流;
若是,则向所述客户端发送所述目标ts流。
为实现上述目的,本申请提供了一种基于HLS协议的拉流方法,应用于流媒体服务器,包括:
当接收到客户端发送的第一ts流的第一拉取命令时,根据所述第一拉取命令时的地址信息查询所述第一ts流,并向所述客户端返回所述第一ts流;
当接收到节点发送的第二ts流的第二拉取命令时,根据所述第二拉取命令时的地址信息查询所述第二ts流,并向所述节点返回所述第二ts流。
为实现上述目的,本申请提供了一种基于HLS协议的拉流系统,应用于客户端,包括:
获取模块,用于获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流;
选取模块,用于当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;
拉取模块,用于当所述目标节点存在所述目标ts流时,从所述目标节点拉取所述目标ts流。
为实现上述目的,本申请提供了一种基于HLS协议的拉流设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述基于HLS协议的拉流方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述基于HLS协议的拉流方法的步骤。
通过以上方案可知,本申请提供的一种基于HLS协议的拉流方法,包括:获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流;当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;若是,则从所述目标节点拉取所述目标ts流。
本申请提供的基于HLS协议的拉流方法,客户端从流媒体服务器中拉取m3u8文件中的第一个ts流,并将m3u8文件发送至候选节点,在客户端播放该ts流的同时候选节点缓存m3u8文件中的ts流,客户端需要拉取其他ts流时,可以直接从缓存节点中的目标节点中拉取,由于客户端与节点之间的距离远近于与流媒体服务器的距离,因此从目标节点中拉流的速度较快。由此可见,本申请提供的基于HLS协议的拉流方法客户端在播放ts流的同时,通过节点缓存其他ts流,提高了ts流的拉取效率。本申请还公开了一种基于HLS协议的拉流系统及一种客户端和一种计算机可读存储介质,同样能实现上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种基于HLS协议的拉流方法的流程图;
图2为本申请实施例公开的另一种基于HLS协议的拉流方法的流程图;
图3为本申请实施例公开的一种基于HLS协议的拉流方法应用于节点的流程图;
图4为本申请实施例公开的另一种基于HLS协议的拉流方法应用于流媒体服务器的流程图;
图5为本申请实施例公开的一种基于HLS协议的拉流系统的结构图;
图6为本申请实施例公开的另一种基于HLS协议的拉流系统的结构图;
图7为本申请实施例公开的一种客户端的结构图;
图8为本申请实施例公开的另一种客户端的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种基于HLS协议的拉流方法,提高了ts流的拉取效率。
参见图1,本申请实施例公开的一种基于HLS协议的拉流方法的流程图,如图1所示,包括:
S101:获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流;
在具体实施中,客户端需要拉取ts流时,首先获取m3u8文件,该m3u8文件可以理解为待拉取ts流地址的列表。客户端根据该m3u8文件从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将m3u8文件发送至候选节点。
此处的候选节点为根据预设的调度规则和客户端信息选取的。此处不对具体的调度规则进行限定,本领域技术人员可以根据实际情况灵活选择。例如,客户端信息可以包括客户端的运营商和归属地,相应的,可以将与该客户端运营商相同且距离与该客户端的归属地在预设范围内的节点确定为候选节点。对于距离的预设范围,可以选择同城市的节点,例如,若客户端为北京的电信用户,则候选节点为北京的电信节点。
在客户端播放获取到的第一个ts流时,候选节点缓存从流媒体服务器缓存m3u8文件中的ts流。候选节点可以缓存m3u8文件中的所有ts流,当然作为一种优选实施方式,候选节点缓存m3u8文件中除上述第一个ts流的其他ts流。
S102:当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;若是,则进入S103;若否,则进入S104;
在具体实施中,当客户端需要拉取目标ts流时,首选从候选节点中选取目标节点。本实施例不对选取目标节点的具体方式进行限定,作为一种优选实施方式,可以选取与所述客户端的归属地距离最近的节点作为目标节点。
选取目标节点后,判断目标节点中是否存在目标ts流,若是,则从所述目标节点拉取所述目标ts流,若否,则直接从流媒体服务器中拉取目标ts流。
S103:从所述目标节点拉取所述目标ts流;
S104:直接从流媒体服务器中拉取目标ts流。
本申请实施例提供的基于HLS协议的拉流方法,客户端从流媒体服务器中拉取m3u8文件中的第一个ts流,并将m3u8文件发送至候选节点,在客户端播放该ts流的同时候选节点缓存m3u8文件中的ts流,客户端需要拉取其他ts流时,可以直接从缓存节点中的目标节点中拉取,由于客户端与节点之间的距离远近于与流媒体服务器的距离,因此从目标节点中拉流的速度较快。由此可见,本申请实施例提供的基于HLS协议的拉流方法客户端在播放ts流的同时,通过节点缓存其他ts流,提高了ts流的拉取效率。
本申请实施例公开了一种基于HLS协议的拉流方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图2,本申请实施例提供的另一种基于HLS协议的拉流方法的流程图,如图2所示,包括:
S201:获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的预设数量个ts流,作为缓存ts流;
在具体实施中,为缓解候选节点的缓存压力,候选节点可以只缓存m3u8文件中一部分的ts流。其他的ts流在客户端播放已下载的ts流时,由客户端直接从流媒体服务器中拉取。在实际应用中,一般一个m3u8文件包含8个ts流,可以将预设数量设为4,即候选节点缓存第2个至第5个ts流,剩余的3个由客户端直接从流媒体服务器中拉取。
S202:从所述流媒体服务器中拉取所述m3u8文件中除所述第一个ts流和所述缓存ts流的其他ts流。
可以理解的是,本步骤的执行是在播放已下载的ts流时进行,本实施例利用候选节点缓存部分ts流,提升了ts流的拉取效率,客户端在播放时同时拉取候选节点未缓存的ts流,可以减少候选节点的缓存压力。
S203:当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;若是,则进入S204;若否,则进入S205;
S204:从所述目标节点拉取所述目标ts流;
S205:直接从流媒体服务器中拉取目标ts流。
下面对本申请实施例提供的一种基于HLS协议的拉流方法应用于节点进行介绍,具体的:
参见图3,本申请实施例提供的一种基于HLS协议的拉流方法应用于节点的流程图,如图3所示,包括:
S301:接收客户端发送的m3u8文件,并从流媒体服务器中缓存所述m3u8文件中的ts流;
需要说明的是,本实施例的节点为上一实施例中的目标节点,但本步骤的执行主语即可以为目标节点,也可以包括上一实施例中的所有候选节点。也就是说,所有的候选节点在接收到客户端发送的m3u8文件后,都需要从流媒体服务器中缓存该m3u8文件中的ts流,当客户端选择了目标节点后,执行S302,即S302的执行主语为目标节点。
S302:当接收到所述客户端发送的目标ts流的拉取命令时,判断内存中是否存在所述目标ts流;若是,则进入S303;若否,则进入S304;
在具体实施中,目标节点节点到客户端的目标ts流的拉取命令时,判断内存中是否存在所述目标ts流,若是,则向客户端发送该目标ts流,若否,则向客户端返回拉取失败信息,以便客户端接收到该拉取失败信息后直接从流媒体服务器中拉取该目标ts流。
S303:向所述客户端发送所述目标ts流;
S304:向客户端返回拉取失败信息,以便客户端接收到该拉取失败信息后直接从流媒体服务器中拉取该目标ts流。
下面对本申请实施例提供的一种基于HLS协议的拉流方法应用于流媒体服务器进行介绍,具体的:
参见图4,本申请实施例提供的一种基于HLS协议的拉流方法应用于流媒体服务器的流程图,如图4所示,包括:
S401:当接收到客户端发送的第一ts流的第一拉取命令时,根据所述第一拉取命令时的地址信息查询所述第一ts流,并向所述客户端返回所述第一ts流;
S402:当接收到节点发送的第二ts流的第二拉取命令时,根据所述第二拉取命令时的地址信息查询所述第二ts流,并向所述节点返回所述第二ts流。
在具体实施中,流媒体服务器用于存储ts流,当接收到客户端或候选节点的拉取命令时,根据拉取命令中的地址信息查询对应的ts流,并将该ts流返回至请求方。
下面对本申请实施例提供的一种基于HLS协议的拉流系统进行介绍,下文描述的一种基于HLS协议的拉流系统与上文描述的一种基于HLS协议的拉流方法可以相互参照。
参见图5,本申请实施例提供的一种基于HLS协议的拉流系统的结构图,如图5所示,包括:
获取模块501,用于获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流;
选取模块502,用于当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;
拉取模块503,用于当所述目标节点存在所述目标ts流时,从所述目标节点拉取所述目标ts流。
本申请实施例提供的基于HLS协议的拉流系统,客户端从流媒体服务器中拉取m3u8文件中的第一个ts流,并将m3u8文件发送至候选节点,在客户端播放该ts流的同时候选节点缓存m3u8文件中的ts流,客户端需要拉取其他ts流时,可以直接从缓存节点中的目标节点中拉取,由于客户端与节点之间的距离远近于与流媒体服务器的距离,因此从目标节点中拉流的速度较快。由此可见,本申请实施例提供的基于HLS协议的拉流系统客户端在播放ts流的同时,通过节点缓存其他ts流,提高了ts流的拉取效率。
在上述实施例的基础上,作为一种优选实施方式,还包括:
确定模块,用于根据预设的调度规则和客户端信息确定候选节点。
在上述实施例的基础上,作为一种优选实施方式,若客户端信息包括所述客户端的运营商和归属地,则所述确定模块具体为将与所述客户端运营商相同且距离与所述客户端的归属地在预设范围内的节点确定为候选节点的模块。
在上述实施例的基础上,作为一种优选实施方式,所述选取模块302具体为当需要拉取目标ts流时,在所述候选节点中选取与所述客户端的归属地距离最近的节点作为目标节点,并判断所述目标节点是否存在所述目标ts流的模块。
在上述实施例的基础上,作为一种优选实施方式,还包括:
候选拉取模块,用于当所述目标节点不存在所述目标ts流时,从所述流媒体服务器中拉取所述目标ts流。
本申请实施例公开了一种基于HLS协议的拉流系统,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图6,本申请实施例提供的另一种基于HLS协议的拉流系统的结构图,如图6所示,包括:
获取模块601,用于获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的预设数量个ts流,作为缓存ts流;
第一拉取模块602,用于从所述流媒体服务器中拉取所述m3u8文件中除所述第一个ts流和所述缓存ts流的其他ts流。
选取模块603,用于当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;
第二拉取模块604,用于当所述目标节点存在所述目标ts流时,从所述目标节点拉取所述目标ts流。
本申请还提供了一种客户端,参见图7,本申请实施例提供的一种客户端的结构图,如图7所示,包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200为客户端提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现以下步骤:获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流;当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;若是,则从所述目标节点拉取所述目标ts流。
本申请实施例客户端从流媒体服务器中拉取m3u8文件中的第一个ts流,并将m3u8文件发送至候选节点,在客户端播放该ts流的同时候选节点缓存m3u8文件中的ts流,客户端需要拉取其他ts流时,可以直接从缓存节点中的目标节点中拉取,由于客户端与节点之间的距离远近于与流媒体服务器的距离,因此从目标节点中拉流的速度较快。由此可见,本申请实施例客户端在播放ts流的同时,通过节点缓存其他ts流,提高了ts流的拉取效率。
优选的,所述处理器200执行所述存储器100中保存的计算机子程序时,可以实现以下步骤:根据预设的调度规则和客户端信息确定候选节点。
优选的,所述处理器200执行所述存储器100中保存的计算机子程序时,可以实现以下步骤:将与所述客户端运营商相同且距离与所述客户端的归属地在预设范围内的节点确定为候选节点。
优选的,所述处理器200执行所述存储器100中保存的计算机子程序时,可以实现以下步骤:在所述候选节点中选取与所述客户端的归属地距离最近的节点作为目标节点。
优选的,所述处理器200执行所述存储器100中保存的计算机子程序时,可以实现以下步骤:当所述目标节点不存在所述目标ts流时,从所述流媒体服务器中拉取所述目标ts流。
优选的,所述处理器200执行所述存储器100中保存的计算机子程序时,可以实现以下步骤:获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的预设数量个ts流,作为缓存ts流;从所述流媒体服务器中拉取所述m3u8文件中除所述第一个ts流和所述缓存ts流的其他ts流。
在上述实施例的基础上,作为优选实施方式,参见图8,所述客户端还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200发送的数据。该显示单元400可以为PC机上的显示屏、液晶显示屏或者电子墨水显示屏等。具体的,在本实施例中,可以通过显示单元400显示各候选节点的信息等。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。具体的,在本实施例中,可以通过网络端口500向客户端的处理器200导入m3u8文件等。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流;当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;若是,则从所述目标节点拉取所述目标ts流。
本申请实施例客户端从流媒体服务器中拉取m3u8文件中的第一个ts流,并将m3u8文件发送至候选节点,在客户端播放该ts流的同时候选节点缓存m3u8文件中的ts流,客户端需要拉取其他ts流时,可以直接从缓存节点中的目标节点中拉取,由于客户端与节点之间的距离远近于与流媒体服务器的距离,因此从目标节点中拉流的速度较快。由此可见,本申请实施例客户端在播放ts流的同时,通过节点缓存其他ts流,提高了ts流的拉取效率。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:根据预设的调度规则和客户端信息确定候选节点。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:将与所述客户端运营商相同且距离与所述客户端的归属地在预设范围内的节点确定为候选节点。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:在所述候选节点中选取与所述客户端的归属地距离最近的节点作为目标节点。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:当所述目标节点不存在所述目标ts流时,从所述流媒体服务器中拉取所述目标ts流。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的预设数量个ts流,作为缓存ts流;从所述流媒体服务器中拉取所述m3u8文件中除所述第一个ts流和所述缓存ts流的其他ts流。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种基于HLS协议的拉流方法,其特征在于,应用于客户端,包括:
获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流;其中,所述候选节点为与所述客户端运营商相同且距离与所述客户端的归属地在预设范围内的节点;
当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;
若是,则从所述目标节点拉取所述目标ts流。
2.根据权利要求1所述基于HLS协议的拉流方法,其特征在于,所述获取m3u8文件之前,还包括:
根据预设的调度规则和客户端信息确定候选节点。
3.根据权利要求2所述基于HLS协议的拉流方法,其特征在于,若客户端信息包括所述客户端的运营商和归属地,则所述根据预设的调度规则和客户端信息确定候选节点:
将与所述客户端运营商相同且距离与所述客户端的归属地在预设范围内的节点确定为候选节点。
4.根据权利要求1所述基于HLS协议的拉流方法,其特征在于,从所述候选节点中选取目标节点,包括:
在所述候选节点中选取与所述客户端的归属地距离最近的节点作为目标节点。
5.根据权利要求1所述基于HLS协议的拉流方法,其特征在于,若所述目标节点不存在所述目标ts流,则还包括:
从所述流媒体服务器中拉取所述目标ts流。
6.根据权利要求1-5任一项所述基于HLS协议的拉流方法,其特征在于,所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流,包括:
所述候选节点从所述流媒体服务器缓存所述m3u8文件中的预设数量个ts流,作为缓存ts流;
相应的,所述从流媒体服务器中拉取所述m3u8文件的第一个ts流之后,还包括:
从所述流媒体服务器中拉取所述m3u8文件中除所述第一个ts流和所述缓存ts流的其他ts流。
7.根据权利要求6所述基于HLS协议的拉流方法,其特征在于,若所述m3u8文件包括8个ts流,所述预设数量为5。
8.一种基于HLS协议的拉流系统,其特征在于,应用于客户端,包括:
获取模块,用于获取m3u8文件,从流媒体服务器中拉取所述m3u8文件的第一个ts流,并将所述m3u8文件发送至候选节点,以便所述候选节点从所述流媒体服务器缓存所述m3u8文件中的ts流;其中,所述候选节点为与所述客户端运营商相同且距离与所述客户端的归属地在预设范围内的节点;
选取模块,用于当需要拉取目标ts流时,从所述候选节点中选取目标节点,并判断所述目标节点是否存在所述目标ts流;
拉取模块,用于当所述目标节点存在所述目标ts流时,从所述目标节点拉取所述目标ts流。
9.一种客户端,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述基于HLS协议的拉流方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于HLS协议的拉流方法的步骤。
CN201810784692.1A 2018-07-17 2018-07-17 基于hls协议的拉流方法、系统及客户端和存储介质 Active CN108989426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810784692.1A CN108989426B (zh) 2018-07-17 2018-07-17 基于hls协议的拉流方法、系统及客户端和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810784692.1A CN108989426B (zh) 2018-07-17 2018-07-17 基于hls协议的拉流方法、系统及客户端和存储介质

Publications (2)

Publication Number Publication Date
CN108989426A CN108989426A (zh) 2018-12-11
CN108989426B true CN108989426B (zh) 2021-04-06

Family

ID=64549163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810784692.1A Active CN108989426B (zh) 2018-07-17 2018-07-17 基于hls协议的拉流方法、系统及客户端和存储介质

Country Status (1)

Country Link
CN (1) CN108989426B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111935443B (zh) * 2020-10-12 2021-01-22 融智通科技(北京)股份有限公司 一种视频会议实时直播分享到即时通讯工具的方法和装置
CN113382278B (zh) * 2021-06-11 2022-09-09 天翼云科技有限公司 视频推送方法、装置、电子设备和可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459693A (zh) * 2008-12-29 2009-06-17 中兴通讯股份有限公司 一种流媒体下载方法及系统
CN102118438A (zh) * 2011-01-17 2011-07-06 中兴通讯股份有限公司 IPTV系统中直播apple媒体流的方法和装置
CN103297452A (zh) * 2012-02-24 2013-09-11 北京对角巷科技发展有限公司 一种在互联网发布和直播流媒体的方法及系统
CN103957428A (zh) * 2014-05-16 2014-07-30 中国科学院上海高等研究院 基于众核处理器且带多码率转码功能的流媒体服务器
CN104079983A (zh) * 2014-06-26 2014-10-01 江苏省邮电规划设计院有限责任公司 一种hls节目录制和服务的系统和方法
WO2017035783A1 (zh) * 2015-09-01 2017-03-09 深圳好视网络科技有限公司 流媒体的传输、播放方法及传输、播放装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459693A (zh) * 2008-12-29 2009-06-17 中兴通讯股份有限公司 一种流媒体下载方法及系统
CN102118438A (zh) * 2011-01-17 2011-07-06 中兴通讯股份有限公司 IPTV系统中直播apple媒体流的方法和装置
CN103297452A (zh) * 2012-02-24 2013-09-11 北京对角巷科技发展有限公司 一种在互联网发布和直播流媒体的方法及系统
CN103957428A (zh) * 2014-05-16 2014-07-30 中国科学院上海高等研究院 基于众核处理器且带多码率转码功能的流媒体服务器
CN104079983A (zh) * 2014-06-26 2014-10-01 江苏省邮电规划设计院有限责任公司 一种hls节目录制和服务的系统和方法
WO2017035783A1 (zh) * 2015-09-01 2017-03-09 深圳好视网络科技有限公司 流媒体的传输、播放方法及传输、播放装置

Also Published As

Publication number Publication date
CN108989426A (zh) 2018-12-11

Similar Documents

Publication Publication Date Title
US11539989B2 (en) Media content redirection
US20230247263A1 (en) Methods, systems, and media for determining channel information
US9148756B2 (en) Output of content from the internet on a media rendering device
TWI470983B (zh) 用以更新超文件傳輸協定內容描述之方法及裝置
CN108124202B (zh) 一种使流媒体服务器支持hls协议的方法
CN110636339B (zh) 基于码率的调度方法、装置及电子设备
CN110933517B (zh) 码率切换方法、客户端和计算机可读存储介质
CN104506937A (zh) 音视频的分享处理方法和系统
CN104159132B (zh) 视频定制化服务的实现方法及装置
US20160294903A1 (en) Method and device for pushing resources to mobile communication terminal by smart television
US9584842B2 (en) Method and apparatus for playing multimedia resource
US8824676B2 (en) Streaming video to cellular phones
US20150268808A1 (en) Method, Device and System for Multi-Speed Playing
CN112565907A (zh) 视频获取方法、电子设备及存储介质
CN108989426B (zh) 基于hls协议的拉流方法、系统及客户端和存储介质
CN111182331B (zh) 媒体数据切片方法、系统及存储介质
US20080104267A1 (en) Systems and methods for reducing display latency between streaming digital media
CN106792125A (zh) 一种视频播放方法及其终端、系统
CN111010620B (zh) 多媒体资源轮播的方法、装置、电子设备和存储介质
KR101153584B1 (ko) 이어보기 서비스 제공 방법 및 장치
KR102611253B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
KR101270516B1 (ko) 실시간 오디오 스트림의 플레이 중 연관된 영상 컨텐트 구간을 획득/제공하는 방법 및 장치
JP2015165699A (ja) データ配信装置、データ配信方法、データ受信装置およびデータ受信方法
JP6175749B2 (ja) コンテンツ送信装置、プログラム及びコンテンツ送信方法
CN106507126A (zh) 轮播业务处理方法、客户端设备及服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant