流媒体推送方法及装置与流程

文档序号:15625737发布日期:2018-10-09 22:56阅读:792来源:国知局

本发明涉及流媒体技术领域,特别涉及一种流媒体推送方法及装置。



背景技术:

hls(基于超文本传输协议的实时流媒体协议)是一个广泛使用的多媒体协议,工作原理是:服务器端按照一定的规则把多媒体数据切分为很多小的分片文件,并生成相应的列表文件,客户端首先下载包含码流分片信息的列表文件,然后再逐个下载列表文件中的分片文件。通过不断的更新列表文件,可以实现多媒体数据在浏览器上无插件、准实时播放。

当用户需要播放流媒体时,客户端通过url(uniformresourelocator,统一资源定位器)请求连接到服务器端,请求的url中携带设备信息,即该客户端向服务器端请求获取某一视频采集设备的媒体数据。按照hls协议规定,客户端必须等待服务器端生成三个分片(一个分片至少包括一个gop(groupofpictures,图像组))后,才能获取索引,进而获取数据,进行播放。若服务器端未生成三个分片,那么在服务器端生成三个分片的gop的时间内,客户端将处于黑屏状态。在黑屏状态较长时,用户也许会认为是连接失败,可能会进行重连,这样非常影响用户体验。现有的解决方法有:通过设置前端采集设备的gop时长,gop时长越小,生成三个分片的时间也就越短,客户端处于黑屏的时间也会相对较小;或者服务器端生成一个分片后,将分片复制两份,这样就得到了三个相同的分片而满足了分片数量条件,此时可直接将这三个分片发送给客户端,因而相当于减少了服务器端生成两个分片的等待时间。

本发明人发现上述技术中至少存在以下问题:

上述技术虽然可以缩短部分黑屏时间,但黑屏时间仍然有3个gop时长或1个分片的生成时间与复制2份的时间之和,这样较长的黑屏时间仍然高于人眼的视觉延时,无法被人忽略,这就会让视频观看者仍然看到一定时间的黑屏。



技术实现要素:

有鉴于此,本发明提供一种流媒体推送方法及装置,以更好地解决由于服务器端未及时生成目标媒体流的预定数量的分片造成的客户端黑屏的问题。

具体而言,包括以下的技术方案:

一方面,本发明提供了一种流媒体推送方法,包括:

接收客户端发送的请求目标媒体流的信息;

检测是否已存在被请求的所述目标媒体流的预定数量的分片;

若检测到尚未存在所述目标媒体流的预定数量的分片,则发送预设的前置媒体流的索引至所述客户端,以指示所述客户端播放所述前置媒体流;

获取所述目标媒体流的数据,根据获取的所述目标媒体流的数据生成所述目标媒体流的分片;

当生成所述目标媒体流的预定数量的分片后,发送所述目标媒体流的分片至所述客户端。

可选择地,所述前置媒体流的总时长不小于从开始获取所述目标媒体流的数据到生成所述目标媒体流的预定数量的分片所需要的时长。

可选择地,所述根据获取的所述目标媒体流的数据生成所述目标媒体流的分片,包括:

基于获取的所述目标媒体流的数据生成图像组,根据单个图像组的时长及预设的最小分片的时长选择一定数量的图像组形成分片。

可选择地,所述发送预设的前置媒体流的索引至所述客户端,指示所述客户端播放所述前置媒体流,包括:

发送预设的前置媒体流的索引至客户端,接收所述客户端的获取所述前置媒体流的索引对应的分片的请求,并发送所述前置媒体流的分片至所述客户端,以使所述客户端播放所述前置媒体流;或,

发送预设的前置媒体流的索引至客户端,指示所述客户端根据所述前置媒体流的索引播放所述客户端本地存储的前置媒体流。

可选择地,发送所述目标媒体流的分片至所述客户端,包括:

