视频文件的缓存方法和系统的制作方法

文档序号:10539509阅读:269来源:国知局
视频文件的缓存方法和系统的制作方法
【专利摘要】本发明实施例提供一种视频文件的缓存方法和系统,通过获取视频文件信息,至少包括元数据,生成视频文件相应的辅助转码数据,所述辅助转码数据至少包括将所述视频文件转码成TS流文件时所需的索引文件,并将获取的视频文件信息和相应的辅助转码数据进行缓存。通过将获取的视频文件信息和相应的辅助转码数据进行缓存,一方面,当用户请求访问视频文件时,会先去内存中查找,如果有直接在内存中进行读取,比以往从磁盘读写文件相比,解析速度更快;另一方面,由于预先将辅助转码数据缓存到内存中,使用时不用再转换,虽然消耗掉了一部分存储空间,但却加快了转码时间,虽然以空间换时间,但是有效提升了用户使用体验。
【专利说明】
视频文件的缓存方法和系统
技术领域
[0001]本发明实施例涉及网络技术领域,尤其涉及一种视频文件的缓存方法和系统。
【背景技术】
[0002]随着互联网技术的发展,通过互联网获得的丰富的综合性的网络视频资源已变得十分普遍。对于提供视频资源的视频网站来讲,不仅要存储大量的视频资源,而且每天要同时接受数量巨大的视频访问请求。因此,如何高效的存储视频资源以便为用户更好的提供视频服务是十分重要的。目前很多视频网站的在线视频文件采用MP4文件格式。由于Flash插件可以播放MP4视频文件,浏览器只要支持Flash就可以播放高清的MP4视频,所以MP4视频成为了目前主流的视频格式。同视频码率情况下,MP4文件清晰度比较高,压缩质量很好。标准的MP4文件一般包括索引区以及数据内容区两部分。
[0003]鉴于对MP4视频文件数据需求一般比较大,视频提供网站一般会对其缓存。目前一般作法是对整个视频文件同等对待,所以缓存效果不十分理想,当用户请求视频文件时,都基于文件系统进行操作,首先打开文件头,把文件的一部分读到磁盘由服务器进行解析并将解析结果,如视频文件的MD5,视频段的开始位置和结束位置返回用户。由于解析操作在磁盘上完成,解析速度较慢,对用户使用体验不友好。此外,由于用户客户端很多,根据用户使用请求,一般会对MP4文件进行相应的转码,即将MP4文件转换成fl V,ts等格式视频文件,转码时非常消耗CHJ资源,一般CPU消耗都在99%以上,造成转码耗时较长,用户等待时间较长。

【发明内容】

