一种多媒体文件的缓存方法及系统的制作方法

文档序号:6370379阅读:288来源:国知局
专利名称:一种多媒体文件的缓存方法及系统的制作方法
技术领域
本发明涉及互联网多媒体传输和存储技术领域,尤其涉及一种多媒体文件的缓存方法及系统。
背景技术
传统的互联网多媒体播放技术对于影视文件的内容需求是顺序递增的,但随着互联网多媒体技术的迅速发展及网络带宽环境的改善,用户对多媒体使用要求不断提高,具体表现在对于影视点播高清标准要求越来越高,影视码率越来越大,影视文件也越来越大,高清点播缓存技术要求也更高。由于点播需要满足灵活拖动使得请求影视文件的内容偏移位置变得随机,而不是顺序递增,点播时播放器也有可能先获得影视文件末尾的索引信息然后再请求音视频数据,也使得影视文件的请求位置随机而不是顺序递增。如果使用常规原文件缓存,必然会造成立即需要分配大存贮空间,外部存贮立即分配大存空间有两大问题,一是分配大空间需要比较长的时间运算和分配而影响点播的实时性,二是分配的大空间很多未立即使用,如果随机点播只播放部分内容就退出,分配到的空间被浪费。

发明内容
为解决上述技术问题,本发明提出了一种多媒体文件的缓存方法及系统,采用本方法和系统,能够满足高清点播系统对于互联网影视缓存技术的应用要求,保证无论如何随机请求影视大文件数据时,都确保缓存线性增长,避免外部存贮即时分配大空间消耗大多时间而影响网络传输点播的实时性,并且能够节省存储空间。本发明的主要思想在于采用附加文件头的形式组织管理随机的影视文件,对影视数据进行线性缓存,缓存文件由附加文件头和影视数据实体组成,当点播影视文件时,根据点播的内容查找附加文件头中的信息,再直接搜索到相应的影视文件块,这样能够快速定位点播内容并且节省缓存空间。为达此目的,本发明采用以下技术方案作为本发明的一个方面,提供了一种多媒体文件的缓存方法,包括以下步骤A、获取多媒体文件以及所述多媒体文件容量信息;B、建立缓存文件头,所述缓存文件头中包括缓存块大小和多媒体文件块索引表;C、根据所述多媒体文件容量信息和所述缓存块大小将所述影视文件平均切分为不少于一个的多媒体文件块,并给每个影视文件块一个编号;D、将所述编号和对应的多媒体文件块存储信息存入多媒体文件块索引表;E、将所述各影视文件块按所述编号排列在所述缓存文件头的后面,生成所述影视文件的缓存文件。作为上述技术方案的优选,还包括步骤F、点播所述多媒体文件时,先读取所述多媒体文件块索引表,根据多媒体文件块索引表中的信息读取对应的影视文件块信息。 作为上述技术方案的优选,所述步骤B中缓存文件头还包括缓存文件标志、字节序标志、版本号、文件头大小、多媒体文件原始数据大小和已缓存数据大小。作为上述技术方案的优选,所述步骤F还包括,当所述多媒体文件块索引表中没有点播的影视文件块信息时,转至步骤A。作为本发明的另一个方面,还提供了一种多媒体文件的缓存系统,包括多媒体文件信息获取装置、缓存文件头生成装置、多媒体文件切分装置和缓存文件生成装置,其中所述多媒体文件信息获取装置,用于获取多媒体文件以及所述多媒体文件容量信息;所述缓存文件头生成装置,用于建立缓存文件头,所述缓存文件头中包括缓存块大小和多媒体文件块索引表,以及将多媒体文件块编号和对应的多媒体文件块存储信息存入多媒体文件块索引表;所述多媒体文件切分装置,用于根据所述多媒体文件容量信息和所述缓存块大小将所述影视文件平均切分为不少于一个的多媒体文件块,并给每个影视文件块一个编号;所述缓存文件生成装置,用于将所述各影视文件块按所述编号排列在所述缓存文件头的后面,生成所述影视文件的缓存文件。作为上述技术方案的优选,还包括缓存文件读取装置,用于点播所述多媒体文件时,先读取所述多媒体文件块索引表,根据多媒体文件块索引表中的信息读取影视文件块信息。作为上述技术方案的优选,所述缓存文件头生成装置中,缓存文件头还包括缓存文件标志、字节序标志、版本号、文件头大小、多媒体文件原始数据大小和已缓存数据大小。作为上述技术方案的优选,所述缓存文件读取装置还用于,当所述多媒体文件块索引表中没有点播的影视文件块信息时,建立新的缓存文件块信息。本发明的技术效果在于通过针对大容量影音文件建立缓存文件,通过读取缓存文件的信息实现对于对应的大容量影音文件的随机存储和读取,能够满足高清点播系统对于互联网影视缓存技术的应用要求,保证无论如何随机请求影视大文件数据时,都确保缓存线性增长,避免外部存贮即时分配大空间消耗大多时间而影响网络传输点播的实时性,并且能够节省存储空间。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中图I是本发明的缓存文件结构示意图。图2是本发明的缓存文件的文件头结构示意图。图3是本发明的缓存文件的文件头中的数据块索引表索引记录结构示意图。
图4是本发明一种多媒体文件的缓存方法具体实施方式
的流程图。
具体实施例方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图I所示,为本发明一种多媒体文件的缓存方法的具体实施方式
,下面的具体实施方式
的描述中,存在如下定义原文件原影视大文件文件头(HEAD_SIZE):缓存文件的文件头;块大小(BL0CK_SIZE):将影视文件平均切分的尺寸,单位(字节byte);逻辑块号(L0GIC_BL0CK_INDEX):原影视文件按固定“块大小”平均切分后,顺序递增给每块给定一个编号(0,I…n);物理块号(PHY_BL0CK ,INDEX):原影视文件的逻辑块实际保存到缓冲文件中的编号,缓冲文件的物理块号是指文件头后面的数据块编号(0,I…n),顺序递增;块内偏移(BL0CK_P0S):指数据块内数据相对于于块头偏移(逻辑块与物理块的块内偏移是相同的);物理使用块数(PHY_BL0CK_USED):指缓存文件已经分配使用了的块数,缓存文件按文件头之后的位置起顺序分配使用块;逻辑偏移(L0GIC_FILE_P0S):指原影视文件的文件偏移;物理偏移(PHY_FILE_P0S):指缓存文件的文件偏移;逻辑文件大小(LOGIG_FILE_SIZE):指已经写入到缓存文件的原影视文件的最大偏移位置+1的值。本具体实施方式
包括以下步骤步骤101、获取多媒体文件以及所述多媒体文件容量信息;对于待点播的影视原文件,首先获取其容量信息及存储位置。步骤102、建立缓存文件头,所述缓存文件头中包括缓存块大小和多媒体文件块索引表;在缓存中建立缓存文件头,如图2所示,主要包括缓存文件标志、字节序标志、版本号、文件头大小、多媒体文件原始数据大小和已缓存数据大小。具体的,在建立缓存文件头的过程中,可以按照如下的数据格式建立缓存文件头中的各个数据段缓存文件标志40字节长度字符串,用于识别是否是缓存文件还是普通文件;字节序标志4字节整数,写入的数据使用当前机器字节序写入缓存文件,字节序标志的写入值为Oxccccffff,当目标机器读出的数值为Oxccccffff,表示目标机器以写入机器字节序相同,后续读出来的数值不用转换;当读出的数值为Oxffffcccc,表示目标机器的字节序与写入机器的字节序相反,后续读出的数值字节序要调反过来。版本号4字节数值标识版本号,在本具体实施方式
中设为I。文件头大小4字节表示文件头的大小,表示从缓存文件的绝对偏移这个值后就是影视数据块,在本具体实施方式
中文件头大小总设为1M。
影视文件原始数据大小8字节表示已写入的原影视文件实际大小值,不表示缓存文件的物理大小。已缓存数据大小8字节表示写入数据总量,在本具体实施方式
中仅作参考。已缓存数据块数4字节整数,表示已经缓存的块数,即表示后面的“影视数据块索引表”的有效个数。缓存块大小4字节整数,表示影视数据分块尺寸,单位为字节,影视大文件按此值平均切分文件,并顺序定块号0至n。影视数据块索引表记录紧跟在文件头后面的影视数据块的信息,一个块记录使用8字节,前4字节表示原影视数据块的编号。后4字节表示本块已写入数据大小。每个块记录和后面块数据块的顺序号相对应,即过引表里的第n个记录表示缓冲文件的第n个数据块。步骤103、根据所述多媒体文件容量信息和所述缓存块大小将所述影视文件平均 切分为不少于一个的多媒体文件块,并给每个影视文件块一个编号;如图I所示,根据步骤102中存储的缓存块大小和影视文件容量信息,将该影视文件平均切分为(影视文件信息除以缓存块大小)个影视数据块,并按照0至n的顺序给每个影视数据块编号。步骤104、将所述编号和对应的多媒体文件块存储信息存入多媒体文件块索引表;将步骤103中得到的影视文件块编号信息存储进缓存文件头的相应数据段中。步骤105、将所述各影视文件块按所述编号排列在所述缓存文件头的后面,生成所述影视文件的缓存文件。在具体实施中,可以按照以下操作步骤进行步骤1051、计算 L0GIC_BL0CK_INDEX= L0GIC_FILE_P0S/BL0CK_SIZE;BL0CK_P0S = L0GIC_FILE_P0S%BL0CK_SIZE;进入步骤 1052。步骤1052、根据L0GIC_BL0CK_INDEX在索引表中查找出物理块号PHY_BL0CK_INDEX,如果查找到则进入步骤1054,如果没有找到则进入步骤1053 ;步骤1053、分配一个新物理块PHY_BLOCK_INDEX=USED_BLOCKS ;同时已分配使用块数增加 I :USED_BL0CKS = USED_BL0CKS+1 ;步骤1054计算可写入本块(PHY_BLOCK_INDEX)的数据大小(WS),取N和BL0CK_SIZE-BL0CK_P0S 的最小值;WS = min(N, BL0CK_SIZE_BL0CK_P0S);步骤1055、计算写入缓存文件的物理为置PHY_FILE_P0S=HEAD_SIZE + PHY_BLOCK_INDEX*BLOCK_SIZE + BL0CK_P0S;步骤1056、将缓存文件的写指针偏移至PHY_FILE_P0S位置,将WS个byte数据写入。步骤1057、调整原文件偏移 L0GIC_FILE_P0S = L0GIC_FILE_P0S+WS ;N=N-ffS ;调速LOGIG_FILE_SIZE :如果 L0GIG_FILE_SIZE〈L0GIC_FILE_P0S,贝丨J L0GIG_FILE_SIZE=L0GIC_FILE_P0S ;如果N>0,则转入步骤1051,否则写入结束。
将各个影视文件块按编号顺序读入缓存,与缓存文件头共同组成缓存文件。一个缓存文件只有一个文件头,并且放在缓存文件的最前面,影视数据块可以为I至n多块,影视数据块连续排列在文件头的后面。点播该影视文件时,先读取所述多媒体文件块索引表,具体结构如图3所示,根据多媒体文件块索引表中的信息读取对应的影视文件块信息。具体的读取方法可以按照以下步骤进行将原文件偏移位置为L0GIC_FILE_P0S处的N个字节数据从缓存文件中读出来。步骤1061、判断如果 L0GIC_FILE_P 0S>=L0GIG_FILE_SIZE 或者 N〈=0,则结束读取。步骤1062、计算 L0GIC_BL0CK_INDEX= L0GIC_FILE_P0S/BL0CK_SIZE;BL0CK_P0S = L0GIC_FILE_P0S%BL0CK_SIZE。步骤1063、根据L0GIC_BL0CK_INDEX在索引表中查找出物理块号PHY_BL0CK_INDEX,如果查找不到,则结束读取。步骤1064、计算可读出本块(PHY_BLOCK_INDEX)的数据大小(S),取N和BL0CK_SIZE-BL0CK_P0S 的最小值;S = min(N, BL0CK_SIZE_BL0CK_P0S);步骤1065、计算读取缓存文件的物理为置PHY_FILE_P0S=HEAD_SIZE + PHY_BLOCK_INDEX*BLOCK_SIZE + BL0CK_P0S;步骤1066、将缓存文件的读指针偏移至PHY_FILE_P0S位置,将S个byte数据读出。步骤1067、调整原文件偏移 L0GIC_FILE_P0S = L0GIC_FILE_P0S+S ;N=N_S ;进入步骤1061。另外,当所述多媒体文件块索引表中没有点播的影视文件块信息时,转至步骤101。本发明的另一个方面,提供了一种多媒体文件的缓存系统,其具体实施方式
中,包括多媒体文件信息获取装置、缓存文件头生成装置、多媒体文件切分装置和缓存文件生成装置,其中所述多媒体文件信息获取装置,用于获取多媒体文件以及所述多媒体文件容量信息;所述缓存文件头生成装置,用于建立缓存文件头,所述缓存文件头中包括缓存块大小和多媒体文件块索引表,以及将多媒体文件块编号和对应的多媒体文件块存储信息存入多媒体文件块索引表;所述多媒体文件切分装置,用于根据所述多媒体文件容量信息和所述缓存块大小将所述影视文件平均切分为不少于一个的多媒体文件块,并给每个影视文件块一个编号;所述缓存文件生成装置,用于将所述各影视文件块按所述编号排列在所述缓存文件头的后面,生成所述影视文件的缓存文件。作为一种优选方式,还包括缓存文件读取装置,用于点播所述多媒体文件时,先读取所述多媒体文件块索引表,根据多媒体文件块索引表中的信息读取影视文件块信息。缓存文件头生成装置中,缓存文件头还包括缓存文件标志、字节序标志、版本号、文件头大小、多媒体文件原始数据大小和已缓存数据大小。作为上述技术方案的优选,所述缓存文件读取装置还用于,当所述多媒体文件块索引表中没有点播的影视文件块信息时,建立新的缓存文件块信息。,本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可 以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种多媒体文件的缓存方法,其特征在于,包括以下步骤 A、获取多媒体文件以及所述多媒体文件容量信息; B、建立缓存文件头,所述缓存文件头中包括缓存块大小和多媒体文件块索引表; C、根据所述多媒体文件容量信息和所述缓存块大小将所述影视文件平均切分为不少于一个的多媒体文件块,并给每个影视文件块一个编号; D、将所述编号和对应的多媒体文件块存储信息存入多媒体文件块索引表; E、将所述各影视文件块按所述编号排列在所述缓存文件头的后面,生成所述影视文件的缓存文件。
2.根据权利要求I所述的多媒体文件的缓存方法,其特征在于,还包括步骤 F、点播所述多媒体文件时,先读取所述多媒体文件块索引表,根据多媒体文件块索引 表中的信息读取对应的影视文件块信息。
3.根据权利要求I或2所述的多媒体文件的缓存方法,其特征在于,所述步骤B中缓存文件头还包括缓存文件标志、字节序标志、版本号、文件头大小、多媒体文件原始数据大小和已缓存数据大小。
4.根据权力要求2所述的多媒体文件的缓存方法,其特征在于,所述步骤F还包括,当所述多媒体文件块索引表中没有点播的影视文件块信息时,转至步骤A。
5.一种多媒体文件的缓存系统,其特征在于,包括多媒体文件信息获取装置、缓存文件头生成装置、多媒体文件切分装置和缓存文件生成装置,其中 所述多媒体文件信息获取装置,用于获取多媒体文件以及所述多媒体文件容量信息; 所述缓存文件头生成装置,用于建立缓存文件头,所述缓存文件头中包括缓存块大小和多媒体文件块索引表,以及将多媒体文件块编号和对应的多媒体文件块存储信息存入多媒体文件块索引表; 所述多媒体文件切分装置,用于根据所述多媒体文件容量信息和所述缓存块大小将所述影视文件平均切分为不少于一个的多媒体文件块,并给每个影视文件块一个编号; 所述缓存文件生成装置,用于将所述各影视文件块按所述编号排列在所述缓存文件头的后面,生成所述影视文件的缓存文件。
6.根据权利要求5所述的多媒体文件的缓存系统,其特征在于,还包括缓存文件读取装置,用于点播所述多媒体文件时,先读取所述多媒体文件块索引表,根据多媒体文件块索引表中的信息读取影视文件块信息。
7.根据权利要求5或6所述的多媒体文件的缓存系统,其特征在于,所述缓存文件头生成装置中,缓存文件头还包括缓存文件标志、字节序标志、版本号、文件头大小、多媒体文件原始数据大小和已缓存数据大小。
8.根据权力要求6所述的多媒体文件的缓存系统,其特征在于,所述缓存文件读取装置还用于,当所述多媒体文件块索引表中没有点播的影视文件块信息时,建立新的缓存文件块信息。
全文摘要
本发明公开了一种多媒体文件的缓存方法和系统,其方法为,首先,获取多媒体文件以及所述多媒体文件容量信息;建立缓存文件头,所述缓存文件头中包括缓存块大小和多媒体文件块索引表; 根据所述多媒体文件容量信息和所述缓存块大小将所述影视文件平均切分为不少于一个的多媒体文件块,并给每个影视文件块一个编号;将所述编号和对应的多媒体文件块存储信息存入多媒体文件块索引表;将所述各影视文件块按所述编号排列在所述缓存文件头的后面,生成所述影视文件的缓存文件采用本发明,能够解决互联网视频点播时分配大存储空间从而需要比较长的时间运算和分配以至于影响点播的实时性的问题,还可以避免分配到的空间被浪费。
文档编号G06F17/30GK102722555SQ20121017025
公开日2012年10月10日 申请日期2012年5月28日 优先权日2012年5月28日
发明者黎锋 申请人:北京网尚数字电影院线有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1