发送所述目标媒体流的索引至所述客户端,接收所述客户端的获取所述目标媒体流的索引对应的分片的请求,并发送所述目标媒体流的分片至所述客户端。

可选择地,在所述当生成所述目标媒体流的预定数量的分片后,所述方法还包括:

给所述目标媒体流的第一个分片对应的索引加上标签,所述标签用于告知所述客户端停止播放所述前置媒体流并对所述目标媒体流进行播放。

另一方面,本发明提供了一种流媒体推送装置,包括:

接收模块,用于接收客户端发送的请求目标媒体流的信息;

检测模块,用于检测是否已存在被请求的所述目标媒体流的预定数量的分片;

第一发送模块,用于若检测到尚未存在所述目标媒体流的预定数量的分片时,发送预设的前置媒体流的索引至所述客户端,以指示所述客户端播放所述前置媒体流;

处理模块,用于获取所述目标媒体流的数据,并根据获取的所述目标媒体流的数据生成所述目标媒体流的分片;

第二发送模块,用于当生成所述目标媒体流的预定数量的分片后,发送所述目标媒体流的分片至所述客户端。

可选择地,所述前置媒体流的总时长不小于从开始获取所述目标媒体流的数据到生成所述目标媒体流的预定数量的分片所需要的时长。

可选择地,所述处理模块具体用于:

获取所述目标媒体流的数据,基于获取的所述目标媒体流的数据生成图像组,根据单个图像组的时长及预设的最小分片的时长选择一定数量的图像组形成分片。

可选择地,所述第一发送模块具体用于:

若检测到尚未存在所述目标媒体流的预定数量的分片,则发送预设的前置媒体流的索引至客户端,接收所述客户端的获取所述前置媒体流的索引对应的分片的请求,并发送所述前置媒体流的分片至所述客户端,以使所述客户端播放所述预设的前置媒体流;或,

发送预设的前置媒体流的索引至客户端,指示所述客户端根据所述前置媒体流的索引播放所述客户端本地存储的前置媒体流。

可选择地,所述第二发送模块具体用于:

当生成所述目标媒体流的预定数量的分片后,发送所述目标媒体流的索引至所述客户端,接收所述客户端的获取所述目标媒体流的索引对应的分片的请求,并发送所述目标媒体流的分片至所述客户端。

可选择地,所述第二发送模块还用于:

当生成所述目标媒体流的预定数量的分片后,给所述目标媒体流的第一个分片对应的索引加上标签,所述标签用于告知所述客户端停止播放所述前置媒体流并对所述目标媒体流进行播放。

本发明实施例提供的技术方案的有益效果包括:

本发明提供了一种流媒体推送方法及装置,该方法包括:在检测到尚未存在客户端请求的目标媒体流的预定数量的分片时,向客户端发送预设的前置媒体流的索引,使得客户端可播放前置媒体流;获取目标媒体流的分片,当生成目标媒体流的预定数量的分片后,向客户端发送目标媒体流的分片,进而客户端停止播放前置媒体流并解码目标媒体流的分片进行播放。这样,即使服务器端还没有及时准备好目标媒体流的预定数量的分片,客户端也能播放预设的前置媒体流。因此,本实施例提供的方法可解决由于服务器端未及时生成客户端请求的媒体流的媒体流的预定数量的分片而造成的客户端黑屏的问题,从而确保用户不会误解认为不能连接到流媒体服务器而进行重连、关闭等操作,由此改善了用户体验。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

附图1为本发明一种例示性实施环境的示意图;

附图2为本发明一实施例中一种流媒体推送方法的流程图;

附图3为本发明一实施例中一种流媒体推送装置的框图。

具体实施方式

为使本发明的技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是实施本发明的一种例示性实施环境的示意图。参见图1,该实施环境中包括:前端采集设备101、服务器端102和客户端103。

