著录项信息
专利名称 | 多媒体文件制作方法、播放方法及系统 |
申请号 | CN201310487869.9 | 申请日期 | 2013-10-17 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2015-04-29 | 公开/公告号 | CN104575547A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G11B27/10 | IPC分类号 | G;1;1;B;2;7;/;1;0查看分类表>
|
申请人 | 深圳市云帆世纪科技有限公司 | 申请人地址 | 广东省深圳市福田区益田路3013号南方国际广场A栋1605室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 深圳市云帆世纪科技有限公司 | 当前权利人 | 深圳市云帆世纪科技有限公司 |
发明人 | 王云刚;钟惟渊 |
代理机构 | 深圳市顺天达专利商标代理有限公司 | 代理人 | 李琴 |
摘要
本发明公开了一种多媒体文件制作方法、播放方法及系统,所述制作方法包括:设置头容器、索引容器、轨道容器和集群容器;获取多媒体数据、索引数据和头文件数据;分别建立一路或多路视频流数据、音频流数据、字幕流数据与一条或多条视频轨、音频轨、字幕轨的一一映射表;将所述头文件数据、索引数据、映射表和多媒体数据分别存储到所述多媒体文件的头容器、索引容器、轨道容器和集群容器,以生成所述多媒体文件。实施本发明的有益效果是,可容纳任意数量和任意编码格式的视频数据、音频数据、字幕流数据等,适应多路视频、音频和字幕的需要;在播放时,可实现灵活控制多媒体文件的播放,实现更多的特色功能;可节省存储空间。
1.一种多媒体文件制作方法,其特征在于,所述方法包括:
设置头容器、索引容器、轨道容器和集群容器;所述头容器、索引容器、轨道容器和集群容器均包括ID字段、尺寸字段和数据字段;
获取多媒体数据、索引数据和头文件数据;其中,所述多媒体数据包括:一路或多路视频流数据、音频流数据和字幕流数据;所述头文件数据包括文件类型和文件版本号识别信息;
分别建立所述一路或多路视频流数据、音频流数据、字幕流数据与一条或多条视频轨、音频轨、字幕轨的一一映射表,所述映射表内的视频轨、音频轨和字幕轨信息包括各路视频流数据、音频流数据和字幕流数据的编码信息;
将所述头文件数据、索引数据、映射表和多媒体数据分别存储到所述多媒体文件的头容器、索引容器、轨道容器和集群容器,以生成所述多媒体文件。
2.根据权利要求1所述的多媒体文件制作方法,其特征在于,所述方法还包括:设置预览视频帧容器,所述预览视频帧容器包括ID字段、尺寸字段和数据字段;获取预览图片帧,并将所述预览图片帧存储到预览视频帧容器,以生成所述多媒体文件。
3.根据权利要求2所述的多媒体文件制作方法,其特征在于,所述方法还包括:设置视频标签容器,所述视频标签容器包括ID字段、尺寸字段和数据字段;获取视频标签数据,并将所述视频标签数据存储到视频标签容器,以生成所述多媒体文件。
4.根据权利要求3所述的多媒体文件制作方法,其特征在于,所述方法还包括:设置位置索引容器,所述位置索引容器包括ID字段、尺寸字段和数据字段;分别建立头容器、索引容器、集群容器、轨道容器、预览视频帧容器和视频标签容器与其存储位置的索引,并将所述索引存储到位置索引容器,以生成所述多媒体文件。
5.根据权利要求1-4任一项所述的多媒体文件制作方法,其特征在于,所述方法还包括:设置媒体元信息容器,所述媒体元信息容器包括ID字段、尺寸字段和数据字段;获取多媒体文件的媒体元信息,包括名称、大小、时长及制作时间,并将其存储到媒体元信息容器,以生成多媒体文件。
6.根据权利要求1所述的多媒体文件制作方法,其特征在于,所述索引数据包括第一索引数据和第二索引数据;
所述第一索引数据包括第一预设时间内的每帧图像与其播放时刻的一一对应关系;
所述第二索引数据包括第二预设时间内的每帧图像与其播放时刻的一一对应关系。
7.根据权利要求1所述的多媒体文件制作方法,其特征在于,所述方法还包括:
将所述集群容器中存储的视频流数据、音频流数据和字幕流数据按照时间长度划分为多个子块,每个子块以数秒为单位;
所述每个子块对应一个播放时码,所述播放时码包括基准时码和偏移时码。
8.根据权利要求1所述的多媒体文件制作方法,其特征在于,所述方法还包括:当与视频流数据、音频流数据、字幕流数据分别对应的视频轨、音频轨、字幕轨有多条时,设定多条视频轨、音频轨和字幕轨的优先级信息,并将所述优先级信息存储在所述轨道容器中。
9.一种多媒体文件播放方法,用于播放采用权利要求1-8任一项所述的方法所制作的多媒体文件,其特征在于,所述方法包括:
加载并解析多媒体文件,获取多媒体文件的基本信息、视频流数据、音频流数据、字幕流数据及编码信息;
根据所解析出的信息,选择相应的解码器对所述多媒体文件进行解码;
播放解码后的多媒体文件。
10.根据权利要求9所述的多媒体文件播放方法,其特征在于,所述播放方法还包括:根据多媒体文件的轨道容器中的优先级信息,选择相应的视频轨、音频轨和字幕轨以播放解码后的多媒体文件。
11.一种多媒体文件播放系统,用于播放采用权利要求1-8任一项所述的方法所制作的多媒体文件,其特征在于,所述系统包括:解析模块、解码模块和播放模块;
所述解析模块用于解析所述多媒体文件,获取多媒体文件的基本信息、视频流数据、音频流数据、字幕流数据及编码信息;
所述解码模块,用于根据所述解析模块解析出的信息,选择相应的解码器对所述多媒体文件进行解码;
所述播放模块,用于播放解码后的多媒体文件。
12.根据权利要求11所述的多媒体文件播放系统,其特征在于,所述播放模块还用于根据多媒体文件的轨道容器中的优先级信息,选择相应的视频轨、音频轨和字幕轨以播放解码后的多媒体文件。
多媒体文件制作方法、播放方法及系统\n技术领域\n[0001] 本发明涉及多媒体数据处理领域,更具体地说,涉及一种多媒体文件制作方法、播放方法及系统。\n背景技术\n[0002] 为了适应存储多媒体的需要,人们设定了不同的多媒体文件格式。基于这些多媒体文件格式,可制作包括视频、音频、字幕等数据的多媒体文件,以实现播放时能够同时播放视频、音频、字幕等。\n[0003] 目前,常见的多媒体文件大多是采用avi、wmv、asf、asx、rm、rmvb等格式制作的。虽然,利用这些多媒体文件格式都可以实现将视频、音频、字幕等数据存储在一个文件中,实现多媒体文件的制作,但制作出的多媒体文件不能适应不同的应用环境。例如,asf是微软为windows98所开发的串流多媒体文件格式,只有在windows系统上能够得到支持。且采用现有技术制作的多媒体文件大多仅有一个视频轨道、一个音频轨道,不能适应多路视频、音频的需要。\n[0004] 另一方面,现有技术的多媒体文件,在播放时不能提供控制功能(例如,提前预览等),不能满足用户的多种需求。\n[0005] 因此,采用现有的多媒体文件格式制作多媒体文件,局限性大,不能满足用户的需求。\n发明内容\n[0006] 本发明要解决的技术问题在于,针对现有技术的上述采用现有的多媒体文件制作方式不能适应多路视频、音频的需要,局限性大,不能满足用户附加需求的缺陷,提供一种多媒体文件制作方法、播放方法及系统。\n[0007] 本发明解决其技术问题所采用的技术方案是:构造一种多媒体文件制作方法,所述方法包括:\n[0008] 设置头容器、索引容器、轨道容器和集群容器;所述头容器、索引容器、轨道容器和集群容器均包括ID字段、尺寸字段和数据字段;\n[0009] 获取多媒体数据、索引数据和头文件数据;其中,所述多媒体数据包括:一路或多路视频流数据、音频流数据和字幕流数据;所述头文件数据包括文件类型和文件版本号识别信息;\n[0010] 分别建立所述一路或多路视频流数据、音频流数据、字幕流数据与一条或多条视频轨、音频轨、字幕轨的一一映射表;\n[0011] 将所述头文件数据、索引数据、映射表和多媒体数据分别存储到所述多媒体文件的头容器、索引容器、轨道容器和集群容器,以生成所述多媒体文件。\n[0012] 优选的,所述方法还包括:设置预览视频帧容器,所述预览视频帧容器包括ID字段、尺寸字段和数据字段;获取预览图片帧,并将所述预览图片帧存储到预览视频帧容器,以生成所述多媒体文件。\n[0013] 优选的,所述方法还包括:设置视频标签容器,所述视频标签容器包括ID字段、尺寸字段和数据字段;获取视频标签数据,并将所述视频标签数据存储到视频标签容器,以生成所述多媒体文件。\n[0014] 优选的,所述方法还包括:设置位置索引容器,所述位置索引容器包括ID字段、尺寸字段和数据字段;分别建立头容器、索引容器、集群容器、轨道容器、预览视频帧容器和视频标签容器与其存储位置的索引,并将所述索引存储到位置索引容器,以生成所述多媒体文件。\n[0015] 优选的,所述方法还包括:设置媒体元信息容器,所述媒体元信息容器包括ID字段、尺寸字段和数据字段;获取多媒体文件的媒体元信息,包括名称、大小、时长及制作时间,并将其存储到媒体元信息容器,以生成多媒体文件。\n[0016] 优选的,所述索引数据包括第一索引数据和第二索引数据;\n[0017] 所述第一索引数据包括第一预设时间内的每帧图像与其播放时刻的一一对应关系;\n[0018] 所述第二索引数据包括第二预设时间内的每帧图像与其播放时刻的一一对应关系。\n[0019] 优选的,所述方法还包括:\n[0020] 将所述集群容器中存储的视频流数据、音频流数据和字幕流数据按照时间长度划分为多个子块,每个子块以数秒为单位;\n[0021] 所述每个子块对应一个播放时码,所述播放时码包括基准时码和偏移时码。\n[0022] 优选的,所述方法还包括:当与视频流数据、音频流数据、字幕流数据分别对应的视频轨、音频轨、字幕轨有多条时,设定多条视频轨、音频轨和字幕轨的优先级信息,并将所述优先级信息存储在所述轨道容器中。\n[0023] 一种多媒体文件播放方法,用于播放采用上述方法制作的多媒体文件,所述方法包括:\n[0024] 加载并解析多媒体文件;\n[0025] 根据所解析出的信息,选择相应的解码器对所述多媒体文件进行解码;\n[0026] 播放解码后的多媒体文件。\n[0027] 优选的,所述播放方法还包括:根据多媒体文件的轨道容器中的优先级信息,选择相应的视频轨、音频轨和字幕轨以播放解码后的多媒体文件。\n[0028] 一种多媒体文件播放系统,用于播放采用上述方法制作的多媒体文件,所述系统包括:解析模块、解码模块和播放模块;\n[0029] 所述解析模块用于解析所述多媒体文件;\n[0030] 所述解码模块,用于根据所述解析模块解析出的信息,选择相应的解码器对所述多媒体文件进行解码;\n[0031] 所述播放模块,用于播放解码后的多媒体文件。\n[0032] 优选的,所述播放模块还用于根据多媒体文件的轨道容器中的优先级信息,选择相应的视频轨、音频轨和字幕轨以播放解码后的多媒体文件。\n[0033] 实施本发明的多媒体文件制作方法、播放方法及系统,具有以下有益效果:可容纳任意数量和任意编码格式的视频数据、音频数据、字幕流数据、索引数据、预览帧数据、视频标签数据及控制信息、自定义数据包等,适应多路视频、音频和字幕的需要;在播放时,可实现灵活控制多媒体文件的播放,实现更多的特色功能(例如预览还未下载的视频、展示视频标签等);能够实现快速定位及可变粒度索引;采用模块化的层次结构(头容器和数据容器结构),可任意扩展某个结构;由于有预览图片帧,能为网络状况不佳时提供更好的播放体验,在缓冲时,可通过预览视频帧容器获得未下载数据段的视频图像预览;视频标签可向用户展示更多的内容;由于在制作多媒体文件时通过轨道容器记录了各个数据流的编码信息,因此,本发明实施例的多媒体文件可以容纳几乎所有编码类型的视频、音频及字幕流;\n且可节省存储空间。\n附图说明\n[0034] 下面将结合附图及实施例对本发明作进一步说明,附图中:\n[0035] 图1是本发明实施例的多媒体文件的结构示意图;\n[0036] 图2是本发明实施例的多媒体文件制作方法的流程图;\n[0037] 图3是本发明实施例的多媒体文件播放方法的流程图;\n[0038] 图4是本发明实施例的多媒体文件播放方法的详细流程图;\n[0039] 图5是本发明实施例的多媒体文件播放系统的结构图。\n具体实施方式\n[0040] 为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。\n[0041] 按照本发明实施例的多媒体文件制作方法制作的多媒体文件可容纳任意数量和任意编码格式的视频数据、音频数据、字幕流数据、索引数据、预览帧数据和视频标签数据等。在播放本发明实施例的多媒体文件制作方法制作的多媒体文件时,可灵活控制多媒体文件的播放,实现更多的特色功能(例如预览还未下载的视频、展示视频标签等)。\n[0042] 参见图1,为本发明实施例的多媒体文件的结构示意图。本发明实施例的多媒体文件由若干个存储有数据的容器(box)组成。每个box的结构都是以扩展二进制多媒体语言(EBML,Extensible Binary Meta Language)的形式进行存储。采用EBML形式的好处是可以节省存储空间。例如,对64位整数变量表示的数据进行编码存入时,如果变量数据为5,则编码结果为0x85,存储时只占一个字节。若以普通方式,编码结果将会是\n0x0000000000000005,存储时占用8个字节。\n[0043] 在本发明的实施例中一个多媒体文件包括:“Header”类型的box,用于存储文件类型和文件版本号识别信息;“Data”类型的box,用于存储数据信息。其中,“Data”类型的box即数据容器20(Data box),包括七个子box。\n[0044] “Header”类型的box即头容器10(Header box)以及每个子box均包括ID字段、尺寸(size)字段和数据(data)字段。其中,ID和size使用不定长整数表示法。data所占的字节数和size相关,例如,size为0x08,则data所占的字节数即为8字节。在本发明的实施例中,ID字段和size字段总是被编码成最短的表示方式以节约存储空间,例如,1被编码成0x81,而不会用0x4001。此外,由于本发明实施例中采用EBML形式,易于实现扩展,因为,EBML本身是box结构的,data(数据)字段中可以扩展data box的结构。\n[0045] 头容器10(Header box)中的ID字段固定不变,例如,其值可设定为0x1B514D56。当播放端播放多媒体文件,解析多媒体文件时,根据头容器10中的ID字段即可加载相应的解析器组件进行播放解析。由此,ID字段的信息即可标识本发明实施例的多媒体文件的文件类型。\n[0046] 头容器10(Header box)中的data字段用于标识本发明实施例的多媒体文件的文件版本号识别信息。例如,data字段可为0x0001,以标识文件版本号识别信息。文件版本号识别信息是随着多媒体文件制作方法的改变而改变的,例如,若制作方法改变,则版本号会递增。当播放端播放多媒体文件,解析多媒体文件时,根据版本号可加载相应的解析器组件进行播放解析。\n[0047] 本发明实施例的多媒体文件的数据容器20(Data box)包括的七个子box分别是位置索引容器201、媒体元信息容器202、轨道容器203、集群容器204、索引容器205、预览视频帧容器206、视频标签容器207。本发明实施例的ID字段用于标识不同的容器,例如,可设置ID字段为0x4287,则代表位置索引容器201。应理解,在本发明的实施例中数据容器20包括的七个子容器并不是全部都是必须的,可根据实际需要进行设置。\n[0048] 在本发明的实施例中,可依次设置头容器10、位置索引容器201、媒体元信息容器\n202、轨道容器203、集群容器204、索引容器205、预览视频帧容器206、视频标签容器207。也可将头容器10设置于最前,而数据容器20则按照其他的规则进行设置,不必按照前述顺序依次设置。\n[0049] 其中,位置索引容器201用于存储数据容器20(Data box)的各个子容器的索引。该索引包括各个子容器及其存储位置的一一对应关系。由此,可使得不需要逐个解析即可获知数据容器20(Data box)包含的所有子容器及其存储位置。另外,通过位置索引容器201存储索引信息,可实现灵活增加新的容器,例如,根据索引信息中存储的位置,可方便的在最后一个子容器(例如,预览视频帧容器206)的存储位置之后新增容器。\n[0050] 媒体元信息容器202用于存储至少包括多媒体文件的名称、大小和时长的媒体元信息。具体的,多媒体文件的名称是根据命名产生的;多媒体文件的大小是通过统计各个容器存储的数据的大小获得的;多媒体文件的时长是根据视频流、音频流或字幕流的长度获得的。例如,若多媒体文件具体指的是电影,则媒体元信息容器可存储电影的名称、大小和时长。此外,存储的媒体元信息还包括多媒体文件的制作时间。例如,多媒体文件是“2012-\n10-0115:10:25”被制作成功的。\n[0051] 轨道容器203用于存储视频的视频轨、音频轨和字幕轨信息。具体的,视频轨、音频轨和字幕轨是与视频数据流、音频数据流和字幕数据流一一对应的。此外,在轨道容器203中还存储有优先级信息,该优先级信息是指:当与视频数据、音频数据、字幕数据分别对应的视频轨、音频轨、字幕轨有多条时,设定的多条视频轨、音频轨和字幕轨的优先级。该优先级信息可以根据地理位置信息设定。例如:设定多媒体文件在中国区域内播放时,普通话的音频轨、简体中文的字幕轨的优先级为最高。此外,该优先级信息也可由用户根据需求自行设定。\n[0052] 集群容器204用于存储视频流数据、音频流数据和字幕流数据。在本发明的实施例中,集群容器204存储的视频流数据、音频流数据和字幕流数据均被按照时间长度划分为多个子块。每个子块以数秒为单位,即每个子块包括数秒的视频流、音频流和字幕流数据。\n[0053] 每个子块对应一个播放时码。播放时码包括基准时码和偏移时码。基准时码,用于设置时间位置的基准。偏移时码用于设置时码补偿。具体的,将每个子块的第1秒的第一帧对应的时间作为每个子块的基准时码,将每个子块中除第1秒的第一帧图像以外的每帧图像的对应时间作为偏移时码。\n[0054] 例如,对于一个多媒体文件,其每个子块的时长为200秒,每秒放映的帧数为25帧,则需要记录每帧图像(包括视频流数据、音频流数据和字幕流流数据等)对应的播放时刻数据(单位为毫秒)。按照现有技术:存储每帧图像的对应播放时刻数据时,采用的字节数固定为8。\n[0055] 参见表1,展示了按照现有技术的存储方式,实际存储时每秒的每帧图像的对应播放时刻。\n[0056] 表1\n[0057]\n 第一帧 第二帧 第三帧 ……\n第1秒 0毫秒 40毫秒 80毫秒 ……\n第2秒 1000毫秒 1040毫秒 1080毫秒 ……\n第3秒 2000毫秒 2040毫秒 2080毫秒 ……\n…… …… …… …… ……\n第201秒 200000毫秒 200040毫秒 200080毫秒 ……\n第401秒 400000毫秒 400040毫秒 400080毫秒 ……\n…… …… …… …… ……\n[0058] 由于按照现有技术,播放时刻数据的字节数固定为8字节,将前200秒作为第一个子块,则存储该子块播放时刻数据的字节数总共为200*25*8=40000字节,存储下一个子块的播放时刻数据同样占40000字节。\n[0059] 而按照本发明的方式:将每个子块的第1秒的第一帧的对应播放时刻作为每个子块的基准时码,将每个子块中除第1秒的第一帧图像以外的每帧图像的对应播放时刻作为偏移时码。则参见表2,展示了按照本发明实施例进行存储时每秒的每帧图像的对应播放时刻。\n[0060] 表2\n[0061]\n 第一帧 第二帧 第三帧 ……\n第1秒 0毫秒 40毫秒 80毫秒 ……\n第2秒 1000毫秒 1040毫秒 1080毫秒 ……\n…… …… …… …… ……\n第201秒 0毫秒 40毫秒 80毫秒 ……\n第202秒 1000毫秒 1040毫秒 1080毫秒 ……\n…… …… …… …… ……\n第401秒 0毫秒 40毫秒 80毫秒 ……\n第402秒 1000毫秒 1040毫秒 1080毫秒 ……\n…… …… …… …… ……\n[0062] 按照本发明实施例的方式,第一个子块的第200秒的第25帧的对应时间为:199960毫秒。则存储播放时刻数据时,最多只需三个字节的存储空间即可。若将前200秒作为第一个子块,则存储该子块播放时刻数据的字节数最多为200*25*3=15000字节。存储下一个子块的播放时刻数据同样最多占15000字节。因此,相比于现有技术,本发明实施例中将播放时码分为基准时码和偏移时码,对其分别进行存储,大大节省了存储空间。当播放多媒体文件,解析多媒体文件时,将每个子块的基准时码和偏移时码相加即可得到每秒的每帧图像的对应播放时刻。\n[0063] 索引容器205用于存储多媒体文件的索引数据。该索引数据包括多媒体文件的每帧图像与其播放时刻的一一对应关系。\n[0064] 优选的,在本发明的实施例中,索引容器205可分为第一索引容器和第二索引容器。其中,第一索引容器用于存储多媒体文件的第一索引数据。该第一索引数据包括预设时间内的每帧图像与其播放时刻的一一对应关系。该第一索引数据用于为多媒体文件提供预设时间(例如,多媒体文件的前10分钟)的索引定位。\n[0065] 第二索引容器用于存储除了第一索引数据以外的第二索引数据。第二索引数据包括多媒体文件中除预设时间外的每帧图像与其播放时刻的一一对应关系。该第二索引数据用于为多媒体文件提供除预设时间外的索引定位。\n[0066] 在本发明的实施例中,多媒体文件的索引数据的索引粒度可调。索引粒度可调是指可将每帧图像与其播放时刻的对应关系进行调整。例如,可调整使得索引数据中包括第1帧、第5帧、第10帧等图像与其播放时刻的对应关系;或使得索引数据中包括第1帧、第10帧、第20帧等图像与其播放时刻的对应关系。\n[0067] 通过将多媒体文件的索引数据分为第一索引数据和第二索引数据分别由第一索引容器和第二索引容器存储,可实现快速索引定位。例如,全部索引数据的大小为2M,第一索引数据为前10分钟的索引数据,其大小为100K。则第一索引数据可快速被下载,从而实现在播放多媒体文件时,第一索引数据会很快的被下载并解析。由此,将实现前10分钟的多媒体文件快速正常的播放,减少用户的等待时间,提升用户的体验。\n[0068] 预览视频帧容器206用于存储多媒体文件中的预览图片帧。当网络不佳,播放正在缓冲时,这些图片可提供未下载区域的视频画面预览,提高用户体验。\n[0069] 视频标签容器207用于存储多媒体文件的视频标签数据。视频标签数据是通过编辑合并到多媒体文件中的。具体的,视频标签数据包括与当前视频画面相关的提示信息、广告信息等。例如,当前视频画面展示一个人物,则视频标签数据可包括人物衣服相对应的广告信息。播放多媒体文件时,视频标签数据将被显示于视频画面上。\n[0070] 参见图2,为本发明实施例的多媒体文件制作方法的流程图。该方法包括以下步骤:\n[0071] 步骤S101、设置头容器、索引容器、轨道容器和集群容器。\n[0072] 具体的,头容器、索引容器、轨道容器和集群容器均包括ID字段、尺寸(size)字段和数据(data)字段。ID字段用于标识不同的容器。size字段用于标识data字段的长度。data字段用于存储数据。\n[0073] 步骤S102、获取多媒体数据、索引数据和头文件数据。\n[0074] 其中,多媒体数据包括:一路或多路视频流数据、音频流数据和字幕流数据。头文件数据包括文件类型和文件版本号识别信息。字幕流数据包括外部字幕数据。\n[0075] 索引数据包括第一索引数据和第二索引数据;第一索引数据包括第一预设时间内(例如,多媒体文件的前10分钟)的每帧图像与其播放时刻的一一对应关系;第二索引数据包括第二预设时间内(例如,多媒体文件的第11分钟至第120分钟)的每帧图像与其播放时刻的一一对应关系。此外,索引数据也可仅由整个多媒体文件的索引数据构成,例如,多媒体文件的时长为120分钟,则索引数据包括120分钟的每帧图像与其播放时刻的一一对应关系。采用将索引数据分为第一索引数据和第二索引数据的方式,可实现播放多媒体文件时的快速索引定位及播放,提升用户的体验。\n[0076] 步骤S103、分别建立一路或多路视频流数据、音频流数据、字幕流数据与一条或多条视频轨、音频轨、字幕轨的一一映射表。\n[0077] 该映射表即包括了视频轨、音频轨和字幕轨信息。各路视频流数据、音频流数据和字幕流数据对应一条视频轨、音频轨和字幕轨。视频轨、音频轨和字幕轨信息包括各路视频流数据、音频流数据和字幕流数据的流类型、码率、音频采样率、编码信息等。\n[0078] 步骤S104、将头文件数据、索引数据、映射表和多媒体数据分别存储到多媒体文件的头容器、索引容器、轨道容器和集群容器,以生成多媒体文件。\n[0079] 将多媒体数据存储到集群容器时,各路视频流数据、音频流数据和字幕流数据的时间戳保持同步。\n[0080] 本发明实施例的多媒体文件制作方法还包括:设置预览视频帧容器,预览视频帧容器包括ID字段、尺寸字段和数据字段;获取预览图片帧,并将预览图片帧存储到预览视频帧容器,以生成多媒体文件。\n[0081] 本发明实施例的多媒体文件制作方法还包括:设置视频标签容器,视频标签容器包括ID字段、尺寸字段和数据字段;获取视频标签数据,并将视频标签数据存储到视频标签容器,以生成多媒体文件。\n[0082] 本发明实施例的多媒体文件制作方法还包括:设置位置索引容器,位置索引容器包括ID字段、尺寸字段和数据字段;分别建立头容器、索引容器、集群容器、轨道容器、预览视频帧容器和视频标签容器与其存储位置的索引,并将索引存储到位置索引容器,以生成多媒体文件。\n[0083] 本发明实施例的多媒体文件制作方法还包括:设置媒体元信息容器,媒体元信息容器包括ID字段、尺寸字段和数据字段;获取多媒体文件的名称、大小、时长及制作时间等媒体元信息,并将其存储到媒体元信息容器,以生成多媒体文件。\n[0084] 本发明实施例的多媒体文件制作方法还包括:将集群容器中存储的视频数据、音频数据和字幕数据按照时间长度划分为多个子块,每个子块以数秒为单位;每个子块对应一个播放时码,播放时码包括基准时码和偏移时码。\n[0085] 本发明实施例的多媒体文件制作方法还包括:当与视频流数据、音频流数据、字幕流数据分别对应的视频轨、音频轨、字幕轨有多条时,设定多条视频轨、音频轨和字幕轨的优先级信息,并将优先级信息存储在轨道容器中。\n[0086] 在本发明实施例的多媒体文件制作方法中,多媒体数据中的一路或多路视频流数据和音频流数据是经过解码、缩放、裁剪和编码处理的。由此,本发明实施例的多媒体文件制作方法可实现多媒体文件的有损制作。应理解,也可不对多媒体数据进行解码、缩放、裁剪和编码处理,以实现多媒体文件的无损制作。本发明的实施例对此不作限制。\n[0087] 应理解,本发明实施例的上述步骤S101-S104的顺序可变换。\n[0088] 参见图3,为本发明实施例的多媒体播放方法的流程图。该播放方法包括:\n[0089] 步骤S201、加载并解析多媒体文件;\n[0090] 步骤S202、根据所解析出的信息,选择相应的解码器对所述多媒体文件进行解码;\n[0091] 步骤S203、播放解码后的多媒体文件。\n[0092] 该播放方法还包括:根据多媒体文件的轨道容器中的优先级信息,选择相应的视频轨、音频轨和字幕轨以播放解码后的多媒体文件。\n[0093] 具体的,参见图4,为本发明实施例的多媒体文件播放方法的详细流程图。在步骤S301,加载多媒体文件。该多媒体文件是采用本发明实施例的多媒体文件制作方法制作的多媒体文件。在步骤S302,解析多媒体文件,获取多媒体文件的基本信息、视频流数据、音频流数据、字幕流数据及编码信息。具体的,多媒体文件的基本信息是指存储在头容器中的文件类型及文件版本号识别信息、存储在媒体元信息容器中的媒体元信息。视频流数据、音频流数据和字幕流数据是从集群容器获取的。编码信息是从轨道容器中获取的。在步骤S303,判断解析出的信息中是否有视频流数据,若没有则执行步骤S305;若有则在步骤S304中根据编码信息中的视频编码信息加载对应解码器,对视频流数据进行解码并执行步骤S305。\n在步骤S305中,判断是否有音频流数据,若没有则执行步骤S307;若有则在步骤S306中根据编码信息中的音频编码信息加载对应解码器,对音频流数据进行解码并执行步骤S307。在步骤S307中,判断是否有字幕数据流,若没有则执行步骤S309;若有则在步骤S308中加载字幕工具(例如,VSFilter),以在播放时显示字幕。在步骤S309中,播放多媒体文件。\n[0094] 在播放多媒体文件的过程中,可根据用户的操作来预览和展示预览帧,例如,可将鼠标移至视频播放进度条上预览视频帧,也可在出现缓冲或暂停时,通过图片墙的形式展示预览图片帧。\n[0095] 此外,在播放的过程中,可将视频标签显示在相关视频画面上。\n[0096] 参见图5,为本发明实施例的多媒体文件播放系统的结构图。该系统包括:解析模块301、解码模块302和播放模块303。\n[0097] 解析模块301用于加载并解析多媒体文件,获取多媒体文件的头容器中的头文件数据及轨道容器中的映射表信息。\n[0098] 具体的,由于本发明实施例的多媒体文件包括Header box和Data box。且每个box的结构都是以扩展二进制多媒体语言(EBML,Extensible Binary Meta Language)的形式进行存储。若一个多媒体文件为:\n[0099] 1B514D568F428284716D766242……\n[0100] 则在解析的时候,首先解析第一个EBML元素(即第一个容器:头容器):读取一字节\n0x1B,根据EBML规则解析后此项数据占四个字节,取出剩下的三个字节,即0x1B514D56是头容器的ID,值为0x0B514D56。接下来再读取一字节0x8F,根据EBML规则解析后此项数据占一个字节,值为0x08,即头容器的数据字段的size为0x08,占八个字节,剩下的八个字节即是数据字段。解析完成第一个EBML元素后,依次解析后面的元素,以获得多媒体文件中存储的索引、索引数据、视频流数据、音频流数据、字幕流数据等。\n[0101] 解码模块302,用于根据解析模块301解析出的信息,选择相应的解码器对多媒体文件进行解码。\n[0102] 具体的,由于本发明实施例的多媒体文件中的轨道容器中的视频轨、音频轨和字幕轨信息包括各路视频流数据、音频流数据和字幕流数据的编码信息,因此,可根据解析出的编码信息,采用相应的解码器对多媒体文件进行解码。由此,本发明实施例的多媒体文件可存储不同编码格式(例如MPEG-1、MPEG-2、MPEG-4、MPEG-4Part10(AVC/H.264)、Media Video、RealVideo、AC-3、AAC等)编码的视频流数据、音频流数据和字幕流数据等。\n[0103] 播放模块303,用于播放解码后的多媒体文件。播放模块303还用于根据多媒体文件的轨道容器中的优先级信息,选择相应的视频轨、音频轨和字幕轨以播放解码后的多媒体文件。播放模块303播放解码后的多媒体文件包括:播放图像帧(包括视频、音频和字幕)、预览图片帧、视频标签等。\n[0104] 本发明实施例的多媒体文件制作方法将一路或多路视频流数据、音频流数据、字幕流数据、索引数据、预览帧数据和视频标签数据进行合并,生成多媒体文件。其中,一路或多路视频流数据、音频流数据和字幕流数据是从本地存储器或网络获取的;索引数据和预览帧数据根据获取的视频流数据、音频流数据和字幕流数据生成,具体的生成方法为现有技术,在此不再赘述;视频标签数据可从本地存储器或网络获取,也可在制作时编辑产生。\n[0105] 多媒体文件播放系统获取多媒体文件,并进行解析、解码等操作后,将多媒体文件进行播放。采用本发明实施例的多媒体文件制作方法制作的多媒体文件可包含多路视频数据,音频数据与字幕数据;字幕流数据与音视频数据流混流存在在同一块区域,用户可任意切换字幕流;能够实现快速定位及可变粒度索引;采用模块化的层次结构(头容器和数据容器结构),可任意扩展某个结构;由于有预览图片帧,能为网络状况不佳时提供更好的播放体验,在缓冲时,可通过预览视频帧容器获得未下载数据段的视频图像预览;视频标签可向用户展示更多的内容。且由于本发明实施例的多媒体文件中的各个容器均包括ID字段、size字段和数据字段,因此,通过每个容器的ID字段即可标识容器的开始,由此,解析的时候可采用CRC-32校验以保证每部分数据的完整性,使得本发明实施例的多媒体文件在无索引、未下载完成、数据损坏的情况下仍可以播放。\n[0106] 由于在制作多媒体文件时通过轨道容器记录了各个数据流的编码信息,因此,本发明实施例的多媒体文件可以容纳几乎所有编码类型的视频、音频及字幕流。播放解析时,采用相应的解码器进行解析即可实现正常播放。\n[0107] 此外,由于本发明实施例的多媒体文件采用EBML,而EBML的size字段可为64位,因此,可突破文件大小最大4GB的限制。且由于本发明实施例的多媒体文件的播放时码采用了基准时码和偏移时码的方式,进一步节省了存储空间,使得存储同等码率、同等质量的多媒体数据时,本发明实施例的多媒体文件能够比现有技术节省10M-30M的空间。\n[0108] 上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
法律信息
- 2021-09-24
未缴年费专利权终止
IPC(主分类): G11B 27/10
专利号: ZL 201310487869.9
申请日: 2013.10.17
授权公告日: 2017.12.22
- 2017-12-22
- 2015-05-27
实质审查的生效
IPC(主分类): G11B 27/10
专利申请号: 201310487869.9
申请日: 2013.10.17
- 2015-04-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-04-09
|
2007-11-22
| | |
2
| |
2009-09-23
|
2008-03-21
| | |
3
| |
2008-09-10
|
2008-04-21
| | |
4
| |
2008-07-23
|
2007-01-18
| | |
5
| |
2009-02-18
|
2008-01-28
| | |
6
| |
2012-07-18
|
2010-11-02
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |