视频缓存文件的封装方法和系统技术方案

技术编号:15077129 阅读:27 留言:0更新日期:2017-04-07 10:21
本发明专利技术实施例提供一种视频缓存文件封装方法和系统,所述方法包括根据原视频文件的元数据和与所述原视频文件相应的辅助转码数据形成索引区,根据原视频文件的部分帧数据形成数据区,其中,所述数据区位于所述索引区之后,以及通过封装文件访问函数将所述索引区和所述数据区封装为视频缓存文件。此外,提供了封装的视频缓存文件系统,通过提供的视频缓存文件封装方法和系统,为系统用户尤其是编程人员提供完全相同于常用文件系统操作的方式,使其不必关心文件具体的实现逻辑,减少文件调用的出错概率,降低开发难度并提高代码的可维护性,极大地方便了编程人员的使用,有效提高了开发效率。

Method and system for encapsulating video cache file

The embodiment of the invention provides a method and system for video cache file package, the method includes transcoding metadata according to the auxiliary file and the original video and the original video file corresponding to the formation of the index, according to the data of the original part of the frame of video files in the form data area, after the data area is located in the the index, as well as by encapsulating the index file access function area and the data area for the video package cache file. In addition, the cache file system provides video package, through the video cache file package method and system are provided for users of the system, especially the programmer provides exactly the same in common file system operation mode, which do not have to care about the file to achieve specific logic, reducing the probability of error of small file, reduce development difficulty and improve the maintainability of the code, which can be used by programmers, effectively improve the development efficiency.

【技术实现步骤摘要】

本专利技术实施例涉及网络
,尤其涉及一种视频缓存文件的封装方法和系统
技术介绍
随着互联网技术的发展,通过互联网获得的丰富的综合性的网络视频资源已变得十分普遍。对于提供视频资源的视频网站来讲,不仅要存储大量的视频资源,而且每天要同时接受数量巨大的视频访问请求。因此,如何高效的存储视频资源以便为用户更好的提供视频服务是十分重要的。目前很多视频网站的在线视频文件采用MP4文件格式。由于Flash插件可以播放MP4视频文件,浏览器只要支持Flash就可以播放高清的MP4视频,所以MP4视频成为了目前主流的视频格式。同视频码率情况下,MP4文件清晰度比较高,压缩质量很好。标准的MP4文件一般包括索引区以及数据内容区两部分。鉴于对MP4视频文件数据需求一般比较大,视频提供网站一般会对其缓存,目前一般作法是对整个视频文件同等对待,所以缓存效果不十分理想,当用户请求视频文件时,都基于文件系统进行操作,首先打开文件头,把文件的一部分读到磁盘由服务器进行解析并将解析结果,如视频文件的MD5,视频段的开始位置和结束位置返回用户。由于解析操作在磁盘上完成,解析速度较慢,对用户使用体验不友好。另一方面,由于用户客户端很多,根据用户使用请求,一般会对MP4文件进行相应的转码,即将MP4文件转换成flv,ts等格式视频文件,转码时非常消耗CPU资源,一般CPU消耗都在99%以上,造成转码耗时较长,用户等待时间较长。另外,对于缓存的使用,一般直接用户为系统用户主要是系统编程人员。系统用户已经习惯于传统的文件访问方式,当系统用户需要访问缓存中的数据时,首先要了解其缓存内部的业务逻辑,相对于存储在磁盘上的文件的读写要相对麻烦,且处理时往往容易出现字节对齐错误之类的问题,使用起来不太方便友好。
技术实现思路
针对上述现有技术中存在的系统编程人员对缓存中文件使得不太方便友好的问题,本专利技术实施例提供一种视频缓存文件的封装方法和系统。本专利技术实施例一方面提供一种视频缓存文件的封装方法,所述方法包括:根据原视频文件的元数据和与所述原视频文件相应的辅助转码数据形成索引区,其中,所述辅助转码数据位于所述元数据之后;根据原视频文件的部分帧数据形成数据区,其中,所述数据区位于所述索引区之后;通过封装文件访问函数将所述索引区和所述数据区封装为视频缓存文件。本专利技术实施例另一方面提供一种封装的视频缓存文件系统,所述系统包括:索引区,所述索引区由原视频文件的元数据和与所述原视频文件相应的辅助转码数据形成,其中,所述辅助转码数据位于所述元数据之后;和数据区,所述数据区由原视频文件的部分帧数据形成,其中,所述数据区位于所述索引区之后。本专利技术实施例提供的一种视频缓存文件的封装方法和系统,为系统用户尤其是编程人员提供完全相同于常用文件系统操作的方式,使其不必关心文件具体实现逻辑,减少文件调用的出错概率,降低开发难度并提高代码的可维护性,极大地方便了编程人员的使用,有效提高了开发效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术视频缓存文件封装方法实施例流程图;图2为本专利技术封装的视频缓存文件系统实施例结构示意图;具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,在本专利技术的一实施例中,提供的视频缓存文件的封装方法包括:S101,形成索引区,根据原视频文件的元数据和与所述原视频文件相应的辅助转码数据形成索引区,其中,所述辅助转码数据位于所述元数据之后;传统对视频文件一般都会分段处理,这样会使得文件数量很多,很难管理,由于某种原因容易造成部分数据丢失,所以本实施例中所指的视频文件是指整个完整的视频文件,不进行分段处理。一般视频文件都包括索引区和数据区,其中索引区主要视频文件的元数据,数据区为视频文件的实际内容。这里,我们通过修改视频文件的索引区,即建立我们的索引区,通过在原视频文件的元数据后追加原视频文件进行转码时所需的辅助文件,与原视频文件元数据一起作为视频文件的索引区。将辅助文件追加在原视频文件的元数据之后,是为了更符合用户的使用习惯,优先读取原视频的相关头信息;S102,形成数据区,根据原视频文件的部分帧数据形成数据区,其中,所述数据区位于所述索引区之后;这里建立的数据区包括原视频文件的部分帧数据,所述部分帧数据为视频文件首位置的至少一个关键帧,一般为视频文件播放前三分钟的视频内容。遵循原有视频文件的基本结构,将数据区位于索引区之后,也是为了更符合用户的使用习惯,即用户先读取视频文件的索引区。S103,通过封装文件访问函数将所述索引区和所述数据区封装为视频缓存文件。这样,经过封装,形成一个轻量级的视频缓存文件,其更适合于进行缓存。当系统用户尤其是编程人员需要访问视频文件时,不必关心其内容是存储在磁盘上还是内存中,忽略了其内部的存储逻辑,直接与调用通用文件系统一样访问,简化了操作,减少了操作的复杂度,极大地提高了使用的便利性。其中,所述部分帧数据都不会太大,一般部分帧数据的大小至多为原视频文件大小的1/2,优选地,部分帧数据的大小为原视频文件大小的1/5或1/10。这样封装的视频文件系统不会太大,更适于进行缓存。进一步地,原视频文件为mp4格式视频文件,辅助转码数据包括将mp4文件转换为ts流文件、flv等格式视频文件时生成的辅助文件,如mp4文件转码成ts流文件时所需的m3u8索引文件。在实施例中,视频服务器只存储封装的mp4文件格式的视频文件,这样大大降低了存储,有利于其加载和传输,尤其对P2P十分有利。由于,视频服务器只存储封装的MP4格式的视频文件,鉴于客户端的多样性,所以在使用时要根据用户的请求进行实时转码操作,即将封装的mp4文件转换标准的flv、ts以及标准的mp4视频文件格式,其它请求会根据用户特征做一些改变通过适配器适配,这就需要一些预处理信息支持,而这些信息作为辅助转码使用被封装到封装的mp4视频文件中。如通常使用时会事先将mp4文件转换成m3u8文件,其大小一般几十K,不超过1MB,将其存放在视频文件索引区,这样使用时不用再转换,虽然消耗掉了一部分存储空间,但却加快了转码时间,虽然以空间换时间,但是有效提升了用户使用体验。据统计,经过事先将转码需要的文件适当缓存后,CPU消耗不超过30%,大部分情况下都在10%上下,相比不进行缓存时实时转码CPU消耗一般在90%以上。更进一步地,步骤S103中所述封装的文件访问函数,基于LINUX操作系统。即基于linux操作系统文件访问常用函数,如打开文件(open)、关闭文件(close)、写文件(write)、读文件(read)、文件偏移(lseek)等,对函数的标准接口声明不变,本文档来自技高网
...

【技术保护点】
一种视频缓存文件封装方法,所述方法包括:根据原视频文件的元数据和与所述原视频文件相应的辅助转码数据形成索引区,其中,所述辅助转码数据位于所述元数据之后;根据原视频文件的部分帧数据形成数据区,其中,所述数据区位于所述索引区之后;通过封装文件访问函数将所述索引区和所述数据区封装为视频缓存文件。

【技术特征摘要】
1.一种视频缓存文件封装方法,所述方法包括:根据原视频文件的元数据和与所述原视频文件相应的辅助转码数据形成索引区,其中,所述辅助转码数据位于所述元数据之后;根据原视频文件的部分帧数据形成数据区,其中,所述数据区位于所述索引区之后;通过封装文件访问函数将所述索引区和所述数据区封装为视频缓存文件。2.根据权利要求1所述的方法,其特征在于,所述部分帧数据的大小至多为原视频文件大小的1/2。3.根据权利要求1所述的方法,其特征在于,所述原视频文件为mp4格式视频文件,所述辅助转码数据至少包括将所述原视频文件转码成TS流文件时所需的m3u8文件。4.根据权利要求1所述的系统,其特征在于,所述封装文件访问函数为基于linux操作系...

【专利技术属性】
技术研发人员:李洪福
申请(专利权)人:乐视云计算有限公司
类型:发明
国别省市:北京;11

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

1