客户端103可以为手机等便携式终端,也可以为个人计算机、工作站。前端采集设备101可为多个,例如为摄像设备。前端采集设备101与服务器端102以及服务器端102与客户端103通过无线或有线方式进行通信。前端采集设备101进行摄像生成媒体流数据(简称媒体流),并将生成的媒体流数据发送到服务器端102,服务器端102将媒体流数据进行处理生成媒体流的分片。客户端103需要播放某一前端采集设备101采集到的媒体流时,向服务器端102发送请求,服务器端102生成该媒体流的分片,并将该媒体流的分片发送给客户端103,进而客户端103可播放该媒体流。

实施例一

本实施例提供了一种流媒体推送方法,可以应用于服务器端。该方法的流程如图2所示,下面将对各步骤进行具体介绍。

步骤s101:接收客户端发送的请求目标媒体流的信息。

例如,在该步骤中,客户端可以通过url向服务器端发送某一目标媒体流的请求信息。例如,请求信息的url格式可为http://ip:port/xxx.m3u8这样类似的格式,url中携带目标媒体流的信息,服务器端接收客户端发送的对该目标媒体流的请求后,可定位到对应的目标媒体流。

在本实施例中,目标媒体流即与客户端的请求对应的媒体流,可以为采集设备采集到的视频、音频或者视频和音频结合的数据信息。采集设备可以为录像机,相机和/或手机等等,在此不做限定。

步骤s102:检测是否已存在被请求的目标媒体流的预定数量的分片。

在本实施例中,分片指的是可独立解码的一部分目标媒体流的数据。例如,服务器端将目标媒体流的数据先进行封装形成多个帧,几个连续的帧形成一个gop,一个gop一般包括i帧及其后面依靠该i帧解码的其他帧,一个分片可以包括至少一个gop。目标媒体流的分片可以独立播放,因此客户端接收到服务器端发送的分片后,即可开始播放。

在该步骤中,服务器端检测是否已经存在被请求的目标媒体流的预定数量的分片。具体地,根据hls协议,预定数量可为三,但本发明不限于此,本领域技术人员可以理解,在现有其他类似协议或将来进一步发展出来的协议中,预定数量可以不是三而是其他合适的数量。

若服务器端检测到已经存在被请求的目标媒体流的预定数量的分片,则转到步骤s103;若服务器端检测到尚未生成被请求的目标媒体流的预定数量的分片,则转到步骤s104和步骤s105。步骤s104和步骤s105可同时执行,也可先执行步骤s104,再执行s105。

步骤s103:若检测到已存在被请求的目标媒体流的预定数量的分片,则发送目标媒体流的分片至客户端。

在该步骤中,如果服务器端检测到已存在被请求的目标媒体流的预定数量的分片,则服务器端向客户端发送目标媒体流的分片,客户端可直接播放目标媒体流的分片,不会出现黑屏的问题。具体的,服务器端可先发送目标媒体流的索引至客户端,客户端接收目标媒体流的索引后,向服务器端发送目标媒体流的索引对应的分片的请求。服务器端接收客户端的获取目标媒体流的索引对应的分片的请求,发送目标媒体流的分片至客户端。客户端接收目标媒体流的分片,进行解码播放。

步骤s104:若检测到尚未存在目标媒体流的预定数量的分片,则发送预设的前置媒体流的索引至客户端,以指示客户端播放前置媒体流。

在该步骤中,若服务器端检测到尚未存在目标媒体流的预定数量的分片,先发送预设的前置媒体流的索引至客户端,客户端接收前置媒体流的索引后向服务器端发送获取前置媒体流的索引对应的前置媒体流的分片的请求。服务器端接收客户端的获取前置媒体流的索引对应的分片的请求,并发送前置媒体流的分片至客户端。客户端接收前置媒体流的分片,进行解码播放。在其他实施方式中,也可能直接发送前置媒体流的分片至客户端。或者,如果客户端本地存储有前置媒体流,服务器端发送前置媒体流的索引至客户端后,指示客户端播放客户端本地存储的前置媒体流。具体地,客户端本地存储的前置媒体流可以是安装时预存在客户端的前置媒体流,或者是打开客户端时下载的前置媒体流。

