发明内容
本发明的目的在于提供一种多码率流文件的存储和读取方法及相关装置,用于将多码率流文件及小的分片文件组成的媒资资源兼容到现有的数字电视前端***中,并提高分片文件的查询及读取效率。
本发明提供一种多码率流文件的存储方法,可包括:
获取媒体文件,生成待存储的媒资文件的索引头,所述索引头包括所述媒资文件的ID和每个所述媒体文件对应的码率;
对所述媒体文件进行切片处理,获得分片文件;
存储所述分片文件,以及存储索引文件,所述索引文件包括所述分片文件的ID和所述分片文件的存储位置,所述分片文件和索引文件组成流文件;
将所述流文件的索引文件的存储位置记录至所述媒资文件的索引头,所述媒资文件包括至少一个流文件。
优选地,所述对所述媒体文件进行切片处理,获得分片文件,包括:
对所述媒体文件按照设定的分片文件的播放时长,将所述媒体文件切片为至少一个分片文件。
优选地,所述存储所述分片文件,以及存储索引文件,包括:
针对任一个流文件,按照所述流文件中分片文件的播放顺序,依次存储所述流文件的分片文件;
在所述流文件的第一个分片文件之前或在所述流文件的最后一个分片文件之后,存储所述流文件的索引文件。
本发明提供一种多码率流文件的读取方法,可包括:
接收客户端的分片文件读取请求,所述请求包括请求的分片文件对应的媒资文件的ID、分片文件的码率和分片文件的ID;
根据所述媒资文件的ID,查找所述媒资文件的索引头,所述索引头包括所述媒资文件的ID、包含所述媒资文件的流文件对应的码率和每个所述流文件的索引文件的存储位置;
根据所述分片文件的码率,在所述索引头中获取与所述码率关联的所述流文件的索引文件的存储位置,所述索引文件包括所述分片文件的ID和所述分片文件的存储位置;
根据所述分片文件的ID,在所述索引文件中查找所述分片文件的ID对应的分片文件的存储位置;
从所述分片文件的存储位置读取所述分片文件,并将所述分片文件返回给所述客户端。
本发明提供一种多码率流文件的存储装置,可包括:
媒体文件获取模块,用于获取媒体文件;
索引头生成模块,用于生成待存储的媒资文件的索引头,所述索引头包括所述媒资文件的ID和每个所述媒体文件对应的码率;
切片模块,用于对所述媒体文件进行切片处理,获得分片文件;
存储模块,用于所述分片文件,以及存储索引文件,所述索引文件包括所述分片文件的ID和所述分片文件的存储位置,所述流文件包括所述分片文件和索引文件;
记录模块,用于将所述流文件的索引文件的存储位置记录至所述媒资文件的索引头,所述媒资文件包括至少一个流文件。
优选地,所述切片模块包括:
切片单元,用于对所述媒体文件按照设定的分片文件的播放时长,将所述媒体文件切片为至少一个分片文件。
优选地,所述存储模块包括:
分片文件存储单元,用于针对任一个流文件,按照所述流文件中分片文件的播放顺序,依次存储所述流文件的分片文件;
索引文件存储单元,用于在所述流文件的第一个分片文件之前或在所述流文件的最后一个分片文件之后,存储所述流文件的索引文件。
优选地,所述存储模块还包括:
流文件存储单元,用于如果所述媒资文件包含两个或两个以上的流文件,根据每个流文件的码率,将每个流文件依次存储。
本发明提供一种多码率流文件的读取装置,其特征在于,包括:
读取请求接收模块,用于接收客户端的分片文件读取请求,所述请求包括请求的分片文件对应的媒资文件的ID、分片文件的码率和分片文件的ID;
索引头查找模块,用于根据所述媒资文件的ID,查找所述媒资文件的索引头,所述索引头包括所述媒资文件的ID、包含所述媒资文件的流文件对应的码率和每个所述流文件的索引文件的存储位置;
索引文件获取模块,用于根据所述分片文件的码率,在所述索引头中获取与所述码率关联的所述流文件的索引文件的存储位置,所述索引文件包括所述分片文件的ID和所述分片文件的存储位置;
分片文件查找模块,用于根据所述分片文件的ID,在所述索引文件中查找所述分片文件的ID对应的分片文件的存储位置;
读取模块,用于从所述分片文件的存储位置读取所述分片文件;
返回模块,用于将所述读取单元读取的所述分片文件返回给所述客户端。
本发明提供一种中间件***,其特征在于,包括前面所述的多码率流文件的存储装置和多码率流文件的读取装置。
本发明通过对媒资文件包括的多码率媒体文件进行切片处理,并为每种码率的切片后形成的流文件添加索引文件,将多码率流文件的分片文件重新组装存储在一个媒资文件下,有利于将多码率流文件及小的分片文件组成的媒资资源兼容到现有的数字电视前端***中,同时提高了分片文件的查询及读取效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种多码率流文件的存储方法和读取方法及相关装置,通过对媒资文件包括的多码率媒体文件进行切片处理,并为每种码率的切片后形成的流文件添加索引文件,将多码率流文件的分片文件重新组装存储在一个媒资文件下,有利于将多码率流文件及小的分片文件组成的媒资资源兼容到现有的数字电视前端***中,同时提高了分片文件的查询及读取效率。
图1为本发明一种多码率流文件的存储方法的实施例的方法流程图。数字电视前端***的服务器包括一个中间件***,由该中间件***完成多码率流文件的存储,将多码率流文件存储于文件***。如图1所示,该中间件***执行多码率流文件的存储步骤如下:
步骤S101,获取媒体文件,生成待存储的媒资文件的索引头,该索引头包括媒资文件的ID和每个媒体文件对应的码率。
该中间件***可以在线或离线获取媒体文件,该媒体文件可以是音频文件或视频文件。为适用三网融合应用市场,具有相同内容的媒体文件可以是多种不同的码率,例如:通过数字电视网络传输的影片A可以是码率为1600Kbps的媒体文件A1;通过互联网传输的影片A可以是码率为800Kbps的媒体文件A2;通过3G移动通信网络传输的影片A可以是码率为400Kbps的媒体文件A3。码率是数据传输时单位时间内传输的数据位数,不同的码率的流文件所呈现出画面质量不相同。中间件***会对获取到的媒体文件进行解析,获取媒体文件的属性信息(包括媒体文件ID、文件大小、播放时长、码率等),并在文件***中生成待存储的媒资文件的索引头,该索引头至少包括待存储的媒资文件的ID和每个媒体文件对应的码率。本发明实施例的媒资文件包含媒资文件的属性信息,如媒资文件的ID、媒资时长等,以及该媒资文件包括多少个流文件,以及每个流文件对应的码率。
步骤S102,对媒体文件进行切片处理,获得分片文件。
对媒体文件按照设定的参数进行切片处理,获得一个或多个分片文件。切片处理是按照设定的单个分片文件的播放时长,将该媒体文件切分为一个或多个分片文件的处理过程。为保证每种码率下的每个分片文件的完整性,该播放时长一定是整数个GOP(Group of Pictures,画面组)。获得的每个分片文件对应唯一的一个分片文件ID,如分片1、分片2等。
步骤S103,存储分片文件,以及存储索引文件,该索引文件包括分片文件的ID和分片文件的存储位置,该分片文件和索引文件组成流文件。
将分片文件保存至文件***,同时存储索引文件,该索引文件至少包括分片文件的ID和分片文件的存储位置,分片文件的存储位置可以是绝对的存储空间地址或相对于索引文件的偏移位置等,该分片文件和索引文件一起组成流文件。如图2所示,为一个流文件的索引文件的结构示意图,该流文件被切分为分片1、分片2等多个分片文件,分片文件对应的存储位置分别为1001-1100、1101-2000等。在本发明实施例中,将单个媒体文件进行分片处理后获得的一个或多个分片文件,以及用于记录分片文件的ID的存储位置的索引文件一起组成单个流文件。因此,在步骤S101中所获得的媒体文件的码率即为流文件的码率。值得注意的是,虽然每个分片的播放时长是一样的,但由于其画面实际占用的存储空间不一样,所以每个分片的存储空间不一定是相等的。
步骤S104,将流文件的索引文件的存储位置记录至媒资文件的索引头,该媒资文件包括至少一个流文件。
完成步骤S103后,获得索引文件的存储位置,将其记录至步骤S101中的媒资文件的索引头。这样索引头就包括了媒资文件的ID、每个流文件对应的码率以及流文件的索引文件的存储位置。如图3所示,为一个媒资文件的索引头的结构示意图,该媒资文件包括多种码率的流文件,如码率1、码率2等,其关联的流文件的索引文件的存储位置分别为2001-2100、4001-4100等。
通过以上步骤,将该媒资文件的索引头、流文件的分片文件和索引文件依次保存至文件***,重新组装为一个媒资文件,在文件***中只体现为该媒资文件一个节点,这样就可以将多种码率的流文件组成的媒资资源兼容到现有的数字电视前端***中。
根据本发明一种多码率流文件的存储方法的实施例,通过对媒资文件包括的多码率媒体文件进行切片处理,并为每种码率的切片后形成的流文件添加索引文件,将多码率流文件的分片文件重新组装存储在一个媒资文件下,有利于将多码率流文件及小的分片文件组成的媒资资源兼容到现有的数字电视前端***中,同时提高了分片文件的查询及读取效率。
一个媒资文件可以包括一个或多个流文件,一个流文件包括一个或多个分片文件,下面通过具体实施例描述组装、存储分片文件和流文件的过程。
图4为对图1所示的本发明一种多码率流文件的存储方法的实施例的进一步细化的方法流程图。如图4所示,该方法包括以下步骤:
步骤S201,获取媒体文件,生成待存储的媒资文件的索引头,该索引头包括媒资文件的ID和每个媒体文件对应的码率。
步骤S201与前述实施例的步骤S101相同或类似,在此不再赘述。本实施例中***同时获取两个以上媒体文件。
步骤S202,对媒体文件按照设定的分片文件的播放时长,将该媒体文件切片为至少一个分片文件。
依次对所述获得的两个以上媒体文件进行切片处理,其过程与前述实施例的步骤S102相同或类似,在此不再赘述。需要说明的是,为适应客户端对不同码率的分片文件的切换需求,每种码率下的媒体文件按照相同的播放时长进行切片处理,这样,当在网速不高时,播放码率1下的分片1,当网速变高时,可切换至码率2,以获得更高的画面质量,这时可以无缝地切换至码率2下的分片2,继续播放该节目。如图5所示的多个流文件的存储示意图,码率1对应的流文件1包括分片1、分片2至分片M和索引文件1,码率2对应的流文件2包括分片11、分片12至分片N和索引文件2,按照相同的播放时长进行切片处理,码率1对应的流文件包括的分片文件数量与其它码率对应的流文件相等。
步骤S203,针对任一个流文件,按照流文件中分片文件的播放顺序,依次存储该流文件的分片文件。
为了方便分片文件的读取,针对媒资文件的任一个流文件,一般按照该流文件中分片文件的播放顺序,依次存储该流文件的分片文件。如图5所示,如码率1对应的流文件1按照分片文件的播放顺序将分片1、分片2至分片M以及码率2对应的流文件2按照分片11、分片12至分片N等各流文件的分片文件依次保存到文件***。
步骤S204,在该流文件的第一个分片文件之前或在该流文件的最后一个分片文件之后,存储该流文件的索引文件。
将设置好的索引文件存储在该流文件的第一个分片文件之前即该流文件的起始位置,也可以存储在该流文件的最后一个分片文件之后,即该流文件的结束位置,将索引文件存储在流文件的起始或结束位置,可以方便分片文件的连续读取。如图5所示,每个流文件的索引文件存储在该流文件的最后一个分片文件之后。
步骤S205,如果该媒资文件包含两个或两个以上的流文件,根据每个流文件的码率,将每个流文件依次存储。
媒资文件如果包含两个或两个以上的流文件,根据每个流文件的码率,将一个流文件存储完后,再存储另外一个流文件,依次存储完所有流文件。如图5所示,先存储码率1对应的流文件至文件***,再存储码率2对应的流文件至文件***,根据每个流文件的码率依次存储。
步骤S206,将流文件的索引文件的存储位置记录至媒资文件的索引头。
每存储完一个流文件,获取其索引文件的存储位置,将该流文件的索引文件的存储位置记录至媒资文件的索引头,如图5中码率1、2对应的流文件1、3的索引文件的存储位置分别为1101-1200和2101-2200。其记录方式与前述实施例的步骤S104相同或类似,在此不再赘述。
根据本发明一种多码率流文件的存储方法的实施例,通过对媒资文件包括的多码率媒体文件进行切片处理,并为每种码率的切片后形成的流文件添加索引文件,将多码率流文件的分片文件重新组装存储在一个媒资文件下,有利于将多码率流文件及小的分片文件组成的媒资资源兼容到现有的数字电视前端***中,同时提高了分片文件的查询及读取效率。
图6为本发明一种多码率流文件的读取方法的实施例的方法流程图。客户端向数字电视前端***的服务器请求某种码率下的分片文件,中间件***接收客户端请求,能够通过媒资文件的索引头快速地读取根据前述实施例中的多码率流文件的存储位置。如图6所示,该多码率流文件的读取方法包括以下步骤:
步骤S301,接收客户端的分片文件读取请求,该请求包括请求的分片文件对应的媒资文件的ID、分片文件的码率和分片文件的ID。
数字电视前端***的服务器接收客户端的分片文件读取请求,并将该请求交由服务器的中间件***处理。该请求可以是由客户端通过Web服务器发送的视频点播请求,也可以是由客户端通过数字电视网络发送的视频点播请求。该请求包括请求的分片文件对应的媒资文件的ID、分片文件的码率和分片文件的ID,还可以包括鉴权、客户端ID、解码密钥等参数,对于通过Web服务器发送的请求,Web服务器先对客户端进行识别、鉴权等,然后根据请求的分片文件对应的媒资文件的ID、分片文件的码率和分片文件的ID向数字电视前端***的中间件***请求分片文件。
步骤S302,根据媒资文件的ID,查找媒资文件的索引头,该索引头包括媒资文件的ID、包含媒资文件的流文件对应的码率和每个流文件的索引文件的存储位置。
接收到客户端的请求后,中间件***先根据媒资文件的ID,查找所有媒资文件的索引头,看是否存在对应该媒资文件的ID的索引头。该索引头包括媒资文件的ID,还包括流文件对应的码率和每个流文件的索引文件的存储位置。
步骤S303,根据分片文件的码率,在索引头中获取与该码率关联的流文件的索引文件的存储位置,该索引文件包括分片文件的ID和分片文件的存储位置。
索引头中流文件对应的码率与每个流文件的索引文件的存储位置关联,根据分片文件的码率,即该分片文件所属流文件的码率,可以获取与该码率关联的流文件的索引文件的存储位置。该索引文件是指包括分片文件的ID和分片文件的存储位置的流文件的索引文件。
步骤S304,根据分片文件的ID,在索引文件中查找该分片文件的ID对应的分片文件的存储位置。
在步骤S303中获取了索引文件的存储位置后,在文件***中该索引文件的存储位置读取该索引文件,由于该索引文件包括分片文件的ID和其对应的存储位置,因此,根据分片文件的ID,在索引文件中查找该分片文件的ID对应的分片文件的存储位置。
步骤S305,从分片文件的存储位置读取分片文件,并将该分片文件返回给客户端。
从文件***中分片文件的存储位置读取分片文件,并将该分片文件返回给Web服务器,Web服务器根据分片文件大小填写相关HTTP属性域,最后将分片文件发送到客户端,实现媒资文件的播放。
本领域技术人员容易理解的是,客户端的分片文件读取请求中的分片文件的ID可以是连续多个分片文件的ID,根据前述实施例中多码率流文件的存储方法,索引文件是存储在流文件的第一个分片文件之前或最后一个分片文件之后,因此,不影响分片文件的连续读取。
根据本发明提供的一种多码率流文件的读取方法的一个实施例,可以通过媒资文件标识读取到该媒资文件包括的多码率流文件的分片文件,通过索引能够方便地查找到请求的分片文件,极大地提高了分片文件的读取效率。
图7为本发明一种多码率流文件的存储装置的实施例的结构示意图。数字电视前端***包括中间件***,由该中间件***的存储装置完成多码率流文件的存储,将多码率流文件存储于文件***。如图7所示,该存储装置1000包括:
媒体文件获取模块101,用于获取媒体文件。
该中间件***可以在线或离线获取媒体文件,该媒体文件可以是音频文件或视频文件。为适用三网融合应用市场,具有相同内容的媒体文件可以是多种不同的码率,例如:通过数字电视网络传输的影片A可以是码率为1600Kbps的媒体文件A1;通过互联网传输的影片A可以是码率为800Kbps的媒体文件A2;通过3G移动通信网络传输的影片A可以是码率为400Kbps的媒体文件A3。码率是数据传输时单位时间内传输的数据位数,不同的码率的流文件所呈现出画面质量不相同。
索引头生成模块102,用于生成待存储的媒资文件的索引头,该索引头包括媒资文件的ID和每个媒体文件对应的码率。
中间件***会对获取到的媒体文件进行解析,获取媒体文件的属性信息(包括媒体文件ID、文件大小、播放时长、码率等),并在文件***中生成待存储的媒资文件的索引头,该索引头至少包括待存储的媒资文件的ID和每个媒体文件对应的码率。本发明实施例的媒资文件包含媒资文件的属性信息,如媒资文件的ID、媒资时长等,以及该媒资文件包括多少个流文件,以及每个流文件对应的码率。
切片模块103,用于对媒体文件进行切片处理,获得分片文件。
对媒体文件按照设定的参数进行切片处理,获得一个或多个分片文件。切片处理是按照设定的单个分片文件的播放时长,将该媒体文件切分为一个或多个分片文件的处理过程。为保证每种码率下的每个分片文件的完整性,该播放时长一定是整数个GOP(Group of Pictures,画面组)。获得的每个分片文件对应唯一的一个分片文件ID,如分片1、分片2等。
存储模块104,用于存储分片文件,以及存储索引文件,该索引文件包括分片文件的ID和分片文件的存储位置,该分片文件和索引文件组成流文件。
将分片文件保存至文件***,同时存储索引文件,该索引文件至少包括分片文件的ID和分片文件的存储位置,分片文件的存储位置可以是绝对的存储空间地址或相对于索引文件的偏移位置等,该分片文件和索引文件一起组成流文件。如图2所示,为一个流文件的索引文件的结构示意图,该流文件被切分为分片1、分片2等多个分片文件,分片文件对应的存储位置分别为1001-1100、1101-2000等。在本发明实施例中,将单个媒体文件进行分片处理后获得的一个或多个分片文件,以及用于记录分片文件的ID的存储位置的索引文件一起组成单个流文件。因此,在步骤S101中所获得的媒体文件的码率即为流文件的码率。值得注意的是,虽然每个分片的播放时长是一样的,但由于其画面实际占用的存储空间不一样,所以每个分片的存储空间不一定是相等的。
记录模块105,用于将流文件的索引文件的存储位置记录至媒资文件的索引头,该媒资文件包括至少一个流文件。
获得索引文件的存储位置,将其记录至媒资文件的索引头。这样索引头就包括了媒资文件的ID、每个流文件对应的码率以及流文件的索引文件的存储位置。如图3所示,为一个媒资文件的索引头的结构示意图,该媒资文件包括多种码率的流文件,如码率1、码率2等,其关联的流文件的索引文件的存储位置分别为2001-2100、4001-4100等。
这样,就将该媒资文件的索引头、流文件的分片文件和索引文件依次保存至文件***,重新组装为一个媒资文件,在文件***中只体现为该媒资文件一个节点,这样就可以将多种码率的流文件组成的媒资资源兼容到现有的数字电视前端***中。
根据本发明一种多码率流文件的存储装置的实施例,通过对媒资文件包括的多码率媒体文件进行切片处理,并为每种码率的切片后形成的流文件添加索引文件,将多码率流文件的分片文件重新组装存储在一个媒资文件下,有利于将多码率流文件及小的分片文件组成的媒资资源兼容到现有的数字电视前端***中,同时提高了分片文件的查询及读取效率。
一个媒资文件可以包括一个或多个流文件,一个流文件又包括一个或多个分片文件,下面通过具体实施例描述组装、存储分片文件和流文件的过程。
图8为对图7所示的本发明一种多码率流文件的存储装置的实施例的进一步细化的结构示意图。如图8所示,该存储装置2000包括:
媒体文件获取模块101,用于获取媒体文件。
索引头生成模块102,用于生成待存储的媒资文件的索引头,该索引头包括媒资文件的ID和每个媒体文件对应的码率。
在本实施例中,媒体文件获取模块101和索引头生成模块102分别与前述实施例的媒体文件获取模块101和索引头生成模块102的功能相同或类似,在此不再赘述。值得说明的是,本实施例中***同时获取两个以上媒体文件,媒体文件获取模块101可以分别或一次全部获取媒体文件,索引头生成模块102生成索引头,该索引头包括媒资文件的ID和每个媒体文件对应的码率。
切片模块103,用于对媒体文件进行切片处理,获得分片文件。
在本实施例中,切片模块103包括切片单元106。
切片单元106,用于对媒体文件按照设定的分片文件的播放时长,将该媒体文件切片为至少一个分片文件。
切片单元106依次对所述获得的两个以上媒体文件进行切片处理。切片处理是按照设定的分片文件的播放时长,将该媒体文件切分为一个或多个分片文件的处理过程。为保证每种码率下的每个分片文件的完整性,该播放时长一定是整数个GOP(Group of Pictures,画面组)。获得的每个分片文件对应唯一的一个ID,如分片1、分片2等。
需要说明的是,为适应客户端对不同码率的分片文件的切换需求,每种码率下的媒体文件按照相同的播放时长进行切片处理,这样,当在网速不高时,播放码率1下的分片1,当网速变高时,可切换至码率2,以获得更高的画面质量,这时可以无缝地切换至码率2下的分片2,继续播放该节目。如图5所示的多个流文件的存储示意图,码率1对应的流文件1包括分片1、分片2至分片M和索引文件1,码率2对应的流文件2包括分片11、分片12至分片N和索引文件2,按照相同的播放时长进行切片处理,码率1对应的流文件包括的分片文件数量与其它码率对应的流文件相等。
存储模块104,用于存储分片文件,以及存储索引文件,该索引文件包括分片文件的ID和分片文件的存储位置,该分片文件和索引文件组成流文件。
在本实施例中,存储模块104包括分片文件存储单元107、索引文件存储单元108和流文件存储单元109。
分片文件存储单元107,用于针对任一个流文件,按照流文件中分片文件的播放顺序,依次存储该流文件的分片文件。
为了方便分片文件的读取,针对媒资文件的任一个流文件,一般按照该流文件中分片文件的播放顺序,依次存储该流文件的分片文件。如图5所示,如码率1对应的流文件1按照分片文件的播放顺序将分片1、分片2至分片M以及码率2对应的流文件2按照分片11、分片12至分片N等各流文件的分片文件依次保存到文件***。
索引文件存储单元108,用于在该流文件的第一个分片文件之前或在该流文件的最后一个分片文件之后,存储该流文件的索引文件。
将设置好的索引文件存储在该流文件的第一个分片文件之前即该流文件的起始位置,也可以存储在该流文件的最后一个分片文件之后,即该流文件的结束位置,将索引文件存储在流文件的起始或结束位置,可以方便分片文件的连续读取。如图5所示,每个流文件的索引文件存储在该流文件的最后一个分片文件之后。
流文件存储单元109,用于如果该媒资文件包含两个或两个以上的流文件,根据每个流文件的码率,将每个流文件依次存储。
媒资文件如果包含两个或两个以上的流文件,根据每个流文件的码率,将一个流文件存储完后,再存储另外一个流文件,依次存储完所有流文件。如图5所示,先存储码率1对应的流文件至文件***,再存储码率2对应的流文件至文件***,根据每个流文件的码率依次存储。
记录单元105,用于将流文件的索引文件的存储位置记录至媒资文件的索引头。
每存储完一个流文件,获取其索引文件的存储位置,将该流文件的索引文件的存储位置记录至媒资文件的索引头,如图5中码率1、2对应的流文件1、3的索引文件的存储位置分别为1101-1200和2101-2200。其记录方式与前述实施例的步骤S104相同或类似,在此不再赘述。
根据本发明一种多码率流文件的存储装置的实施例,通过对媒资文件包括的多码率媒体文件进行切片处理,并为每种码率的切片后形成的流文件添加索引文件,将多码率流文件的分片文件重新组装存储在一个媒资文件下,有利于将多码率流文件及小的分片文件组成的媒资资源兼容到现有的数字电视前端***中,同时提高了分片文件的查询及读取效率。
图9为本发明一种多码率流文件的读取装置的实施例的结构示意图。客户端向数字电视前端***的服务器请求某种码率下的分片文件,中间件***的读取装置接收客户端请求,能够通过媒资文件的索引头快速地读取根据前述实施例中的多码率流文件的存储位置。如图9所示,该多码率流文件的读取装置3000包括:
读取请求接收模块201,用于接收客户端的分片文件读取请求,该请求包括请求的分片文件对应的媒资文件的ID、分片文件的码率和分片文件的ID。
数字电视前端***的服务器接收客户端的分片文件读取请求,并将该请求交由服务器的中间件***的读取装置处理。该请求可以是由客户端通过Web服务器发送的视频点播请求,也可以是由客户端通过数字电视网络发送的视频点播请求。该请求包括请求的分片文件对应的媒资文件的ID、分片文件的码率和分片文件的ID,还可以包括鉴权、客户端ID、解码密钥等参数,对于通过Web服务器发送的请求,Web服务器先对客户端进行识别、鉴权等,然后根据请求的分片文件对应的媒资文件的ID、分片文件的码率和分片文件的ID向读取请求接收模块201请求分片文件。
索引头查找模块202,用于根据媒资文件的ID,查找媒资文件的索引头,该索引头包括媒资文件的ID、包含媒资文件的流文件对应的码率和每个流文件的索引文件的存储位置。
接收到客户端的请求后,索引头查找模块202先根据媒资文件的ID,查找所有媒资文件的索引头,看是否存在对应该媒资文件的ID的索引头。该索引头包括媒资文件的ID,还包括流文件对应的码率和每个流文件的索引文件的存储位置。
索引文件模块203,用于根据分片文件的码率,在索引头中获取与该码率关联的流文件的索引文件的存储位置,该索引文件包括分片文件的ID和分片文件的存储位置。
索引头中流文件对应的码率与每个流文件的索引文件的存储位置关联,根据分片文件的码率,即该分片文件所属流文件的码率,可以获取与该码率关联的流文件的索引文件的存储位置。该索引文件是指包括分片文件的ID和分片文件的存储位置的流文件的索引文件。
分片文件查找模块204,用于根据分片文件的ID,在索引文件中查找该分片文件的ID对应的分片文件的存储位置。
索引文件模块203获取了索引文件的存储位置后,分片文件查找模块204在文件***中该索引文件的存储位置读取该索引文件,由于该索引文件包括分片文件的ID和其对应的存储位置,因此,根据分片文件的ID,在索引文件中查找该分片文件的ID对应的分片文件的存储位置。
读取模块205,用于从分片文件的存储位置读取分片文件。
返回模块206,用于将读取单元读取的分片文件返回给客户端。
读取模块205从文件***中分片文件的存储位置读取分片文件,并将该分片文件返回给Web服务器,Web服务器根据分片文件大小填写相关HTTP属性域,最后将分片文件发送到客户端,实现媒资文件的播放。
本领域技术人员容易理解的是,客户端的分片文件读取请求中的分片文件的ID可以是连续多个分片文件的ID,根据前述实施例中多码率流文件的存储方法,索引文件是存储在流文件的第一个分片文件之前或最后一个分片文件之后,因此,不影响分片文件的连续读取。
根据本发明提供的一种多码率流文件的读取装置的实施例,可以通过媒资文件标识读取到该媒资文件包括的多码率流文件的分片文件,通过索引能够方便地查找到请求的分片文件,极大地提高了分片文件的读取效率。
本发明还提供一种中间件***,其位于服务器中的文件***之上,客户端向中间件***提交分片文件的请求,然后由中间件***从文件***获取分片文件返回给客户端。该中间件***包括前述实施例的多码率流文件的存储装置和多码率流文件的读取装置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。