一种直播视频分片的下载方法、装置及系统与流程

文档序号:12310445阅读:1462来源:国知局
一种直播视频分片的下载方法、装置及系统与流程

本发明涉及视频直播技术领域,特别涉及一种直播视频分片的下载方法、装置及系统。



背景技术:

目前,在直播视频时,服务端按照一定的规则把多媒体数据切分为很多小的mp4分片,并生成相应的mpd(mediapresentationdescription,媒体呈现描述),客户端首先下载包含分片信息的mpd,然后再逐个下载mpd对应的分片。通过不断地更新mpd,可以实现多媒体数据在浏览器上无插件、准实时播放。

现有技术中,客户端按照固定的时间间隔,从服务端下载最新可用的分片。但是,服务端缓存分片的速度和客户端请求分片的速度并不一定是一致的:当服务端缓存分片的速度大于客户端请求分片的速度时,服务端缓存的最新可用的分片会覆盖缓存的旧的分片,而客户端还未从服务端下载该旧的分片,因此当客户端请求分片时,就会获得最新可用的分片,客户端在播放的分片很可能会出现跳秒的现象。由上可知,客户端按照固定的时间间隔,从服务端下载最新可用的分片,很大程度上会导致客户端中分片播放不连续,进而使得用户体验不佳。



技术实现要素:

本发明实施例公开了一种直播视频分片的下载方法、装置及系统,以保证客户端中直播视频的连续播放,进而提高用户体验。

为达到上述目的,本发明实施例公开了一种直播视频分片的下载方法,应用于客户端,所述方法包括:

根据接收到的直播视频的分片信息中每个分片的呈现时间,识别所述直播视频中呈现时间最晚的第一分片,并识别本地当前缓存的分片中呈现时间最早的第二分片,判断所述第一分片和所述第二分片的呈现时间差是否大于预设阈值;

若为是,根据本地当前缓存的分片及所述分片信息,确定待下载的第三分片,并向服务端发送下载所述第三分片的下载请求;

接收并缓存所述服务端发送的所述第三分片。

在本发明的一种实现方式中,所述根据接收到的分片信息中每个分片的呈现时间,识别呈现时间最晚的第一分片之前,还包括:

向所述服务端发送分片信息请求,其中,所述分片信息请求中包含所述直播视频的标识;

接收所述服务端发送的所述标识的直播视频的分片信息。

在本发明的一种实现方式中,所述向所述服务端发送分片信息请求,包括:

按照设定的时间间隔,向所述服务端发送所述分片信息请求;或

当接收到所述服务端发送的通知信息时,向所述服务端发送分片信息请求,其中,所述通知信息为:所述服务端在当前缓存所述直播视频的分片的数量达到预设数量时发送的。

在本发明的一种实现方式中,所述分片信息还包含:进行时间同步的终端的地址信息和所述服务端当前缓存的所述直播视频的每一分片的待下载时间;

所述向服务端发送下载所述第三分片的下载请求之前,还包括:

根据所述地址信息,向所述终端发送时间获取请求,并接收所述终端发送的标准时间;

根据所述标准时间和每一分片的待下载时间,确定每一分片的下载时间;

所述向服务端发送下载所述第三分片的下载请求,包括:

判断当前时刻是否为所述第三分片的下载时间,若为是,向所述服务端发送下载所述第三分片的下载请求。

在本发明的一种实现方式中,所述向服务端发送下载所述第三分片的下载请求,包括:

判断所述客户端的可用缓存容量是否大于预设容量阈值;

若为是,向所述服务端发送下载所述第三分片的下载请求。

为达到上述目的,本发明实施例还公开了一种直播视频分片的下载装置,应用于客户端,所述装置包括:

时间判断单元,用于根据接收到的直播视频的分片信息中每个分片的呈现时间,识别所述直播视频中呈现时间最晚的第一分片,并识别本地当前缓存的分片中呈现时间最早的第二分片,判断所述第一分片和所述第二分片的呈现时间差是否大于预设阈值;