在此步骤之前,服务器端已预先存储一段前置媒体流,并对该前置媒体流进行转封装、生成分片和索引处理。前置媒体流的索引格式例如可如下:

#extm3u//扩展的m3u文件

#ext-x-version:3//播放列表版本的适应性

#ext-x-allow-cache:no//是否允许缓冲

#ext-x-media-sequence:0//前置媒体流的分片的序号

#ext-x-targetduration:2//前置媒体流的分片持续时间的最大值

#extinf:2.055,//extinf记录标记,该标记描述了后边所指定的前置媒体流的分片

preset0.ts//前置媒体流的分片的名字

#extinf:2.000,//extinf记录标记,该标记描述了后边所指定的前置媒体流的分片

preset1.ts//前置媒体流的分片的名字

#extinf:2.000,//extinf记录标记,该标记描述了后边所指定的前置媒体流的分片

preset2.ts//前置媒体流的分片的名字

在本发明的一个可选实施例中,每个前置媒体流的分片名称前边设置有extinf标签,格式如下:#extinf:<duration>,<title>;duration描述了分片持续时间,单位为秒,当ext-x-version标签大于或等于3时,duration可以为小数,否则只能是整数。

需要说明的是,上述前置媒体流的索引以前置媒体流包含的分片的数量为三个进行举例说明,但本发明不限于此,前置媒体流包含的分片的数量可为其他数量。

可选地,前置媒体流可以是广告、视频片段或者歌曲mv等。例如前置媒体流可以是与待播放的目标媒体流相关的视频。假设待播放视频是电影a,前置媒体流可以是电影a的片段或者摘要广告等。

在本实施例中,可设置前置媒体流的总时长大于服务器端从开始获取目标媒体流的数据到生成预定数量的分片所需要的时长。例如,可设置前置媒体流的总时长等于服务器端获取目标媒体流的数据及根据目标媒体流的数据生成预定数量的分片及对应的索引所需要的时长,加上服务器端向客户端发送目标媒体流的索引所需的时长、客户端接收目标媒体流的索引并根据该索引请求目标媒体流的分片所需的时长、服务器端接收客户端发送的目标媒体流的分片请求并发送目标媒体流的分片所需的时长,及客户端接收目标媒体流的分片并进行解码所需的时长。这样,既可避免客户端出现黑屏,又可避免前置媒体流的总时长过长造成的不能及时播放目标媒体流的问题。

步骤s105:获取目标媒体流的数据,根据获取的目标媒体流的数据生成目标媒体流的分片。

在该步骤中,服务器端在获取目标媒体流的数据之后,将获取的目标媒体流的数据先进行封装形成多个帧,几个连续的帧形成一个gop,并根据目标媒体流的单个gop的时长及预设的最小分片的时长选择一定数量的gop形成分片,一个分片包括一个gop或几个连续的gop。选择分片的时长为最小的分片的时长,可减少前置媒体流的播放时间。

步骤s106:当生成目标媒体流的预定数量的分片后,发送目标媒体流的分片至客户端。

在该步骤中,当服务器端检测到生成目标媒体流的预定数量的分片后,可先发送目标媒体流的索引至客户端,客户端接收到目标媒体流的索引后,向服务器端发送目标媒体流的索引对应的分片的请求。服务器端接收客户端的获取目标媒体流的索引对应的分片的请求,并发送目标媒体流的分片至客户端。客户端接收目标媒体流的分片,进行解码播放。在其他实施方式中,也可能直接发送目标媒体流的分片至客户端。

在服务器端生成目标媒体流的预定数量的分片后,可给生成的目标媒体流的第一个分片对应的索引加上标签,用于告知客户端停止播放前置媒体流并播放目标媒体流,然后服务器按照顺序将对应的分片发送给客户端。

