一种使流媒体服务器支持hls协议的方法及装置的制造方法
【技术领域】
[0001]本发明涉及流媒体技术领域,尤其涉及一种使流媒体服务器支持HLS (HTTP LiveStreaming,超文本直播流;由苹果公司提出的基于HTTP实现实时流媒体传输的协议)协议的方法及装置。
【背景技术】
[0002]随着网络的发展,人们的日常生活与互联网的关系越来越紧密。由于互联网提供的视频资源的丰富性,越来越多的用户通过互联网点播电视剧、电影、综艺节目或其他音/视频信息。
[0003]通用的播放方法是用户选择需要获得的音/视频文件之后,从服务器中下载该音/视频文件(等到该文件全部下载完毕后,再在用户设备上对该音/视频文件进行播放。为了突破通用的播放方法需先将文件全部下载后才能播放的局限,开发人员提出了流媒体的概念,即将音/视频文件压缩后存储在服务器上,供用户边下载边播放。
[0004]现有技术中实现流媒体传输的协议主要有两种,一种是常规的流媒体直播协议(如 RTMP(Real Time Messaging Protocol,实时消息传输协议)、RTSP (Real TimeStreaming Protocol,实时流传输协议)、MMS协议(Microsoft Media Server Protocol (微软媒体服务器协议)等),另一种是HLS协议。使用常规的流媒体直播协议的方法中,流媒体服务器将音/视频文件作为一个整体进行存储。相对于常规的流媒体直播协议,支持HLS协议的流媒体服务器把整个音/视频文件分成一个个小的分段文件进行存储,由于分段文件的时长很短,因此,在音/视频文件的播放过程中,客户端可以选择从不同的音/视频源中以不同的速率下载同样的音/视频资源,进行码率的切换,以适应不同带宽条件下的播放。鉴于上述优势,HLS协议越来越广泛的应用于各种音/视频文件的播放。
[0005]为了使支持常规流媒体直播协议的流媒体服务器也能够支持HLS协议,现有技术的实现方法可以为:首先将支持常规的流媒体服务器里存储的媒体文件下载,并将下载的媒体文件切割成一个个的小的分段文件,然后将分段文件上传到流媒体服务器,接着将分段文件的文件信息写入一个m3u8(用文本方式对分割后的媒体文件进行描述)文件中,最后将生成的m3u8文件上传到该流媒体服务器。
[0006]在实现上述使流媒体服务器支持HLS协议的过程中,发明人发现现有技术中至少存在如下问题:运用上述现有技术,流媒体服务器虽然能够同时支持常规的流媒体直播协议和HLS协议,但是需要存储原始的大文件和切割后的分段文件两种代表同样信息的文件,增加了服务器存储空间的磁盘负载。
【发明内容】
[0007]本发明的实施例提供一种使流媒体服务器支持HLS协议的方法及装置,用以在减少占用服务器存储空间的情况下,使得现有流媒体服务器支持基于HLS协议的实时流媒体传输。
[0008]为达到上述目的,本发明的实施例采用如下技术方案:
[0009]第一方面,本发明实施例提供了一种使流媒体服务器支持HLS协议的方法,包括:获取流媒体服务器的服务器标识及流媒体服务器中存储的媒体文件的文件标识和特征参数;媒体文件的特征参数至少包括:媒体文件的文件大小、媒体文件的文件时长;获取片段分割时长和片段分割大小;根据媒体文件的特征参数、片段分割时长、片段分割大小确定媒体文件中每一虚拟片段的特征参数,并根据流媒体服务器的服务器标识、媒体文件的文件标识和每一虚拟片段的特征参数构造索引文件中的索引项;虚拟片段的特征参数用于在媒体文件中唯一确定出虚拟片段。
[0010]第二方面,本发明实施例提供了一种流媒体服务器,包括:获取单元,用于获取流媒体服务器的服务器标识及流媒体服务器中存储的媒体文件的文件标识和特征参数;媒体文件的特征参数至少包括:媒体文件的文件大小、媒体文件的文件时长;获取单元,还用于获取片段分割时长和片段分割大小;处理单元,用于根据媒体文件的特征参数、片段分割时长、片段分割大小确定媒体文件中每一虚拟片段的特征参数,并根据流媒体服务器的服务器标识、媒体文件的文件标识和每一虚拟片段的特征参数构造索引文件中的索引项;虚拟片段的特征参数用于在媒体文件中唯一确定出虚拟片段。
[0011]本发明实施例提供的一种使流媒体服务器支持HLS协议的方法及装置,获取流媒体服务器的服务器标识及流媒体服务器中存储的媒体文件的文件标识和特征参数,并获取片段分割时长和片段分割大小;根据媒体文件的特征参数、片段分割时长、片段分割大小确定媒体文件中每一虚拟片段的特征参数,并根据流媒体服务器的服务器标识、媒体文件的文件标识和每一虚拟片段的特征参数构造索引文件中的索引项。通过将媒体文件虚拟的划分为虚拟片段,然后在索引文件中构造每一虚拟片段的索引项,这样使得流媒体服务器中存储的整个媒体文件有了对应的索引文件,在点播时只需要根据索引文件就能够分别获取到每一虚拟片段的内容,使得流媒体服务器能够支持HLS协议,同时由于索引文件相对于现有技术中将媒体文件进行分割后的分段文件相比需要的存储空间大大减少,所以较少了占用的服务器的存储空间。
【附图说明】
[0012]为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013]图1为本发明实施例提供的一种使流媒体服务器支持HLS协议的方法的流程示意图;
[0014]图2为本发明实施例提供的另一种使流媒体服务器支持HLS协议的方法的流程示意图;
[0015]图3为本发明实施例提供的另一种使流媒体服务器支持HLS协议的方法的流程示意图;
[0016]图4为本发明实施例提供的另一种使流媒体服务器支持HLS协议的方法的流程示意图;
[0017]图5为本发明实施例提供的一种流媒体服务器的功能示意图;
[0018]图6为本发明实施例提供的另一种流媒体服务器的功能示意图。
【具体实施方式】
[0019]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020]需要说明的是,HLS协议是用于实时流媒体传输的协议,其特点是将媒体文件进行分段传输,传输的内容包括两部分,一部分是用于存储媒体数据的TSCTransportStream(传输流;全称MPEG2-TS)媒体文件,另一部分是用于索引TS媒体文件的M3U8索引文件。终端可以通过M3U8文件获取到TS媒体文件。
[0021]需要说明的是,本发明所有实施例中的流媒体服务器是指支持常规媒体直播协议(如RTMP、RTSP,丽S协议等),同时不支持HLS协议的流媒体服务器。
[0022]本发明实施例提供了一种使流媒体服务器支持HLS协议的方法,如图1所示,包括:
[0023]101、获取流媒体服务器的服务器标识及流媒体服务器中存储的媒体文件的文件标识和特征参数。
[0024]其中,媒体文件的特征参数至少包括:媒体文件的文件大小、媒体文件的文件时长。
[0025]需要说明的是,流媒体服务器的标识信息可以是流媒体服务器的主机号和端口号,还可以是能够唯一确定出流媒体服务器的其他标识,例如,域名、IP地址(InternetProtocol Address,网际协议地址)或节点标识等。本发明对此不做限制。
[0026]需要说明的是,流媒体服务器中可以存储有一个或多个媒体文件,且存储的媒体文件是整个文件。本发明的所有实施例都是从任意一个媒体文件的角度进行说明。
[0027]还需要说明的是,流媒体服务器的服务器标识用于在互联网中唯一标识一个服务器。媒体文件的文件标识用于在流媒体服务器中唯一标识一个媒体文件。媒体文件的文件大小是指该媒体文件所占的存储空间的大小。媒体文件的文件时长是指播放一遍该媒体文件所需的时间。
[0028]具体的,可以从流媒体服务器获取流媒体服务器的服务器标识及流媒体服务器中存储的媒体文件的文件标识和特征参数,也可以是将流媒体服务器的服务器标识、流媒体服务器中存储的媒体文件的文件标识和特征参数存储至存储设备中,从该存储设备获取流媒体服务器的服务器标识及流媒体服务器中存储的媒体文件的文件标识和特征参数。
[0029]102、获取片段分割时长和片段分割大小。
[0030]需要说明的是,将媒体文件虚拟划分为多个的虚拟片段,其中虚拟片段是对媒体文件逻辑上的划分,实际存储于流媒体服务器中的媒体文件仍然是