首页 / 专利库 / 杂项知识产权事务 / 数字版权管理 / 流媒体文件存储和播放的方法、装置及系统

流媒体文件存储和播放的方法、装置及系统

阅读:24发布:2021-03-24

专利汇可以提供流媒体文件存储和播放的方法、装置及系统专利检索,专利查询,专利分析的服务。并且本 发明 实施例 公开了一种流媒体文件存储和播放的方法装置及系统,能够提高媒体文件读取效率。流媒体文件存储方法包括:将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段,所述头数据段包括:自身信息段、媒体信息段、 帧 信息段,所述自身信息段存有媒体文件身份标识号码ID;所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率,所述帧信息段存有子媒体文件的关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据;存储所述媒体文件的全部子媒体文件。本发明实施例主要应用于支持流媒体文件存储和播放的系统。,下面是流媒体文件存储和播放的方法、装置及系统专利的具体信息内容。

1.一种流媒体文件存储方法,其特征在于,包括:
将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和传输流TS数据段,所述头数据段包括:自身信息段、媒体信息段、信息段,所述自身信息段存有媒体文件身份标识号码ID;所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率,所述帧信息段存有子媒体文件的关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据;
存储所述媒体文件的全部子媒体文件;
其中,所述将媒体文件分成至少一份子媒体文件包括:
当所述媒体文件的帧数大于所述帧索引表长度或所述媒体文件的关键帧帧数大于所述关键帧索引表长度时,对所述媒体文件划分;
当所述媒体文件的帧数小于所述帧索引表长度、所述媒体文件的关键帧帧数小于所述关键帧索引表长度时,按照时间点或数据量大小对所述媒体文件划分。
2.根据权利要求1所述的流媒体文件存储方法,其特征在于,所述媒体信息段还存有:
所述媒体文件的视频类型、音频类型、数字版权管理DRM标记。
3.一种流媒体文件存储装置,其特征在于,包括:
划分单元,用于将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段,所述头数据段包括:自身信息段、媒体信息段、帧信息段,所述自身信息段存有媒体文件身份标识号码ID,所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率,所述帧信息段存有关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据;
存储单元,用于存储所述媒体文件的全部子媒体文件;
其中,所述划分单元还用于:
当所述媒体文件的帧数大于所述帧索引表长度或所述媒体文件的关键帧帧数大于所述关键帧索引表长度时,对所述媒体文件划分;
当所述媒体文件的帧数小于所述帧索引表长度、所述媒体文件的关键帧帧数小于所述关键帧索引表长度时,按照时间点或数据量大小对所述媒体文件划分。
4.根据权利要求3所述的流媒体文件存储装置,其特征在于,所述媒体信息段还存有:
所述媒体文件的视频类型、音频类型、DRM标记。
5.一种流媒体文件播放方法,其特征在于,包括:
接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID;
查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件;
将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件;
从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点;
根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
6.根据权利要求5所述的流媒体文件播放方法,其特征在于,所述根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端包括:
收到客户端播放请求后,根据所述媒体文件的帧率确定每秒应发送的帧个数,从所述起播点开始读取帧数据发送到所述客户端;
收到客户端发送快进/快退请求后,根据所述客户端所选快进/快退倍率及所述媒体文件的帧率确定每次跨越的帧个数,从所述起播点开始抽取帧数据发送到所述客户端。
7.根据权利要求6所述的流媒体文件播放方法,其特征在于,在所述查找与所述文件ID对应的媒体文件之后,包括:
查找到所述文件ID对应的媒体文件后,向所述客户端发送回复消息,所述回复消息携带所述媒体文件的视频类型、音频类型、DRM标记。
8.根据权利要求6所述的流媒体文件播放方法,其特征在于,根据客户端操作请求及媒体信息段的帧率,从TS数据段读取帧数据发送到所述客户端之后包括:
若所述目的子媒体文件有至少一个接续的子媒体文件,根据客户端操作,依次在所述至少一个接续的子媒体文件中读取帧数据向所述客户端发送。
9.一种流媒体服务器,其特征在于,包括:
接收单元,用于接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID;
查找单元,用于查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件;
比对单元,用于将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件;
确定起播点单元,用于从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点;
发送单元,用于根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
10.根据权利要求9所述的流媒体服务器,其特征在于,所述发送单元还用于:
收到客户端播放请求后,根据所述媒体文件的帧率确定每秒应发送的帧个数,从所述起播点开始读取帧数据发送到所述客户端;
收到客户端发送快进/快退请求后,根据所述客户端所选快进/快退倍率及所述媒体文件的帧率确定每次跨越的帧个数,从所述起播点开始抽取帧数据发送到所述客户端。
11.根据权利要求9所述的流媒体服务器,其特征在于,还包括:
发送回复消息单元,用于查找到所述文件ID对应的媒体文件后,向所述客户端发送回复消息,所述回复消息携带所述媒体文件的视频类型、音频类型、DRM标记。
12.根据权利要求9所述的流媒体服务器,其特征在于,还包括:
接续单元,用于若所述目的子媒体文件有至少一个接续的子媒体文件,根据客户端操作,依次在所述至少一个接续的子媒体文件中读取帧数据向所述客户端发送。
13.一种流媒体文件存储和播放系统,其特征在于,包括:流媒体文件存储装置、流媒体服务器,其中:
所述流媒体文件存储装置,用于将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段,所述头数据段包括:自身信息段、媒体信息段、帧信息段,所述自身信息段存有媒体文件身份标识号码ID,所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率,所述帧信息段存有关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据;存储所述媒体文件的全部子媒体文件;其中,所述将媒体文件分成至少一份子媒体文件包括:当所述媒体文件的帧数大于所述帧索引表长度或所述媒体文件的关键帧帧数大于所述关键帧索引表长度时,对所述媒体文件划分;当所述媒体文件的帧数小于所述帧索引表长度、所述媒体文件的关键帧帧数小于所述关键帧索引表长度时,按照时间点或数据量大小对所述媒体文件划分;
所述流媒体服务器,用于接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID;查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件;将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件;从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点;根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
14.根据权利要求13所述的流媒体文件存储和播放系统,其特征在于,所述流媒体文件存储和播放系统包括权利要求3或4及权利要求9-12任一项所述的装置。