例如,标签可为ext-x-discontinuity,则目标媒体流的预定数量的分片对应的索引的格式如下:

#extm3u//扩展的m3u文件

#ext-x-version:3//播放列表版本的适应性

#ext-x-allow-cache:no//是否允许缓冲

#ext-x-media-sequence:0//目标媒体流的分片的序号

#ext-x-targetduration:2//目标媒体流的分片持续时间的最大值

ext-x-discontinuity//标签表示该标签后边的目标媒体流的分片和之前的目标媒体流的分片之间的编码间断

#extinf:2.000,//extinf记录标记,该标记描述了后边所指定的目标媒体流的分片

segset0.ts//目标媒体流的分片的名字

#extinf:2.000,//extinf记录标记,该标记描述了后边所指定的目标媒体流的分片

segset1.ts//目标媒体流的分片的名字

#extinf:2.000,//extinf记录标记,该标记描述了后边所指定的目标媒体流的分片

segset2.ts//媒体文件的名字

上述目标媒体流的索引以目标媒体流的分片的预定数量为三个进行举例说明,但本发明不限于此,预定数量也可为其他数量。

客户端接收到有标签的索引之后,则向服务器端请求有标签的索引对应的媒体流的预定数量的分片,在接收到目标媒体流的分片后停止播放前置媒体流并播放目标媒体流。此后,服务器端持续获取目标媒体流数据生成分片,将分片发送给客户端,从而客户端可不间断的播放目标媒体流。

在本实施例中,一个索引对应预定数量的分片。客户端发送目标媒体流的索引对应的分片的请求后,服务器端接收请求,然后按照该索引对应的预定数量的分片的生产顺序,将分片发送给客户端。客户端接收目标媒体流的分片,并按照接收的顺序进行解码播放。

在此之后,服务器端重复步骤s101至步骤s106,继续获取目标媒体流的新的数据,同时生成新的索引和新的索引对应的分片,并发送给客户端。从而客户端可连续播放目标媒体流。

本实施例提供的流媒体推送方法,可用于基于hls的流媒体系统中,但本发明不限于此,也可用于基于类似的其他协议的流媒体系统中。

使用本实施例提供的流媒体推送方法,服务器端尚未存在客户端请求的目标媒体流的预定数量的分片时,向客户端发送预设的前置媒体流的索引,进而客户端可播放前置媒体流;服务器端获取目标媒体流的数据并生成分片,当生成目标媒体流的预定数量的分片后,向客户端发送目标媒体流的分片,进而客户端接收目标媒体流的分片并进行解码播放。这样,即使服务器端还没有及时准备好预定数量的分片,客户端也能播放预设的前置媒体流,因此,本实施例提供的方法可解决由于服务器端未及时生成客户端请求的目标媒体流的预定数量的分片而造成的客户端黑屏的问题,从而确保用户不会误解认为不能连接到目标流媒体服务而进行重连、关闭等操作,由此改善了用户体验。

实施例二

对应于实施例一,本实施例提供了一种流媒体推送装置,例如是流媒体服务器,如图3所示,包括接收模块201、检测模块202、第一发送模块203、处理模块204、第二发送模块205和第三发送模块206。下面对各模块进行具体介绍。

接收模201,用于接收客户端发送的请求目标媒体流的信息。

客户端例如通过url向服务器端请求某一目标媒体流,请求的url格式例如可为http://ip:port/xxx.m3u8,url中携带目标媒体流的信息,服务器端接收客户端发送的对该目标媒体流的请求后,可定位到对应的目标媒体流。

在本实施例中,目标媒体流即与客户端的请求对应的媒体流,可以为采集设备采集到的视频、音频或者视频和音频结合的数据信息。采集设备可以为录像机,相机和/或手机等等,在此不做限定。

检测模块202,用于检测是否已存在被请求的目标媒体流的预定数量的分片。