分片确定单元,用于在所述时间判断单元判断结果为是的情况下,根据本地当前缓存的分片及所述分片信息,确定待下载的第三分片,并向服务端发送下载所述第三分片的下载请求;

分片接收单元,用于接收并缓存所述服务端发送的所述第三分片。

在本发明的一种实现方式中,所述装置还包括:

请求发送单元,用于向所述服务端发送分片信息请求,其中,所述分片信息请求中包含所述直播视频的标识;

信息接收单元,用于接收所述服务端发送的所述标识的直播视频的分片信息。

在本发明的一种实现方式中,所述请求发送单元,

具体用于按照设定的时间间隔,向所述服务端发送所述分片信息请求;或

具体用于当接收到所述服务端发送的通知信息时,向所述服务端发送分片信息请求,其中,所述通知信息为:所述服务端在当前缓存所述直播视频的分片的数量达到预设数量时发送的。

在本发明的一种实现方式中,所述分片信息还包含:进行时间同步的终端的地址信息和所述服务端当前缓存的所述直播视频的每一分片的待下载时间;

所述装置还包括:

时间接收单元,用于根据所述地址信息,向所述终端发送时间获取请求,并接收所述终端发送的标准时间;

时间确定单元,用于根据所述标准时间和每一分片的待下载时间,确定每一分片的下载时间;

所述分片确定单元,具体用于:根据本地当前缓存的分片及所述分片信息,确定待下载的第三分片,并判断当前时刻是否为所述第三分片的下载时间,若为是,向所述服务端发送下载所述第三分片的下载请求。

在本发明的一种实现方式中,所述分片确定单元,包括:

分片确定子单元,用于根据本地当前缓存的分片及所述分片信息,确定待下载的第三分片;

容量判断子单元,用于判断所述客户端的可用缓存容量是否大于预设容量阈值;

请求发送子单元,用于向所述服务端发送下载所述第三分片的下载请求。

为达到上述目的,本发明实施例还公开了一种直播视频分片的下载系统,包括客户端和服务端:

所述客户端,用于根据接收到的分片信息中每个分片的呈现时间,识别所述直播视频中呈现时间最晚的第一分片,并识别本地当前缓存的分片中呈现时间最早的第二分片,判断所述第一分片和第二分片的呈现时间差是否大于设定阈值;若为是,根据本地当前缓存的分片及所述分片信息,确定待下载的第三分片,并向服务端发送下载所述第三分片的下载请求;接收并缓存所述服务端发送的所述第三分片;

所述服务端,用于接收所述客户端发送的所述下载请求;根据所述下载请求,获得所述第三分片,并将所述第三分片发送给所述客户端。

在本发明的一种实现方式中,所述服务端,还用于判断本地当前缓存的所述直播视频的分片的数量是否达到预设数量;若为否,复制所述直播视频的分片中的呈现时间最晚的分片,使得缓存中所述直播视频的分片的数量达到预设数量,并生成所述通知信息;若为是,生成所述通知信息,其中,所述通知信息为:所述服务端在当前缓存所述直播视频的分片的数量达到预设数量时发送的。

由上可知,在本发明实施例中,客户端根据当前缓存的直播视频的分片信息中每个分片的呈现时间,识别直播视频中呈现时间最晚的第一分片,并识别本地当前缓存的分片中呈现时间最早的第二分片,当第一分片和第二分片的呈 现时间差大于预设阈值时,向服务端发送下载请求,下载待下载的第三分片。这样客户端就可以及时地下载分片,保证了客户端中直播视频的连续播放,进而提高了用户体验。

附图说明

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

图1为本发明实施例提供的一种直播视频分片的下载系统的结构示意图;

图2为本发明实施例提供的一种直播视频分片的下载方法的流程示意图;

图3为本发明实施例提供的一种直播视频分片的下载装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面通过具体实施例,对本发明进行详细说明。

参考图1,图1为本发明实施例提供的一种直播视频分片的下载系统的结构示意图,该系统包括,客户端101和服务端102。