说明书全文

流媒体文件存储和播放的方法、装置及系统

技术领域

[0001] 本发明涉及多媒体领域,尤其涉及一种流媒体文件存储和播放的方法、装置及系统。

背景技术

[0002] 随着网络基础设施的改善,显示技术的发展。高清电视、高清电影、3D电影等高质量的节目已经有条件进入普通家庭。在网络视频,交互式网络电视(Internet Protocol Television,IPTV)应用中,这种高质量的节目的视频点播(Video on demand,VOD)业务将占有很大的比重。
[0003] 现有技术多以MP4、3GP等文件格式为基础,以分片方式进行存储,并基于MP4,3GP等文件在私有段构建关键索引。此方法解决了一些存储、冗余等问题,但增加了流媒体实现的复杂度。流媒体服务器需要解析MP4,3GP等文件格式,从中读取媒体信息,帧索引。解析过程复杂,且会导致过多的小数据的读取,影响读写性能,从而影响了流媒体服务器推流的质量。
[0004] 在实现本发明实施例的过程中,发明人发现现有技术中至少存在如下问题:
[0005] 现有方法存储的媒体文件,影响媒体文件的读取效率。

发明内容

[0006] 本发明的实施例提供一种流媒体文件存储和播放的方法、装置及系统,能够提高媒体文件读取效率。
[0007] 为达到上述目的,本发明的实施例采用如下技术方案:
[0008] 一种流媒体文件存储方法,包括:
[0009] 将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段,所述头数据段包括:自身信息段、媒体信息段、帧信息段,所述自身信息段存有媒体文件身份标识号码I D,所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率,所述帧信息段存有子媒体文件的关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据;
[0010] 存储所述媒体文件的全部子媒体文件。
[0011] 一种流媒体文件存储装置,包括:
[0012] 划分单元,用于将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段,所述头数据段包括:自身信息段、媒体信息段、帧信息段,所述自身信息段存有媒体文件身份标识号码ID,所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率,所述帧信息段存有关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据;
[0013] 存储单元,用于存储所述媒体文件的全部子媒体文件。
[0014] 一种流媒体文件播放方法,包括:
[0015] 接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID;
[0016] 查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件;
[0017] 将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件;
[0018] 从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点;
[0019] 根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
[0020] 一种流媒体服务器,包括:
[0021] 接收单元,用于接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID;
[0022] 查找单元,用于查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件;
[0023] 比对单元,用于将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件;
[0024] 确定起播点单元,用于从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点;
[0025] 发送单元,用于根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
[0026] 一种流媒体文件存储和播放系统,包括:流媒体文件存储装置、流媒体服务器,其中:
[0027] 所述流媒体文件存储装置,用于将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段,所述头数据段包括:自身信息段、媒体信息段、帧信息段,所述自身信息段存有媒体文件身份标识号码ID,所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率,所述帧信息段存有关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据;存储所述媒体文件的全部子媒体文件;
[0028] 所述流媒体服务器,用于接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID;查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件;将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件;从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点;根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
[0029] 本发明实施例提供的流媒体文件存储和播放的方法、装置及系统,存储媒体文件时,将媒体文件划分为至少一个子媒体文件,每个子媒体文件由含有自身信息段、媒体信息段和帧信息段的头数据段及TS数据段组成,这种存储方法存储的媒体文件格式以TS流数据为负载,组织媒体文件的类型,码率,帧率,视频帧的位置、时间参数等信息;使得播放媒体文件时,根据文件ID及时间参数确定目的子媒体文件,根据关键帧确定起播点,从TS数据段读取帧数据。基于上述媒体文件存储方法存储的媒体文件格式,播放时,可以实现更简单、方便、灵活的流媒体播控操作。附图说明
[0030] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031] 图1为本发明实施例1提供的流媒体文件存储方法的流程图
[0032] 图2为本发明实施例1提供的流媒体文件存储装置的结构图;
[0033] 图3为本发明实施例1提供的流媒体文件播放方法的流程图;
[0034] 图4为本发明实施例1提供的流媒体服务器的结构图;
[0035] 图5为本发明实施例1提供的流媒体文件存储和播放系统;
[0036] 图6为本发明实施例2中子媒体文件的组成示意图;
[0037] 图7为本发明实施例2中子媒体文件头数据段中自身信息段的组成示意图;
[0038] 图8为本发明实施例2中子媒体文件头数据段中媒体信息段的组成示意图;
[0039] 图9为本发明实施例2中子媒体文件头数据段中帧信息段的组成示意图;
[0040] 图10为本发明实施例3提供的流媒体文件播放方法的流程图;
[0041] 图11为本发明实施例3提供的流媒体服务器的结构图。