具体地,根据hls协议,预定数量可为三个,但本发明不限于此,本领域技术人员可以理解,在其他类似协议或将来进一步发展出来的协议中,预定数量可以不是三个而是其他合适的数量。

若检测模块202检测到已存在被请求的目标媒体流的预定数量的分片,则调用第三发送模块206,若检测模块202检测到尚未存在被请求的目标媒体流的预定数量的分片,则调用第二发送模块204和处理模块205,可同时调用第二发送模块204和处理模块205,也可先调用第二发送模块204,再调用处理模块205。

第三发送模块206,用于当检测模块202检测到已存在被请求的目标媒体流的预定数量的分片时,发送目标媒体流的分片至客户端。

若检测模块202检测到已经存在被请求的目标媒体流的预定数量的分片,则客户端不会出现黑屏的问题,可直接播放目标媒体流,此时第三发送模块206可先发送目标媒体流的索引至客户端,客户端接收目标媒体流的索引后,向流媒体服务推送装置发送与目标媒体流的索引对应的目标媒体流的分片的请求。第三发送模块206接收客户端的获取目标媒体流的索引对应的分片的请求,并发送目标媒体流的分片至客户端。客户端接收第三发送模块206发送的目标媒体流的分片,进行解码播放。

第一发送模块203,用于当检测模块202检测到尚未存在目标媒体流的预定数量的分片时,发送预设的前置媒体流的索引至客户端,以指示客户端播放前置媒体流。

第一发送模块203发送预设的前置媒体流的索引至客户端,客户端接收前置媒体流的索引后,发送前置媒体流的索引对应的前置媒体流的分片的请求。第一发送模块203接收客户端的获取前置媒体流的索引对应的分片的请求,并发送前置媒体流的分片至客户端。客户端接收第一发送模块203发送的前置媒体流的分片,进行解码播放。在其他实施方式中,也可能直接发送前置媒体流的分片至客户端。或者,如果客户端本地存储有前置媒体流,第一发送模块203发送前置媒体流的索引至客户端后,指示客户端播放客户端本地存储的前置媒体流。具体地,客户端本地存储的前置媒体流可以是安装时预存在客户端的前置媒体流,或者是打开客户端时下载的前置媒体流。

在此步骤之前,流媒体推送装置可预先存储一段前置媒体流,并对该前置媒体流进行转封装、生成分片和索引处理。例如,前置媒体流的索引格式如下:

#extm3u//扩展的m3u文件

#ext-x-version:3//播放列表版本的适应性

#ext-x-allow-cache:no//是否允许缓冲

#ext-x-media-sequence:0//前置媒体流的分片的序号

#ext-x-targetduration:2//前置媒体流的分片持续时间的最大值

#extinf:2.055,//extinf记录标记,该标记描述了后边所指定的前置媒体流的分片

preset0.ts//前置媒体流的分片的名字

#extinf:2.000,//extinf记录标记,该标记描述了后边所指定的前置媒体流的分片

preset1.ts//前置媒体流的分片的名字

#extinf:2.000,//extinf记录标记,该标记描述了后边所指定的前置媒体流的分片

preset2.ts//前置媒体流的分片的名字

需要说明的是,上述前置媒体流的索引以前置媒体流包含的分片的数量为三个进行举例说明,但本发明不限于此,前置媒体流包含的分片的数量可为其他数量。

可选地,前置媒体流可以是广告、视频片段或者歌曲mv等。

在本实施例中,可设置前置媒体流的总时长大于从开始获取目标媒体流的数据到生成预定数量的分片所需要的时长。具体地,可设置前置媒体流的总时长等于处理模块204获取目标媒体流的数据及根据目标媒体流的数据生成预定数量的分片及对应的索引所需要的时长,加上第二发送模块205向客户端发送目标媒体流的索引所需的时长、客户端接收目标媒体流的索引并根据该索引请求目标媒体流的分片所需的时长、第二发送模块205接收客户端发送的目标媒体流的分片请求并发送媒体流的分片所需的时长及客户端接收目标媒体流的分片并进行解码所需的时长。这样,既可避免客户端出现黑屏,又可避免前置媒体流的总时长过长造成的不能及时播放目标媒体流的问题。