具体地,客户端101,用于根据接收到的分片信息中每个分片的呈现时间,识别直播视频中呈现时间最晚的第一分片,并识别本地当前缓存的分片中呈现时间最早的第二分片,判断第一分片和第二分片的呈现时间差是否大于设定阈值;若为是,根据本地当前缓存的分片及分片信息,确定待下载的第三分片,并向服务端102发送下载第三分片的下载请求;接收并缓存服务端102发送的第三分片;

服务端102,用于接收客户端101发送的下载请求;根据下载请求,获得第三分片,并将第三分片发送给客户端101。

一种具体实现方式中,为了避免出现下载分片时命不中分片的问题,服务端可以缓存预设数量的分片后,再允许客户端下载分片,但是,这样就增加了启动时的直播延时。此时为了减少启动时的直播延时,服务端在刚刚开始接收到直播视频的分片时,判断本地当前缓存的直播视频的分片的数量是否达到预设数量;若为否,复制直播视频的分片中的呈现时间最晚的分片,使得缓存中该直播视频的分片的数量达到预设数量,并生成通知信息;若为是,生成通知信息。这里,通知信息,用于通知客户端,使其获知该服务端处于可下载就绪状态。这样客户端就不需要等到服务端中缓存预设数量的分片后再下载分片,减少了启动延时。

假设,预设数量为3,服务端当前缓存了1个直播视频的分片a,那么,复制2个分片a,这样服务端中就缓存了3个直播视频的分片,此时服务端向客户端发送通知信息,通知客户端可以下载直播视频,客户端在接收到通知信息后,发送分片信息请求。

具体地参考图2,图2为本发明实施例提供的一种直播视频分片的下载方法的流程示意图,应用于客户端,该方法包括:

s201:根据接收到的直播视频的分片信息中每个分片的呈现时间,识别直播视频中呈现时间最晚的第一分片,并识别本地当前缓存的分片中呈现时间最早的第二分片,判断第一分片和第二分片的呈现时间差是否大于预设阈值,若为是,执行s202;

这里,分片信息中可携带直播视频的每一分片的序号、每一分片的呈现时间、每一分片的持续时长、每一分片的格式等。

在本发明实施例中,为了避免因服务端缓存分片的速度大于客户端请求分片的速度,服务端将接收到的最新可用的分片覆盖缓存的旧的分片,导致客户端直播视频的播放不连续的问题,服务端中可以缓存一定预设数量的分片,当达到预设数量时,再接收到新的分片,才清除其当前缓存的分片中时间最早的分片。进一步的,为了避免因服务端清除了时间最早的分片,而导致客户端不能下载到连续分片的问题,客户端在直播延时大于预设阈值的情况下,发送下载请求去下载分片。这里直播延时为上述第一分片和上述第二分片的呈现时间差。

另外,在本发明实施例中,若直播延时不大于预设阈值,并且客户端中缓存了足够多的分片,则可以拒绝发送下载请求去下载分片,这样可以减少客户的负载和工作量。

值得一提的是,上述预设阈值为n*dur/2(n为偶数)或(n+1)*dur/2(n为奇数)最佳,其中,n为服务端最多缓存的分片的数量,也就是预设数量,dur为分片的播放时长。另外,为了不增加服务端的负载,不影响服务端的性能,n取3较佳。

假设,分片信息中每个分片的呈现时间分别为:{a,10:10}、{b,10:11}、{c,10:12},则可以识别出直播视频中呈现时间最晚的第一分片为c,客户端中当前缓存的分片分别为:{d,10:08}、{e,10:09},则可以识别出本地当前缓存的分片中呈现时间最早的第二分片为d,c和d的呈现时间差为4分钟,若预设阈值为1分钟,4分钟大于1分钟,则向服务端发送下载请求去下载分片。

一种具体实现方式中,若第一分片和第二分片的呈现时间差不大于预设阈值,则可以拒绝下载分片,避免客户端频繁的下载分片,影响客户端的工作性能。