具体实施方式

[0042] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043] 本发明实施例提供了一种媒体文件的存储格式,这种格式以TS流数据为负载,用适当的方式组织媒体文件的流类型,码率,帧率,视频帧的位置、时间等信息。使得流媒体服务器可以快捷的读取媒体文件基本信息,可以按时间点对视频关键帧进行随机读取。基于此格式,流媒体服务器可以实现更简单、方便、灵活的流媒体播控操作。以上述存储格式为基础,提出了一种基于帧率的播放方法,上述流媒体文件播放方法支持CBR编码和VBR编码,并且可以更精确的控制流数据的推送,从而提高服务质量。
[0044] 传输流(Transport Stream,TS)是一种非常适合流媒体的一种格式,基本特点是媒体数据按时间顺序存储,从节目任何时间点都可以接入播放。它有完善的时钟同步,信息存储机制。已经广泛的用于DVB(数字视频广播)直播系统。基于TS流建立的这种存储格式,不但继承了TS的这些优点,而且使流媒体服务器更方便高效的实现快进快退,任意时间点处播放,分段拼接等操作。
[0045] 实施例1:
[0046] 本实施例提供一种流媒体文件存储方法,如图1所示,包括:
[0047] 101、将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段。
[0048] 具体地,所述头数据段包括:自身信息段、媒体信息段、帧信息段,所述自身信息段存有媒体文件身份标识号码ID,所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率,所述帧信息段存有子媒体文件的关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据。
[0049] 102、存储所述媒体文件的全部子媒体文件。
[0050] 本实施例的执行主体可以为一种流媒体文件存储装置,如存储服务器等。
[0051] 采用上述方法存储的媒体文件,格式结构简洁、节省存储空间,在播放时摆脱了复杂的文件格式解析,且这种格式适合整的读取,从而提高了媒体文件的读写效率。
[0052] 与上述流媒体文件存储方法对应,本实施又提供一种流媒体文件存储装置,如图2所示,包括:划分单元201、存储单元202。
[0053] 划分单元201、用于将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段。
[0054] 具体地,所述头数据段包括:自身信息段、媒体信息段、帧信息段,所述自身信息段存有媒体文件身份标识号码ID,所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率,所述帧信息段存有关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据。
[0055] 存储单元202、用于存储所述媒体文件的全部子媒体文件。
[0056] 本实施例提供的流媒体文件存储装置可以是存储服务器等。
[0057] 本发明实施例提供的媒体文件存储装置,存储的媒体文件格式结构简洁、占用空间小,使得在播放本装置存储的媒体文件时,摆脱了复杂的文件格式解析,且这种结构适合整块的读取,从而提高了媒体文件的读写效率。
[0058] 此外,本实施例还提供一种流媒体文件播放方法,如图3所示,包括:
[0059] 301、接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID。
[0060] 302、查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件。
[0061] 303、将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件。
[0062] 304、从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点。
[0063] 305、根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
[0064] 本实施例的执行主体可以是一种流媒体服务器。
[0065] 采用上述流媒体文件播放方法,需要的媒体基本信息可以很方便的获得,帧信息索引表为简单高效的实现快进快退、定点播放操作提供了良好的支持,从而提高播放性能和效率。此外,上述流媒体文件播放方法支持CBR编码和VBR编码,并且可以更精确的控制流数据的推送,从而提高服务质量。
[0066] 与上述流媒体文件播放方法对应,本实施例还提供一种流媒体服务器,如图4所示,包括:接收单元401、查找单元402、比对单元403、确定起播点单元404、发送单元405。
[0067] 接收单元401、用于接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID。
[0068] 查找单元402、用于查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件。
[0069] 比对单元403、用于将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件。
[0070] 确定起播点单元404、用于从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点。
[0071] 发送单元405、用于根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
[0072] 采用上述流媒体服务器,便于从存储的媒体文件获取播放必备参数,实现高效率播放,此外,上述流媒体文件播放方法支持CBR编码和VBR编码,并且可以更精确的控制流数据的推送,从而提高服务质量。
[0073] 最后,本实施例还提供了一种流媒体文件存储和播放系统,如图5所示,所述系统包括:流媒体文件存储装置501、流媒体服务器502,其中:
[0074] 所述流媒体文件存储装置501、用于将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段,所述头数据段包括:自身信息段、媒体信息段、帧信息段,所述自身信息段存有媒体文件身份标识号码ID,所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率,所述帧信息段存有关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据;存储所述媒体文件的全部子媒体文件。
[0075] 所述流媒体服务器502、用于接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID;查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件;将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件;从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点;根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
[0076] 采用本实施例提供的流媒体文件存储和播放系统,在存储媒体文件时,将媒体文件划分为至少一个子媒体文件,每个子媒体文件由含有自身信息段、媒体信息段和帧信息段的头数据段及TS数据段组成;在播放流媒体文件时,根据文件ID及时间参数确定目的子媒体文件,根据关键帧确定起播点,从TS数据段读取帧数据。与现有方法存储的媒体文件,存在影响媒体文件读取效率的问题相比,本发明实施例提供的流媒体文件存储和播放的方法装置及系统能够提高媒体文件读取效率。
[0077] 本发明实施例提供的流媒体文件存储和播放的方法、装置及系统,存储媒体文件时,将媒体文件划分为至少一个子媒体文件,每个子媒体文件由含有自身信息段、媒体信息段和帧信息段的头数据段及TS数据段组成,这种存储方法存储的媒体文件格式以TS流数据为负载,组织媒体文件的类型,码率,帧率,视频帧的位置、时间等信息;使得播放媒体文件时,根据文件ID及时间参数确定目的子媒体文件,根据关键帧确定起播点,从TS数据段读取帧数据。基于上述媒体文件存储方法存储的媒体文件格式,播放时,可以实现更简单、方便、灵活的流媒体播控操作,上述流媒体文件播放方法支持CBR编码和VBR编码,并且可以更精确的控制流数据的推送,从而提高服务质量。
[0078] 实施例2:
[0079] 本发明实施例提供一种流媒体文件存储方法,如图1所示,包括:
[0080] 101、将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段。
[0081] 在划分媒体文件时,当帧数大于子媒体文件的帧索引表或关键帧的帧数大于子媒体文件的关键帧索引表的长度,必须对媒体文件进行划分。在设置关键帧索引表和帧索引表的长度时,可以调整关键帧索引表和帧索引表的比例以达到最有效的空间利用率,当设置完毕后,关键帧索引表和帧索引表的长度便确定下来,具体划分实例请参见下述图9部分描述。
[0082] 当然,当帧数小于子媒体文件的帧索引表且关键帧的帧数小于子媒体文件的关键帧索引表的长度时,可以不对媒体文件划分,也可以按照时间点或数据量的大小对媒体文件划分。例如,一个媒体文件全部时长为2小时,可以每半个小时划分一个子媒体文件,即划分成4个子媒体文件;按数据量大小划分媒体文件与按时间点划分媒体文件的方法类似。
[0083] 本实施例,关键帧索引表和帧索引表的长度设定后,帧索引表的长度和关键帧索引表的长度也是固定的;子媒体文件的头数据段部分的长度是固定的,便于播放媒体文件时将头数据段部分加载到内存进行随机读写。
[0084] 应用本实施例时,可以根据具体情况设置头数据段的大小,在设置头数据段的大小时,主要考虑头数据段需存储的索引表的长度。例如,当设置头数据段的大小为1MB时,按照25帧/秒的帧率,大约可以存储一小时的节目。当然,如果媒体文件为高清节目,一个子媒体文件可以达到3G,通常情况,在实际应用中子媒体文件的大小要远小于这个值。
[0085] 进一步,本实施例提供的存储格式以分块或分片为单位存储媒体文件,一个媒体文件可以存储于一个或多个子媒体文件中,各个子媒体文件间通过媒体文件身份标识号码ID(File ID)和子媒体文件编号进行关联,上层应用可以通过File ID和子媒体文件编号建立文件索引。
[0086] 如图6所示,其为本实施例子媒体文件的组成示意图,子媒体文件由两部分组成:一个固定长度的头数据段(Header)和TS数据段,头数据段(Header)由自身信息段、媒体信息段、帧信息段组成,TS数据段存储与头数据段对应的TS流数据。
[0087] 具体地,自身信息段,用于存储子媒体文件本身的描述信息。
[0088] 媒体信息段,用于存储子媒体文件的时间参数(包括起始时间和时长)、帧率、视频类型、音频类型、码率、数字版权管理(digital right management,DRM)标记。
[0089] 如图7所示,自身信息段包含子媒体文件本身的描述信息,包括,媒体文件身份标识号码(File ID)、子媒体文件编号、子媒体文件大小(size)。同一个媒体文件所有子媒体文件的媒体文件身份标识号码(File ID)相同且在一个系统中唯一;子媒体文件编号从0开始,依次递增。系统可以根据这两个值建立一个文件路径的索引,方便快速查找。
[0090] 具体地,媒体文件身份标识号码,用于不同媒体文件的识别,同一媒体文件的子媒体文件身份标识号码相同;子媒体文件编号,用于同一媒体文件的多个子媒体文件排序;子媒体文件大小,用于标示子媒体文件的大小。
[0091] 接下来,所述头数据段还包括媒体信息段,媒体信息段内容及存储结构如图8所示,它存储了子媒体文件的时间参数(包括起始时间和时长)、帧率、视频类型、音频类型、码率、DRM标记。
[0092] 具体地,子媒体文件的时间参数包括子媒体文件起始时间和时长;子媒体文件的帧率用于在数据传输过程中测量单位时间传送的帧的个数;子媒体文件的视频类型标识了子媒体文件的视频类型;子媒体文件的音频类型标识了子媒体文件的音频类型;子媒体文件的码率标识了子媒体文件的码率,码率是数据传输时单位时间传送的数据位数,一般我们用的单位是千位每秒;子媒体文件的DRM标记用于标识节目的内容是否经过数字版权管理相关技术处理。
[0093] 媒体信息段存储的信息可以供流媒体服务器使用,如流媒体服务器可以根据码率进行流控和推流;时间参数包括起始时间和时长,在客户端请求从某个时间点进行播放时,流媒体服务器可以根据这个时间值判断节目起始点是否在本子媒体文件,如果在本子媒体文件,则根据更精确的时间标记确定起播点位置,如果不在本子媒体文件,则检查下个子媒体文件;音视频类型信息可以通过Announce(播报)消息通知客户端,然后客户端提前初始化对应解码器,减少显示延迟。
[0094] 帧信息段内容及存储结构如图9所示,它包括帧索引表和关键帧索引表。帧索引表记录帧的类型、偏移位置(pos)、保留空间(reserved),关键帧索引表记录关键帧在帧索引表里面的序号和时间戳,时间戳的值从0开始,根据帧的PTS(Presentation Time Stamp,显示时间戳)的差值进行累加,关键帧的位置信息可以通过序号计算出偏移量,然后直接从帧索引节点读取;图9中的保留空间,不存储数据,用于存储空间的字节对齐。
[0095] 具体地,图9中,帧数为帧索引表中实际存储的帧的个数。
[0096] 关键帧帧数为关键帧索引表中实际存储的关键帧的个数。
[0097] M为帧索引表的长度,M*8为帧索引表占用的存储空间的大小。
[0098] N为关键帧索引表的长度,N*8为关键帧索引表占用的存储空间的大小。
[0099] 对应于上述媒体文件划分部分,假设帧索引表的长度M为1000帧,关键帧索引表的长度N为50帧,在划分媒体文件时,如果媒体文件小于等于1000帧,且关键帧帧数(本实例中若每25帧取一个关键帧,则1000帧的媒体文件共有40个关键帧)小于等于50帧,则不需要对小于等于1000帧的媒体文件进行划分(此时,可以根据时间点或数据量的大小对媒体文件划分);如果媒体文件大于1000帧或关键帧帧数大于50帧,则必须对媒体文件进行划分。
[0100] 102、存储所述媒体文件的全部子媒体文件。
[0101] 采用上述方法存储的媒体文件,将媒体文件划分为至少一个子媒体文件,每个子媒体文件由含有自身信息段、媒体信息段和帧信息段的头数据段及TS数据段组成,存储的媒体文件格式结构简洁、节省存储空间,这种存储格式针对流媒体服务器的播放控制特点设计,播放时需要的媒体基本信息可以很方便的获得,使得在播放以上述格式存储的媒体文件时,摆脱了复杂的文件格式解析,这种结构适合整块的读取,从而提高了媒体文件的读写效率。
[0102] 与上述方法对应,本实施例一种流媒体文件存储装置,请参阅图2,所述流媒体文件存储装置包括:划分单元201、存储单元202。
[0103] 划分单元201、用于将媒体文件分成至少一份子媒体文件,每份子媒体文件包括头数据段和TS数据段。
[0104] 具体地,所述头数据段包括:自身信息段、媒体信息段、帧信息段,所述自身信息段存有媒体文件身份标识号码ID,所述媒体信息段存有子媒体文件的时间参数、所述媒体文件的帧率、所述媒体文件的视频类型、音频类型、DRM标记,所述帧信息段存有关键帧索引表、帧索引表;所述TS数据段存储所述头数据段对应的TS流数据。
[0105] 进一步,划分单元201还用于:
[0106] 当所述媒体文件的帧数大于所述帧索引表长度或所述媒体文件的关键帧帧数大于所述关键帧索引表长度时,对所述媒体文件划分;
[0107] 当所述媒体文件的帧数小于所述帧索引表长度、所述媒体文件的关键帧帧数小于所述关键帧索引表长度时,按照时间点或数据量大小对所述媒体文件划分。
[0108] 存储单元202、用于存储所述媒体文件的全部子媒体文件。
[0109] 需要说明的是,本实施例提供的流媒体文件存储装置是流媒体文件存储方法的具体应用,详述内容请参阅本实施例上述流媒体文件存储方法。
[0110] 采用本实施例提供的流媒体文件存储装置存储的媒体文件,将媒体文件划分为至少一个子媒体文件,每个子媒体文件由含有自身信息段、媒体信息段和帧信息段的头数据段及TS数据段组成,本装置存储的媒体文件格式结构简洁、节省存储空间,本装置存储的媒体文件格式针对流媒体服务器的播放控制特点设计,播放时需要的媒体基本信息可以很方便的获得,从而提高了媒体文件的读写效率。
[0111] 实施例3:
[0112] 本实施例提供一种流媒体文件播放方法,请参阅图10,包括:
[0113] 11、接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID。
[0114] 12、查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件。
[0115] 13、查找到所述文件ID对应的媒体文件后,向所述客户端发送回复消息,所述回复消息携带所述媒体文件的视频类型、音频类型、DRM标记。
[0116] 14、接收客户端发送的播放指示,所述播放指示中携带起始时间点。
[0117] 15、将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件。
[0118] 16、从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点。
[0119] 具体地,本实施例根据起始时间点定位起播点的位置,具体为:
[0120] 客户端上报节目的起播时间点,依次读取对应媒体文件(如电影节目)的子媒体文件的头数据段,根据头数据段中媒体信息段存储的子媒体文件时间参数中的起始时间和时长判断起播点是否落在此子媒体文件,如果不是,则读取下一个;如果是,则根据关键帧索引段的时间戳,找到距此时间点最近的关键帧,然后根据序号从帧索引表里面读取帧数据的位置信息,确定起播点的位置,最后从确定的起播点开始读取、推送帧数据。
[0121] 17、根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
[0122] 具体地,收到客户端播放请求后,根据所述媒体文件的帧率确定每秒应发送的帧个数,从所述起播点开始读取帧数据发送到所述客户端;
[0123] 收到客户端发送快进/快退请求后,根据所述客户端所选快进/快退倍率及所述媒体文件的帧率确定每次跨越的帧个数,从所述起播点开始抽取帧数据发送到所述客户端。
[0124] 本实施例,采用基于帧率的播控方法,帧率是媒体文件(如视频)的一个重要参数,一个媒体文件(如电影节目)的帧率通常是固定的,且有标准对其进行规定。例如,电影一般是每秒24帧,PAL制式每秒25帧,NTSC制式每秒30帧。基于帧率进行流数据的推送,可以根据帧率实现简单稳定的算法。同时这也更符合客户端的播放逻辑,客户端都是以显示单元为单位进行解码播放的,并且对片源没有了CBR(恒定编码率)编码的限制,可以针对节目内容特点,进行CBR或VBR(变化编码率)编码。
[0125] 18、若所述目的子媒体文件有至少一个接续的子媒体文件,根据客户端操作,依次在所述至少一个接续的子媒体文件中读取帧数据向所述客户端发送。
[0126] 具体地,子媒体文件间的接续顺序可以子媒体文件编号确定。
[0127] 接下来,本实施例基于帧率的播放流程如下:
[0128] 基于帧率的正常播放流程如下所述:
[0129] A.接收客户端发送的建立连接请求,请求消息携带客户端欲建立连接的文件ID,检查文件ID对应的媒体文件是否正常,如果文件正常,返回正确消息,并在消息中携带媒体信息(视频类型,音频类型,帧率,DRM标记,码率),媒体信息中的数据按照SDP(会话描述协议)组织;如果文件不存在或异常则回复错误消息并结束连接。
[0130] B.接收客户端发送的播放指示,在播放指示里携带起始时间点,根据起始时间点确定起播点位置。如果起始时间点是零,则直接从头开始播放;如果时间点大于零,则按子媒体文件编号(chunk idx)遍历子媒体文件,检查子媒体文件时间参数中的开始时间(start time)和时长(duration),确定从哪个子媒体文件开始播放。确定子媒体文件后,遍历关键帧索引表,比较起始时间点与关键帧的时间信息,选择时间点最接近的关键帧,然后从帧索引表里查询此关键帧的位置,获得的这个位置就是起播点,确定起播位置后返回正确消息给客户端,否则返回错误并结束播放。
[0131] C.从B步骤获得的起播点起,根据媒体信息段的帧率参数,计算出单位时间内需要发送的帧的个数。然后从帧索引表读取帧的位置信息,根据位置信息读取对应的数据发送到客户端。当前子媒体文件的数据播放完后,根据子媒体文件编号(chunk idx)找到相邻下一个子媒体文件继续播放。
[0132] D.客户端发送停止请求或播放到文件结尾后,流服务器停止发送数据。
[0133] 基于帧率的快进\快退播放流程如下:
[0134] A.客户端与流服务器正常建立连接并播放媒体文件。
[0135] B.接收客户端的快进\快退请求,在请求中携带快进\快退倍速,回复确认消息。
[0136] C.根据帧率和快进\快退倍速,计算需要跨越的帧的个数,确定需要播放的关键帧,并根据关键帧索引表和帧索引表的信息计算对应关键帧的位置,然后以一定的时间间隔读取关键帧的数据发送到客户端。
[0137] D.重复C步骤,直到播放到结尾或客户端请求切换到正常播放。
[0138] 此外,本实施例还支持正常播放与快进\快退间的转换,例如,当正常播放时,收到客户端的快进\快退请求,则在收到客户端的快进\快退请求时间点起进行快进\快退播放;或当快进\快退播放时,收到客户端的正常播放请求,则在收到客户端的正常播放请求时间点起进行正常播放。
[0139] 本实施例的执行主体可以为流媒体服务器等。
[0140] 本实施例提供的流媒体文件播放方法更符合媒体播放逻辑,结合本发明提供的流媒体文件存储格式,本播放方法可以高效的进行各种播控操作。而且,采用本实施例提供的流媒体文件播放方法,在播放媒体文件时,根据文件ID及时间参数确定目的子媒体文件,根据关键帧确定起播点,从TS数据段读取帧数据,本播放方法基于上述媒体文件存储方法存储的媒体文件格式,播放时可以实现更简单、方便、灵活的流媒体播控操作,此外,上述流媒体文件播放方法支持CBR编码和VBR编码,并且可以更精确的控制流数据的推送,从而提高服务质量。
[0141] 与流媒体文件播放方法对应,本实施例还提供一种流媒体服务器,如图11所示,所述流媒体服务器包括:接收单元111、查找单元112、发送回复消息单元113、播放指示接收单元114、比对单元115、确定起播点单元116、发送单元117、接续单元118。
[0142] 接收单元111、用于接收客户端发送的建立连接请求,所述建立连接请求携带有所述客户端欲建立连接的文件ID;
[0143] 查找单元112、用于查找与所述文件ID对应的媒体文件,所述媒体文件分为至少一个子媒体文件;
[0144] 发送回复消息单元113、用于查找到所述文件ID对应的媒体文件后,向所述客户端发送回复消息,所述回复消息携带所述媒体文件的视频类型、音频类型、DRM标记。
[0145] 播放指示接收单元114、用于接收客户端发送的播放指示,所述播放指示中携带起始时间点。
[0146] 比对单元115、用于将客户端选定起始时间点与所述媒体文件的全部子媒体文件的时间参数进行比对,确定目的子媒体文件,所述目的子媒体文件为包含所述客户端选定起始时间点的时间参数对应的子媒体文件;
[0147] 确定起播点单元116、用于从关键帧索引表中选取与所述客户端选定起始时间点最接近的关键帧,在帧索引表里查询所述关键帧在TS数据段的存储位置,所述关键帧在TS数据段的存储位置为起播点;
[0148] 发送单元117、用于根据客户端请求及媒体文件的帧率,从所述起播点开始读取帧数据发送到所述客户端。
[0149] 具体地,所述发送单元还用于:
[0150] 收到客户端播放请求后,根据所述媒体文件的帧率确定每秒应发送的帧个数,从所述起播点开始读取帧数据发送到所述客户端;
[0151] 收到客户端发送快进/快退请求后,根据所述客户端所选快进/快退倍率及所述媒体文件的帧率确定每次跨越的帧个数,从所述起播点开始抽取帧数据发送到所述客户端。
[0152] 接续单元118、用于若所述目的子媒体文件有至少一个接续的子媒体文件,根据客户端操作,依次在所述至少一个接续的子媒体文件中读取帧数据向所述客户端发送。
[0153] 需要说明的是,本实施例的流媒体服务器是流媒体文件播放方法的应用,未尽部分请参阅本实施例流媒体文件播放方法部分。
[0154] 结合本发明提供的流媒体文件存储格式,本实施例提供的流媒体服务器更符合媒体播放逻辑,可以高效的进行各种播控操作。而且,采用本实施例提供的流媒体服务器,在播放媒体文件时,根据文件ID及时间参数确定目的子媒体文件,根据关键帧确定起播点,从TS数据段读取帧数据,本流媒体服务器基于上述媒体文件存储方法存储的媒体文件格式,播放时可以实现更简单、方便、灵活的流媒体播控操作,此外,上述流媒体文件播放方法支持CBR编码和VBR编码,并且可以更精确的控制流数据的推送,从而提高服务质量。
[0155] 本发明实施例可以应用于媒体文件存储及播放时,还可以用于支持流媒体文件存储和播放的系统,能够提高媒体文件的读取速度。
[0156] 本发明实施例的装置、单元、模块都可以是硬件,比如处理器、特定用途电路等。
[0157] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0158] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