处理模块204,用于获取目标媒体流的数据,根据获取的目标媒体流的数据生成目标媒体流的分片。

处理模块204获取目标媒体流的数据之后,根据目标媒体流的单个gop的时长及预设的最小的分片的时长选择一定数量的gop形成分片。具体地,在获取目标媒体流的数据之后,处理模块204将获取的目标媒体流的数据先进行封装形成多个帧,几个连续的帧生成一个gop,并根据目标媒体流的单个gop的时长及预设的最小分片的时长选择一定数量的gop形成分片,一个分片包括一个gop或几个连续的gop。选择分片的时长为最小的分片的时长,可减少前置媒体流的播放时间。

第二发送模块205,用于当生成目标媒体流的预定数量的分片后,发送目标媒体流的分片至客户端。

在该步骤中,当检测到生成目标媒体流的预定数量的分片后,第二发送模块205可先发送目标媒体流的索引至客户端,客户端接收到目标媒体流的索引后,发送目标媒体流的索引对应的分片的请求。第二发送模块205接收客户端的获取目标媒体流的索引对应的分片的请求,并发送目标媒体流的分片至客户端。客户端接收目标媒体流的分片,进行解码播放。

在处理模块204生成目标媒体流的预定数量的分片后,可给生成的目标媒体流的第一个分片对应的索引加上标签,该标签用于告知客户端停止播放前置媒体流并播放目标媒体流。

例如,标签可为ext-x-discontinuity,则目标媒体流的预定数量的分片对应的索引的格式如下:

#extm3u//扩展的m3u文件

#ext-x-version:3//播放列表版本的适应性

#ext-x-allow-cache:no//是否允许缓冲

#ext-x-media-sequence:0//目标媒体流的分片的序号

#ext-x-targetduration:2//目标媒体流的分片持续时间的最大值

ext-x-discontinuity//该标签表示标签后边的目标媒体流的分片和之前的目标媒体流的分片之间的编码间断

#extinf:2.000,//extinf记录标记,该标记描述了后边所指定的目标媒体流的分片

segset0.ts//目标媒体流的分片的名字

#extinf:2.000,//extinf记录标记,该标记描述了后边所指定的目标媒体流的分片

segset1.ts//目标媒体流的分片的名字

#extinf:2.000,//extinf记录标记,该标记描述了后边所指定的目标媒体流的分片

segset2.ts//媒体文件的名字

上述目标媒体流的索引以目标媒体流的分片的预定数量为三个进行举例说明,但本发明不限于此,预定数量也可为其他数量。

示例性地,客户端接收到有标签的索引之后,向流媒体推送装置请求索引对应的目标媒体流的分片,接收到目标媒体流的分片后停止播放前置媒体流并播放目标媒体流。

在本实施例中,一个索引对应预定数量的分片。客户端发送目标媒体流的索引对应的分片的请求时,第二发送模块205接收该请求,然后按照该索引对应的预定数量的分片的生产顺序,将分片发送给客户端。客户端接收目标媒体流的分片,并按照顺序进行解码播放。

在此之后,依次调用各个模块,继续获取目标媒体流的新的数据,同时生成新的索引和新的索引对应的分片,并发送给客户端。从而客户端可连续播放目标媒体流。

由于实施例二和实施例一相互对应,所以能带来相同的有益效果,在此不再赘述。

在本申请所提供的实施例中,应该理解到,所提供的方法和装置,仅仅是示意性的,例如,所述步骤和模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。上述方法和装置可以通过计算机装置设置应的软件和/或硬件来实现。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅是为了便于本领域的技术人员理解本发明的技术方案,并不用以限制本发明。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1