另外,一种具体实现方式中,上述根据当前缓存的分片信息中每个分片的呈现时间,识别呈现时间最晚的第一分片之前,还包括:

s01、向所述服务端发送分片信息请求,其中,分片信息请求中包含直播视频的标识;

具体地,上述向服务端发送分片信息请求,可以包括:客户端可以按照设定的时间间隔,向服务端发送分片信息请求,如每隔2ms发送一次分片信息请求。这里,设定的时间间隔可以为一个分片的持续时长。

另外,上述向所述服务端发送分片信息请求,可以包括:当接收到服务端发送的通知信息时,向服务端发送分片信息请求。

s02、接收服务端发送的上述标识的直播视频的分片信息。

其中,该分片信息为服务端当前缓存的分片的分片信息。

具体地,实际应用中,在直播视频的情况下,客户端每播放一个分片,就会将该分片删除,因此客户端接收到直播视频的分片信息后,根据该分片信息 和客户端当前缓存的分片,识别出第一分片和第二分片,若第一分片和第二分片的呈现时间差大于预设阈值,则向服务端发送下载请求去下载分片。

s202:根据本地当前缓存的分片及分片信息,确定待下载的第三分片,并向服务端发送下载第三分片的下载请求;

具体地,确定分片信息中呈现时间最早并且客户端本地当前缓存中未包含的分片为待下载的第三分片,如s201中的假设,可以确定a为待下载的第三分片;当下载了a后,在未获取新的分片信息前,第一分片为c,第二分片变为了a,此时c和a的时间差为2分钟,2分钟仍然大于1分钟,则可以确定b为待下载的第三分片。

一种具体实现方式中,上述分片信息还可以包含:进行时间同步的终端的地址信息和服务端当前缓存的直播视频的每一分片的待下载时间;

具体地,进行时间同步的终端的地址信息可以通过以下方式存储在分片信息中:

<utctimingschemeiduri=“xxx”,value=“xxx”/>,其中,utctiming表示时间属性,schemeiduri可以采用以下几种值:

a)urn:mpeg:dash:utc:ntp:2012;

b)urn:mpeg:dash:utc:http-head:2012;

c)urn:mpeg:dash:utc:http-xsdate:2014;

d)urn:mpeg:dash:utc:http-iso:2014;

a)、b)、c)、d)分别代表不同的获取时间的方式,也就是客户端与服务端之间同步时间的方式,如当schemeiduri为urn:mpeg:dash:utc:ntp:2012,那么表示客户端从ntp(networktimeprotocol,网络时间协议)服务器获取标准时间;当schemeiduri为urn:mpeg:dash:utc:http-head:2012或urn:mpeg:dash:utc:http-xsdate:2014,那么表示客户端获取的标准时间为http(超文本传输协议,hypertexttransferprotocol)相应头部的时间;当schemeiduri为urn:mpeg:dash:utc:http-iso:2014,那么表示客户端从iso(internationalorganizationforstandardization,国际标准化组织)时间服务器获取标准时间;value的值为进行时间同步的终端的ip(internetprotocol)地址;这里进行时间同 步的终端可以为该服务端、ntp服务器或iso时间服务器。这样,指明客户端和服务端同步时间的方式,提高了客户端在下载分片时分片的命中率。

另外,为了进一步提高客户端在下载分片时下载分片的命中率,还可以考虑终端时间的准确性和信息传输的时延。

这种情况下,上述向服务端发送下载第三分片的下载请求之前,还可以包括:

根据地址信息,向终端发送时间获取请求,并接收终端发送的标准时间;

根据标准时间和每一分片的待下载时间,确定每一分片的下载时间;

如步骤s201中假设,分片信息中每个分片的呈现时间分别为:{a,10:10}、{b,10:11}、{c,10:12};若呈现时间为待下载时间,该客户端根据地址信息,向终端发送时间获取请求,获取的标准时间为10:09,则可以确定a的下载时间为1分钟后,b的下载时间为2分钟后,c的下载时间为3分钟后。

这种情况下,上述向服务端发送下载所述第三分片的下载请求,可以包括:

判断当前时刻是否为第三分片的下载时间,若为是,向服务端发送下载第三分片的下载请求。

根据上述假设,若确定b为第三分片,获取的标准时间为10:09,2分钟后,标准时间为10:11,则此时可以确定当前时刻为b的下载时间,向服务端发送下载b的下载请求。

一种具体实现方式中,上述向服务端发送下载所述第三分片的下载请求,可以包括:

判断客户端的可用缓存容量是否大于预设容量阈值;

若为是,向服务端发送下载第三分片的下载请求。

具体地,客户端在下载分片时,以缓冲区不上溢为前提,保证客户端正常的工作及播放视频。可选地,上述预设容量阈值为缓冲区总容量的20%。

s203:接收并缓存服务端发送的第三分片。

应用图2所示实施例,客户端根据当前缓存的直播视频的分片信息中每个分 片的呈现时间,识别直播视频中呈现时间最晚的第一分片,并识别本地当前缓存的分片中呈现时间最早的第二分片,当第一分片和第二分片的呈现时间差大于预设阈值时,向服务端发送下载请求,下载待下载的第三分片。这样客户端就可以及时地下载分片,保证了客户端中直播视频的连续播放,进而提高了用户体验。

参考图3,图3为本发明实施例提供的一种直播视频分片的下载装置的结构示意图,应用于客户端,该装置包括:

时间判断单元301,用于根据接收到的直播视频的分片信息中每个分片的呈现时间,识别直播视频中呈现时间最晚的第一分片,并识别本地当前缓存的分片中呈现时间最早的第二分片,判断第一分片和第二分片的呈现时间差是否大于预设阈值;

分片确定单元302,用于在时间判断单元判断结果为是的情况下,根据本地当前缓存的分片及分片信息,确定待下载的第三分片,并向服务端发送下载第三分片的下载请求;

分片接收单元303,用于接收并缓存服务端发送的第三分片。

一种具体实现方式中,上述直播视频分片的下载装置还可以包括:

请求发送单元,用于向服务端发送分片信息请求,其中,分片信息请求中包含直播视频的标识;

信息接收单元,用于接收服务端发送的标识的直播视频的分片信息(图3中未示出)。

一种具体实现方式中,请求发送单元,

具体用于按照设定的时间间隔,向服务端发送分片信息请求;或

具体用于当接收到服务端发送的通知信息时,向服务端发送分片信息请求,其中,通知信息为:服务端在当前缓存直播视频的分片的数量达到预设数量时发送的。

一种具体实现方式中,分片信息还可以包含:进行时间同步的终端的地址信息和服务端当前缓存的直播视频的每一分片的待下载时间;

这种情况下,上述直播视频分片的下载装置还可以包括:

时间接收单元,用于根据地址信息,向终端发送时间获取请求,并接收终端发送的标准时间;

时间确定单元,用于根据标准时间和每一分片的待下载时间,确定每一分片的下载时间(图3中未示出);

此时,分片确定单元302,具体用于:根据本地当前缓存的分片及分片信息,确定待下载的第三分片,并判断当前时刻是否为第三分片的下载时间,若为是,向服务端发送下载第三分片的下载请求。

一种具体实现方式中,分片确定单元302,可以包括:

分片确定子单元,用于根据本地当前缓存的分片及分片信息,确定待下载的第三分片;

容量判断子单元,用于判断客户端的可用缓存容量是否大于预设容量阈值;

请求发送子单元,用于向服务端发送下载第三分片的下载请求(图3中未示出)。

应用图3所示实施例,客户端根据当前缓存的直播视频的分片信息中每个分片的呈现时间,识别直播视频中呈现时间最晚的第一分片,并识别本地当前缓存的分片中呈现时间最早的第二分片,当第一分片和第二分片的呈现时间差大于预设阈值时,向服务端发送下载请求,下载待下载的第三分片。这样客户端就可以及时地下载分片,保证了客户端中直播视频的连续播放,进而提高了用户体验。

对于系统、装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有 更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:rom/ram、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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