[0004]针对上述现有技术存在的例如缓存效果不理想、使用体验不友好、资源消耗等问题,本发明实施例提供一种视频文件的缓存方法和系统。
[0005]本发明实施例一方面提供一种视频文件的缓存方法,包括:
[0006]获取待缓存视频文件的视频文件信息,所述视频文件信息至少包括元数据;
[0007]生成与所述待缓存视频文件相应的辅助转码数据,所述辅助转码数据至少包括将所述待缓存视频文件转码成TS流文件所需的索引文件;
[0008]根据所述视频文件信息和所述辅助转码数据生成视频缓存文件;
[0009]将所述视频缓存文件写入内存。
[0010]本发明实施例另一方面提供一种视频文件的缓存系统,包括:
[0011 ]视频文件信息获取单元,用于获取待缓存视频文件的视频文件信息,所述视频文件信息至少包括元数据;
[0012]辅助转码数据生成单元,用于生成与所述待缓存视频文件相应的辅助转码数据,所述辅助转码数据至少包括将所述待缓存视频文件转码成TS流文件所需的索引文件;
[0013]视频缓存文件生成单元,用于根据所述视频文件信息和所述辅助转码数据生成视频缓存文件;
[0014]写入单元,用于将所述视频缓存文件写入内存;
[0015]本发明实施例提供的一种视频文件的缓存方法及系统,通过将视频文件信息、视频辅助转码用的数据存储在内存中,一方面,当用户请求访问视频文件时,会先去内存中查找,如果有直接在内存中进行读取,比以往从磁盘读写文件相比,解析速度更快;另一方面,由于预先将辅助转码数据缓存到内存中,使用时不用再转换,虽然消耗掉了一部分存储空间,但却加快了转码时间,虽然以空间换时间,但是有效提升了用户使用体验。
【附图说明】
[0016]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本发明视频文件的缓存方法实施例流程图;
[0018]图2为本发明视频文件的缓存系统实施例结构示意图;
【具体实施方式】
[0019]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020]如图1所示,在本发明的一个实施例中,提供的视频文件的缓存方法包括:
[0021 ] SlOl,获取待缓存视频文件的视频文件信息,所述视频文件信息至少包括元数据;
[0022]传统对视频文件一般都会分段处理,这样会使得文件数量很多,很难管理,由于某种原因容易造成部分数据丢失,所以本实施例中所指的视频文件是指整个完整的视频文件,不进行分段处理。
[0023]S102,生成与待缓存视频文件相应的辅助转码数据,所述辅助转码数据至少包括将所述视频文件转码成TS流文件时所需的索引文件;
[0024]在本实施例中,视频服务器只存储mp4文件格式的视频文件,这样大大降低了存储,有利于其加载和传输,尤其对P2P十分有利。由于视频服务器只存储MP4格式的视频文件,鉴于客户端的多样性,使用时根据用户的请求要进行实时转码操作,即将mp4文件转换标准的flv、ts等视频文件格式,其它请求会根据用户特征做一些改变通过适配器适配,这就需要一些辅助转码数据支持。如通常使用时会事先将mp4文件进行一些预处理,生成辅助转码数据。这里,辅助转码数据包括将mp4文件转换为ts流文件、flv等格式视频文件时生成的辅助文件,如mp4文件转码成ts流文件时所需的索引文件m3u8,其大小一般几十K,不超过1MB,这样使用时不用再转换,虽然消耗掉了一部分存储空间,但却加快了转码时间,虽然以空间换时间,但是有效提升了用户使用体验。
[0025]S103,根据视频文件信息和辅助转码数据生成视频缓存文件;
[0026]S104,将视频缓存文件写入内存。
[0027]进一步地,步骤SlOl中所述视频文件信息包括元数据和部分帧数据。
[0028]通过将视频文件的部分帧数据到进行缓存,用户请求访问视频文件时,就可以有效的进行预览。
[0029]其中,所述视频文件的部分帧数据为视频文件首位置的至少一个关键帧,一般为视频文件播放前三分钟的视频内容即所所谓的片头。正常情况下,获取的视频文件的部分帧数据都不会太大。这样,用户就可以方便的观看所请求视频文件的片头。
[0030]—般情况下,会对获取待缓存视频文件的视频文件信息和待缓存视频文件相应的辅助转码数据进行优先级设置,其中视频文件信息中的元数据以及所述辅助转码数据优先级最高,其次为视频文件的部分帧数据。
[0031]进一步地,步骤SlOl中在获取待缓存视频文件的视频文件信息前,根据内存的当前容量和待缓存视频文件的部分帧数据的大小情况,确定所获取的所述视频文件信息包含元数据或包含元数据和部分帧数据。
[0032]在使用时,内存的容量为一系统配置的固定大小,如HietadataMem=1G,依据内存的容量大小及使用情况,优先写入优先级最高的视频文件元数据以及相应的辅助转码数据,如果内存足够的话,再写入视频文件的部分帧数据。此外,视频文件元数据写入的位置在视频文件相应的辅助转码数据之前。通过判断机制,可以有效的利用现有内存,使内存使用达到一个合适的利用率。
[0033]更进一步地,步骤S104中在将所述视频缓存文件写入内存后,统计所述内存中的各个视频缓存文件的访问记录,根据所述访问记录确定是否将所述各个视频缓存文件中的其中一个或多个视频缓存文件删除。
[0034]通常可使用本领域技术人员已知的缓存淘汰策略或算法,如LRU算法进行缓存内容的更新。这样只能通过定期缓存更新才能使有限的内存资源进行合理的分配和使用,有效保证缓存资源的合理利用。
[0035]需要注意的是,所述缓存的视频文件一般会根据视频文件使用的热点情况进行排序,按顺序写入内存。放在内存中的数据一般具有两个特点,一是经常被访问,二是需要经常做一些应用处理。通过视频文件元数据和部分帧数据以及辅助转码用的数据存储在内存中,当用户请求访问视频文件时,会先去内存中查找,如果有直接在内存中进行读取,比以往从磁盘读写文件相比,解析速度更快。
[0036]据统计,经过事先将转码需要的文件适当缓存后,CPU消耗不超过30%,大部分情况下都在10%上下,相比不进行缓存时实时转码CPU消耗一般在90%以上。
[0037]上述与图1所示的实施例有关的方法,参照图2,可以根据本发明的装置予以实施。本发明实施例提供了一种视频文件的缓存系统,所述系统包括:
[0038]视频文件信息获取单元,用于获取待缓存视频文件的视频文件信息,所述视频文件信息至少包括元数据;
[0039]辅助转码数据生成单元,用于生成与所述待缓存视频文件相应的辅助转码数据,所述辅助转码数据至少包括将所述待缓存视频文件转码成TS流文件所需的索引文件;
[0040]视频缓存文件生成单元,用于根据所述视频文件信息和所述辅助转码数据生成视频缓存文件;
[0041 ]写入单元,用于将所述视频缓存文件写入内存;
[0042]其中,在实施例中,所述视频文件信息包括元数据和部分帧数据。
[0043]进一步地,所述部分帧数据为所述待缓存视频文件首位置的至少一个关键帧。
[0044]在本发明的实施例中,所述系统还包括视频文件信息判断单元,用于在所述视频文件信息获取单元获取待缓存视频文件的视频文件信息前,根据内存的当前容量和所述待缓存视频文件的部分帧数据的预设阈值的大小,确定所获取的所述视频文件信息包含元数据或包含元数据和部分帧数据。
[0045]在本发明的实施例中,所述系统还包括缓存文件更新单元,用于在所述写入单元将所述视频缓存文件写入内存后,统计所述内存中的各个视频缓存文件的访问记录,根据所述访问记录确定是否将所述各个视频缓存文件中的其中一个或多个视频缓存文件删除。
[0046]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0047]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0048]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种视频文件的缓存方法,包括以下步骤: 获取待缓存视频文件的视频文件信息,所述视频文件信息至少包括元数据; 生成与所述待缓存视频文件相应的辅助转码数据,所述辅助转码数据至少包括将所述待缓存视频文件转码成TS流文件所需的索引文件; 根据所述视频文件信息和所述辅助转码数据生成视频缓存文件; 将所述视频缓存文件写入内存。2.根据权利要求1所述的方法,其特征在于,所述视频文件信息包括元数据和部分帧数据。3.根据权利要求2所述的方法,其特征在于,所述部分帧数据为所述待缓存视频文件首位置的至少一个关键帧。4.根据权利要求2或3所述的方法,其特征在于,在获取待缓存视频文件的视频文件信息前,根据内存的当前容量和所述待缓存视频文件的部分帧数据的预设阈值的大小,确定所获取的所述视频文件信息包含元数据或包含元数据和部分帧数据。5.根据权利要求1所述的方法,其特征在于,在将所述视频缓存文件写入内存后,统计所述内存中的各个视频缓存文件的访问记录,根据所述访问记录确定是否将所述各个视频缓存文件中的其中一个或多个视频缓存文件删除。6.一种视频文件的缓存系统,其特征在于,包括: 视频文件信息获取单元,用于获取待缓存视频文件的视频文件信息,所述视频文件信息至少包括元数据; 辅助转码数据生成单元,用于生成与所述待缓存视频文件相应的辅助转码数据,所述辅助转码数据至少包括将所述待缓存视频文件转码成TS流文件所需的索引文件; 视频缓存文件生成单元,用于根据所述视频文件信息和所述辅助转码数据生成视频缓存文件; 写入单元,用于将所述视频缓存文件写入内存。7.根据权利要求6所述的系统,其特征在于,所述视频文件信息包括元数据和部分帧数据。8.根据权利要求7所述的系统,其特征在于,所述部分帧数据为所述待缓存视频文件首位置的至少一个关键帧。9.根据权利要求7或8所述的系统,其特征在于,所述系统还包括视频文件信息判断单元,用于在所述视频文件信息获取单元获取待缓存视频文件的视频文件信息前,根据内存的当前容量和所述待缓存视频文件的部分帧数据的预设阈值的大小,确定所获取的所述视频文件信息包含元数据或包含元数据和部分帧数据。10.根据权利要求6所述的系统,其特征在于,所述系统还包括缓存文件更新单元,用于在所述写入单元将所述视频缓存文件写入内存后,统计所述内存中的各个视频缓存文件的访问记录,根据所述访问记录确定是否将所述各个视频缓存文件中的其中一个或多个视频缓存文件删除。
【文档编号】H04N21/4402GK105898530SQ201510888100
【公开日】2016年8月24日
【申请日】2015年12月7日
【发明人】李洪福
【申请人】乐视云计算有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1