一种视频缓存方法及播放器技术

技术编号:19704251 阅读:37 留言:0更新日期:2018-12-08 14:48
本发明专利技术公开了一种视频缓存方法及播放器,其中,所述方法包括:基于目标视频的视频标识,判断是否对所述目标视频进行缓存;若判定对所述目标视频进行缓存,获取指定缓存文件,并从所述指定缓存文件中读取所述目标视频的缓存索引信息;在播放所述目标视频时,若存在与当前的播放进度相匹配的目标索引信息,从所述指定缓存文件中获取所述目标索引信息指向的视频数据;若不存在,根据所述视频标识下载所述当前的播放进度对应的视频片段;将下载的所述视频片段写入所述指定缓存文件中,并基于下载的所述视频片段,更新所述目标视频的缓存索引信息。本申请提供的技术方案,能够在节省系统成本的同时,适用于HLS视频协议。

【技术实现步骤摘要】
一种视频缓存方法及播放器
本专利技术涉及互联网
,特别涉及一种视频缓存方法及播放器。
技术介绍
目前,FFmpeg(FastForwardMovingPictureExpertsGroup,快速动态图像专家组)由于其能够便捷地记录、转换数字音视频,并可以将数字音视频转化为音视频流,因此广泛应用于各类播放器中。FFmpeg本身不支持视频缓存功能,为了解决这一缺陷,通常会额外开设一个代理服务器来负责视频缓存的过程。具体地,基于FFmpeg的播放器可以将需要播放的视频的URL(UniformResourceLocator,统一资源定位符)拼接在本地链接中,然后拼接了该URL的本地链接可以被发送至代理服务器处。这样,代理服务器可以识别出该URL,并对该URL指向的视频数据进行缓存,缓存后的视频数据便可以被提供给播放器进行播放。然而,这样的方式需要额外开设一个代理服务器,增加了整个系统的成本。此外,通过代理服务器的方式,无法适用于HLS(HTTPLiveStreaming,HTTP直播流)协议,而HLS协议是比较常见的点播/直播视频协议,因此这种方式的应用范围不够广泛。
技术实现思路
本申请的目的在于提供一种视频缓存方法及播放器,能够在节省系统成本的同时,适用于HLS视频协议。为实现上述目的,本申请一方面提供一种视频缓存方法,所述方法包括:基于目标视频的视频标识,判断是否对所述目标视频进行缓存;若判定对所述目标视频进行缓存,获取指定缓存文件,并从所述指定缓存文件中读取所述目标视频的缓存索引信息;在播放所述目标视频时,根据当前的播放进度,判断读取的所述缓存索引信息中是否存在与所述当前的播放进度相匹配的目标索引信息;若存在,从所述指定缓存文件中获取所述目标索引信息指向的视频数据,并播放所述视频数据表征的视频片段;若不存在,根据所述视频标识下载所述当前的播放进度对应的视频片段;将下载的所述视频片段写入所述指定缓存文件中,并基于下载的所述视频片段,更新所述目标视频的缓存索引信息,并播放下载的所述视频片段。为实现上述目的,本申请另一方面还提供一种播放器,所述播放器包括播放系统,所述播放系统包括:缓存判断单元,用于基于目标视频的视频标识,判断是否对所述目标视频进行缓存;缓存索引信息读取单元,用于若判定对所述目标视频进行缓存,获取指定缓存文件,并从所述指定缓存文件中读取所述目标视频的缓存索引信息;索引信息匹配单元,用于在播放所述目标视频时,根据当前的播放进度,判断读取的所述缓存索引信息中是否存在与所述当前的播放进度相匹配的目标索引信息;缓存读写单元,用于若存在,从所述指定缓存文件中获取所述目标索引信息指向的视频数据,并播放所述视频数据表征的视频片段;若不存在,根据所述视频标识下载所述当前的播放进度对应的视频片段;将下载的所述视频片段写入所述指定缓存文件中,并基于下载的所述视频片段,更新所述目标视频的缓存索引信息,并播放下载的所述视频片段。由上可见,本申请提供的技术方案,可以对现有的FFmpeg协议进行扩展,从而实现视频缓存的过程。具体地,可以预先在目标视频的视频标识中添加用于判断是否进行视频缓存的指定字段。当播放器获取到目标视频的视频标识后,便可以根据其中是否包含该指定字段,从而判断是否需要对该目标视频进行缓存。如果需要进行缓存,则可以在本地获取指定缓存文件,该指定缓存文件中可以存储已缓存的视频数据以及指向各个已缓存的视频数据的缓存索引信息。在获取了所述指定缓存文件之后,便可以从该指定缓存文件中读取所述目标视频的缓存索引信息。然后可以根据目标视频当前的播放进度,判断读取的所述缓存索引信息中是否存在与所述当前的播放进度相匹配的目标索引信息。如果存在,则表示当前的播放进度对应的视频片段已经在本地缓存,那么可以直接从所述指定缓存文件中获取所述目标索引信息指向的视频数据,并播放所述视频数据表征的视频片段。如果不存在,则表示本地目前没有缓存对应的视频片段,此时,可以根据目标视频的视频标识,从存储目标视频的服务器处下载该当前的播放进度对应的视频片段。然后,可以将下载的视频片段写入上述的指定缓存文件中,同时还可以更新所述目标视频的缓存索引信息,从而完成对视频片段的缓存过程。由上可见,本申请提供的技术方案,无需额外增设代理服务器,从而节省了整体系统的成本。此外,由于是在FFmpeg协议的基础上进行扩展的,因此能够支持HLS协议,从而具备较广的应用范围。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施方式中的视频缓存方法步骤图;图2是本专利技术实施方式中视频缓存方法的流程示意图;图3是本专利技术实施方式中指定缓存文件的数据示意图;图4是本专利技术实施方式中播放系统的功能模块图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。实施例一本申请提供一种视频缓存方法,该方法可以应用于支持FFmpeg协议的播放器中。请参阅图1和图2,所述视频缓存方法可以包括以下步骤。S1:基于目标视频的视频标识,判断是否对所述目标视频进行缓存。在本实施方式中,可以对现有的FFmpeg协议进行扩展,从而实现视频缓存的功能。具体地,可以通过在原有的视频URL的基础上,添加指定字段,从而通过是否携带该指定字段来判断目标视频是否需要进行缓存。在实际应用中,指定字段的具体内容和格式可由技术人员自行设定,所述指定字段可以位于视频URL的指定位置处。例如,所述指定字段可以是wscache字段,该字段可以位于视频原始URL的前端,并且与视频原始URL之间通过“:”隔开。在本实施方式中,当用户想要观看目标视频时,播放器便可以获取到该目标视频的视频标识,所述视频标识中可以包含所述目标视频的URL。此外,如果当前开启了视频缓存功能,那么在生成目标视频的视频标识时,可以自动在该目标视频的URL的指定位置处添加指定字段。这样,播放器获取到所述目标视频的视频标识之后,可以判断所述目标视频的视频标识中是否包含位于指定位置的指定字段,若包含,则可以判定需要对所述目标视频进行缓存。若不包含,则表示可以按照现有的FFmpeg的处理方式来获取视频数据,无需对所述目标视频进行缓存。S3:若判定对所述目标视频进行缓存,获取指定缓存文件,并从所述指定缓存文件中读取所述目标视频的缓存索引信息。在本实施方式中,播放器中播放的视频的缓存数据可以存储于本地的指定缓存文件中。因此,若判定当前需要对所述目标视频进行缓存,则可以获取本地存储的所述指定缓存文件。在所述指定缓存文件中,可以存储各个视频已缓存的视频数据,所述视频数据可以按照视频片段进行划分。此外,所述指定缓存文件中还可以包括缓存索引信息,其中,已缓存的各个视频片段均可以具备各自的缓存索引信息,该缓存索引信息可以作为查询条件,在所述指定缓存文件中查询到对应的视频片段。在本实施方式中,所述缓存索引信息在所述指定缓存文件中可以通过链表的方式进行存储。请参阅图3,所述缓存索引信息中通常可以包括视频片段对应的视本文档来自技高网...

【技术保护点】
1.一种视频缓存方法,其特征在于,所述方法包括:基于目标视频的视频标识,判断是否对所述目标视频进行缓存;若判定对所述目标视频进行缓存,获取指定缓存文件,并从所述指定缓存文件中读取所述目标视频的缓存索引信息;在播放所述目标视频时,根据当前的播放进度,判断读取的所述缓存索引信息中是否存在与所述当前的播放进度相匹配的目标索引信息;若存在,从所述指定缓存文件中获取所述目标索引信息指向的视频数据,并播放所述视频数据表征的视频片段;若不存在,根据所述视频标识下载所述当前的播放进度对应的视频片段;将下载的所述视频片段写入所述指定缓存文件中,并基于下载的所述视频片段,更新所述目标视频的缓存索引信息,并播放下载的所述视频片段。

【技术特征摘要】
1.一种视频缓存方法,其特征在于,所述方法包括:基于目标视频的视频标识,判断是否对所述目标视频进行缓存;若判定对所述目标视频进行缓存,获取指定缓存文件,并从所述指定缓存文件中读取所述目标视频的缓存索引信息;在播放所述目标视频时,根据当前的播放进度,判断读取的所述缓存索引信息中是否存在与所述当前的播放进度相匹配的目标索引信息;若存在,从所述指定缓存文件中获取所述目标索引信息指向的视频数据,并播放所述视频数据表征的视频片段;若不存在,根据所述视频标识下载所述当前的播放进度对应的视频片段;将下载的所述视频片段写入所述指定缓存文件中,并基于下载的所述视频片段,更新所述目标视频的缓存索引信息,并播放下载的所述视频片段。2.根据权利要求1所述的方法,其特征在于,判断是否对所述目标视频进行缓存包括:判断所述目标视频的视频标识中是否包含位于指定位置的指定字段,若包含,判定对所述目标视频进行缓存;若不包含,判定不对所述目标视频进行缓存。3.根据权利要求2所述的方法,其特征在于,根据所述视频标识下载所述当前的播放进度对应的视频片段包括:从所述视频标识中去除位于所述指定位置处的所述指定字段,以得到所述目标视频的资源定位符;根据所述资源定位符下载所述当前的播放进度对应的视频片段。4.根据权利要求1所述的方法,其特征在于,所述目标视频的缓存索引信息中至少包括已缓存的视频片段的数据量以及所述已缓存的视频片段的起始播放进度;相应地,判断读取的所述缓存索引信息中是否存在与所述当前的播放进度相匹配的目标索引信息包括:将所述已缓存的视频片段的起始播放进度转换为所述已缓存的视频片段在所述目标视频中的存储位置,并基于转换得到的所述存储位置和所述已缓存的视频片段的数据量,确定所述已缓存的视频片段在所述目标视频中的位置区间;在所述目标视频中确定所述当前的播放进度对应的目标存储位置,若所述目标存储位置位于任一所述位置区间内,判定读取的所述缓存索引信息中存在与所述当前的播放进度相匹配的目标索引信息;若所述目标存储位置位于各个所述位置区间之外,判定读取的所述缓存索引信息中不存在与所述当前的播放进度相匹配的目标索引信息。5.根据权利要求1所述的方法,其特征在于,在从所述指定缓存文件中读取所述目标视频的缓存索引信息之后,所述方法还包括:根据所述缓存索引信息,创建所述目标视频对应的缓存索引树;相应地,在播放所述目标视频时,根据当前的播放进度,判断创建的所述缓存索引树中是否存在与所述当前的播放进度相匹配的目标索引信息。6.根据权利要求5所述的方法,其特征在于,所述缓存索引信息在所述指定缓存文件中以链表的形式进行存储;相应地,更新所述目标视频的缓存索引信息包括:在所述指定缓存文件的所述链表中更新所述目标视频的缓存索引信息,并在创建的所述缓存索引树中更新所述目标视频的缓存索引信息。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:在所述目标视频停止播放时,在所述指定缓存文件的所述链表中更新所述目标视频的缓存索引信息,以使得再次播放所述目标视频时,基于更新后的所述链表,生成所述目标视频的缓存索引树。8.根据权利...

【专利技术属性】
技术研发人员:卢健
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1