著录项信息
| 专利名称 | 媒体数据的重组方法和装置 |
| 申请号 | CN201310367305.1 | 申请日期 | 2013-08-21 |
| 法律状态 | 权利终止 | 申报国家 | 中国 |
| 公开/公告日 | 2013-12-11 | 公开/公告号 | CN103442259A |
| 优先权 | 暂无 | 优先权号 | 暂无 |
| 主分类号 | H04N21/242 | IPC分类号 | H;0;4;N;2;1;/;2;4;2;;;H;0;4;N;2;1;/;4;3;4查看分类表>
|
| 申请人 | 杭州浦禾通信技术有限公司 | 申请人地址 | 浙江省杭州市滨江区长河路475号和瑞科技国际广场S4楼805室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
| 权利人 | 杭州浦禾通信技术有限公司 | 当前权利人 | 杭州浦禾通信技术有限公司 |
| 发明人 | 黄旭强;王斌;沈东栋 |
| 代理机构 | 北京超凡志成知识产权代理事务所(普通合伙) | 代理人 | 吴开磊 |
摘要
本发明公开了一种媒体数据的重组方法和装置。其中,该方法包括:对节目的传输流进行解复用,得到节目的原始媒体数据;其中,原始媒体数据包括:视频数据;按照本地时钟对原始媒体数据中的PCR进行重置;按照将视频数据中的I帧作为切片中视频数据的起始帧的方式,对重置PCR后的原始媒体数据进行切片;为每个切片设置索引信息;将设置索引信息后的切片作为节目的重组数据存储。本发明解决了不同的客户端的操作系统对流媒体的起始数据格式要求不同引起的流媒体无法正常播放的问题,提升了在多客户端间实现流媒体直播服务的性能。
1.一种媒体数据的重组方法,其特征在于,包括:
对节目的传输流进行解复用,得到所述节目的原始媒体数据;其中,所述原始媒体数据包括:视频数据;
按照本地时钟对所述原始媒体数据中的节目参考时钟PCR进行重置;
按照将所述视频数据中的I帧作为切片中视频数据的起始帧的方式,对重置所述PCR后的所述原始媒体数据进行切片;
为每个切片设置索引信息;
将设置所述索引信息后的切片作为所述节目的重组数据存储;
其中,在对重置所述PCR后的所述原始媒体数据进行切片时,每隔一个时间单位检查当前视频帧是否为I帧,如果是I帧,则切片;否则等到I帧时再切片,以使每个切片的起始帧均为I帧。
2.根据权利要求1所述的方法,其特征在于,所述对节目的传输流进行解复用包括:
获取节目的传输流;
根据所述传输流遵循的传输规范协议对所述传输流进行解复用。
3.根据权利要求1所述的方法,其特征在于,所述为每个切片设置索引信息包括:
按照网络浏览器支持的播放格式设置每个切片的索引信息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
接收终端对所述节目的获取请求;
验证所述终端是否合法;
如果是,将所述节目的重组数据发送给所述终端。
5.一种媒体数据的重组装置,其特征在于,包括:
解复用模块,用于对节目的传输流进行解复用,得到所述节目的原始媒体数据;其中,所述原始媒体数据包括:视频数据;
参考时钟重置模块,用于按照本地时钟对所述解复用模块解复用得到的所述原始媒体数据中的节目参考时钟PCR进行重置;
数据切片模块,用于按照将所述视频数据中的I帧作为切片中视频数据的起始帧的方式,对所述参考时钟重置模块重置所述PCR后的所述原始媒体数据进行切片;
索引设置模块,用于为所述数据切片模块得到的每个切片设置索引信息;
数据存储模块,用于将所述索引设置模块设置所述索引信息后的切片作为所述节目的重组数据存储;
其中,在对重置所述PCR后的所述原始媒体数据进行切片时,每隔一个时间单位检查当前视频帧是否为I帧,如果是I帧,则切片;否则等到I帧时再切片,以使每个切片的起始帧均为I帧。
6.根据权利要求5所述的装置,其特征在于,所述解复用模块包括:
传输流获取单元,用于获取节目的传输流;
解复用单元,用于根据所述传输流获取单元获取的所述传输流遵循的传输规范协议对所述传输流进行解复用。
7.根据权利要求5所述的装置,其特征在于,所述索引设置模块包括:
索引设置单元,用于按照网络浏览器支持的播放格式设置所述数据切片模块得到的每个切片的索引信息。
8.根据权利要求5至7中任一项所述的装置,其特征在于,所述装置还包括:
请求接收模块,用于接收终端对所述节目的获取请求;
验证模块,用于验证所述终端是否合法;
数据发送模块,用于如果所述验证模块的验证结果为是,将所述数据存储模块存储的所述节目的重组数据发送给所述终端。
媒体数据的重组方法和装置\n技术领域\n[0001] 本发明涉及通信领域,具体地,涉及一种媒体数据的重组方法和装置。\n背景技术\n[0002] 在MPEG(Moving Picture Experts Group,动态图像专家组)标准中,编解码设备在处理TS(Transport Stream,传输流,也可简称为TS流)时,都有一个基础的时间参考,这个时间参考就是PCR(Program Clock Reference,节目参考时钟)。一般来说,PCR在编码端产生,需要准确的传输到解码端,供解码使用。PCR对于视频、音频的质量和相互延时都非常关键。但是TS流在传输过程中,每经过一次设备的处理,由于码率以及TS包之间相互关系的变化,都会对PCR的抖动和间隔产生比较大的影响,从而影响终端的正常解码。\n[0003] 流媒体在传输的过程中,是以各个帧的形式进行传输的,其中包括:I帧(图像)、P帧或B帧;其中,I帧是帧内编码帧,其是靠尽可能去除图像空间冗余信息来压缩传输数据量的帧内编码图像;P帧是向前预测编码图像,其通过充分降低图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;B帧是双向预测编码图像,其既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧;一般地,I帧压缩效率最低,P帧较高,B帧最高。\n服务器端开始接收节目数据时,收到的第一个视频帧可能是上述三类帧中的任何一类数据。如图1所示的视频帧的传输示意图,其中,各个帧因为传输过程中的各种处理操作,其位置可能会发生变化,如图1中的箭头所示。\n[0004] 传统的流媒体方案中,客户端需要按照特定的媒体处理软件和流媒体服务器端进行通信,才能完成流媒体播放的功能;而很多实际应用中,尤其是使用智能手机作为客户端时,往往由于操作系统和平台的差异,安装客户端软件变得不可取。\n[0005] 不同的客户端的操作系统对流媒体的起始数据格式要求不同;如,Android(安卓)、iOS(网际操作系统)、windows phone等操作系统,其中,iOS系统要求流媒体的起始数据帧必须是I帧。\n[0006] 针对不同的客户端的操作系统对流媒体的起始数据格式要求不同引起的流媒体无法正常播放的问题,目前尚未提出有效的解决方案。\n发明内容\n[0007] 本发明实施例的目的在于提供一种媒体数据的重组方法和装置,用以解决不同的客户端的操作系统对流媒体的起始数据格式要求不同引起的流媒体无法正常播放的问题。\n[0008] 根据本发明实施例的一方面,提供了一种媒体数据的重组方法,包括:对节目的传输流进行解复用,得到节目的原始媒体数据;其中,原始媒体数据包括:视频数据;按照本地时钟对原始媒体数据中的PCR进行重置;按照将视频数据中的I帧作为切片中视频数据的起始帧的方式,对重置PCR后的原始媒体数据进行切片;为每个切片设置索引信息;将设置索引信息后的切片作为节目的重组数据存储;\n[0009] 其中,在对重置所述PCR后的所述原始媒体数据进行切片时,每隔一个时间单位检查当前视频帧是否为I帧,如果是I帧,则切片;否则等到I帧时再切片,以使每个切片的起始帧均为I帧。\n[0010] 优选地,上述对节目的传输流进行解复用包括:获取节目的传输流;根据传输流遵循的传输规范协议对该传输流进行解复用。\n[0011] 优选地,上述按照将视频数据中的I帧作为切片中视频数据的起始帧的方式,对重置PCR后的原始媒体数据进行切片包括:查找原始媒体数据中的视频数据;将查找到的视频数据中的第一个I帧及第一个I帧之后的数据确定为有效数据;按照设定的时间单位对有效数据进行切片,并使每个切片内的视频数据均以I帧作为起始帧,且前后两个切片的媒体数据连续。\n[0012] 优选地,上述为每个切片设置索引信息包括:按照网络浏览器支持的播放格式设置每个切片的索引信息。\n[0013] 优选地,上述方法还包括:接收终端对节目的获取请求;验证终端是否合法;如果是,将节目的重组数据发送给终端。\n[0014] 根据本发明实施例的另一方面,提供了一种媒体数据的重组装置,包括:解复用模块,用于对节目的传输流进行解复用,得到节目的原始媒体数据;其中,原始媒体数据包括:\n视频数据;参考时钟重置模块,用于按照本地时钟对解复用模块解复用得到的原始媒体数据中的PCR进行重置;数据切片模块,用于按照将视频数据中的I帧作为切片中视频数据的起始帧的方式,对参考时钟重置模块重置PCR后的原始媒体数据进行切片;索引设置模块,用于为数据切片模块得到的每个切片设置索引信息;数据存储模块,用于将索引设置模块设置索引信息后的切片作为节目的重组数据存储;\n[0015] 其中,在对重置所述PCR后的所述原始媒体数据进行切片时,每隔一个时间单位检查当前视频帧是否为I帧,如果是I帧,则切片;否则等到I帧时再切片,以使每个切片的起始帧均为I帧。\n[0016] 优选地,上述解复用模块包括:传输流获取单元,用于获取节目的传输流;解复用单元,用于根据传输流获取单元获取的传输流遵循的传输规范协议对上述传输流进行解复用。\n[0017] 优选地,上述数据切片模块包括:视频数据查找单元,用于查找原始媒体数据中的视频数据;有效数据确定单元,用于将视频数据查找单元查找到的视频数据中的第一个I帧及第一个I帧之后的数据确定为有效数据;切片单元,用于按照设定的时间单位对有效数据确定单元确定的有效数据进行切片,并使每个切片内的视频数据均以I帧作为起始帧,且前后两个切片的媒体数据连续。\n[0018] 优选地,上述索引设置模块包括:索引设置单元,用于按照网络浏览器支持的播放格式设置数据切片模块得到的每个切片的索引信息。\n[0019] 优选地,上述装置还包括:请求接收模块,用于接收终端对节目的获取请求;验证模块,用于验证终端是否合法;数据发送模块,用于如果验证模块的验证结果为是,将数据存储模块存储的节目的重组数据发送给终端。\n[0020] 本发明实施例通过对传输流进行重组,保证了各个切片中视频数据的起始帧均为I帧,便于不同操作系统对其进行解析,同时,采用为每个切片设置索引信息的方式,使接收端能够依据该索引信息对乱序后的切片进行重新排序,保证了节目的正常播放,因此解决了不同的客户端的操作系统对流媒体的起始数据格式要求不同引起的流媒体无法正常播放的问题,提升了在多客户端间实现流媒体直播服务的性能。\n附图说明\n[0021] 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:\n[0022] 图1是相关技术提供的视频帧的传输示意图;\n[0023] 图2是本发明实施例提供的媒体数据的重组方法的流程图;\n[0024] 图3是本发明实施例提供的媒体数据的重组装置的结构框图;\n[0025] 图4是本发明实施例提供的空中媒体服务器重组TS流的示意图。\n具体实施方式\n[0026] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。\n[0027] 考虑到终端操作系统的多样性,为了提升媒体流的适用范围,本发明实施例提供了一种媒体数据的重组方法和装置。下面通过实施例进行详细描述。\n[0028] 参见图2所示的媒体数据的重组方法流程图,该方法包括以下步骤:\n[0029] 步骤S202,对节目的传输流(即TS流)进行解复用,得到节目的原始媒体数据;其中,该原始媒体数据包括:视频数据;另外,该原始媒体数据还包括音频数据和其它数据;\n[0030] 步骤S204,按照本地时钟对原始媒体数据中的PCR进行重置;例如:原始媒体数据中的PCR数值删除,根据本地时钟重新为原始媒体数据中的PCR设置数值;\n[0031] 步骤S206,按照将视频数据中的I帧作为切片中视频数据的起始帧的方式,对重置PCR后的原始媒体数据进行切片;\n[0032] 这种切片方式将可以保证每个切片中视频数据的起始帧都是I帧,这样无论终端设备支持的操作系统是哪种,均可以对此切片进行解析;\n[0033] 步骤S208,为每个切片设置索引信息;该索引信息可以是各个切片的名称,也可以是序号等;\n[0034] 步骤S210,将设置索引信息后的切片作为节目的重组数据存储。\n[0035] 本实施例的方法通过对传输流进行重组,保证了各个切片中视频数据的起始帧均为I帧,便于不同操作系统对其进行解析,同时,采用为每个切片设置索引信息的方式,使接收端能够依据该索引信息对乱序后的切片进行重新排序,保证了节目的正常播放,因此解决了不同的客户端的操作系统对流媒体的起始数据格式要求不同引起的流媒体无法正常播放的问题,提升了在多客户端间实现流媒体直播服务的性能。\n[0036] 上述方法可以应用在一个独立的服务器上,该服务器可以是一个便携设备,其集成有接收模块,并可对接收到的数据进行二次封装,以满足iOS或Andorid等客户端的播放,该客户端可以是手机或ipad等终端设备。\n[0037] 考虑到网络上的TS流要满足传输规范协议(例如,iOS13818规范)。因此,上述服务器可以参考该规范协议对数据进行解复用。基于此,上述对节目的传输流进行解复用包括:\n获取节目的传输流;根据该传输流遵循的传输规范协议对传输流进行解复用。其中,节目的传输流可以通过服务器端集成的ISDB-Tmm(Integrated Services Digital Broadcasting-Terrestrial Mobile Multimedia,综合业务数字广播-地面移动媒体)或其它手机电视制式接收设备获取。\n[0038] 为了使各操作系统均能够解析流媒体,本发明实施例重组后的各个切片中视频数据的起始帧均为视频数据的I帧。基于此,上述按照将视频数据中的I帧作为切片中视频数据的起始帧的方式,对重置PCR后的原始媒体数据进行切片包括:查找原始媒体数据中的视频数据;将查找到的视频数据中的第一个I帧及第一个I帧之后的数据确定为有效数据;按照设定的时间单位(例如,5秒)对有效数据进行切片,并使每个切片内的视频数据均以I帧作为起始帧,且前后两个切片的媒体数据连续。该方式对于第一个I帧之前的数据视为无效数据,直接丢弃。在按照设定的时间单位对有效数据进行切片时,并不是每隔一个时间单位就切片一次,而是每隔一个时间单位检查当前视频帧是否为I帧,如果是I帧,则切片;否则需要等到I帧时再切片,以保证每个切片的起始帧均为I帧。\n[0039] 为了降低接收设备(即终端)的配置要求,本发明实施例可以进一步优化重组方式,即使重组后的数据能够被网页浏览器解析,基于此,上述为每个切片设置索引信息包括:按照网络浏览器支持的播放格式(例如:扩展的M3U播放列表格式,即扩展名为M3u8播放列表)设置每个切片的索引信息。这种方式下,终端就需要支持网络浏览器功能即可实现节目的播放。\n[0040] 根据上述方法,在具体实现时,上述服务器可以对解复用后的数据进行分析,以I帧作为有效数据的开始,并此时以服务器端状态重置PCR。然后按5秒左右为一个时间单位,分割切片为多个文件,保证每个切片的视频数据均以I帧开始,并且各切片之间的内容是连续的;再使用扩展的M3U播放列表格式将切片文件进行索引,并存储于网络浏览服务器(web server)中,以供终端下载。\n[0041] 考虑到节目的版权等问题,本发明实施例也可以对终端进行授权,只有授权的终端才可以从服务器上获取到重组后的节目,完成正常的播放,基于此,上述方法还包括:接收终端对节目的获取请求;验证该终端是否合法;如果是,将节目的重组数据发送给该终端。其中,验证该终端是否合法,可以采用相关技术中的授权码验证方式,也可以采用其它验证方式,本发明实施例对此不进行限定。\n[0042] 对应于上述方法,本发明实施例还提供了一种媒体数据的重组装置,参见图3所示,该装置包括以下模块:\n[0043] 解复用模块32,用于对节目的传输流进行解复用,得到节目的原始媒体数据;其中,原始媒体数据包括:视频数据;\n[0044] 参考时钟重置模块34,用于按照本地时钟对解复用模块32解复用得到的原始媒体数据中的节目参考时钟PCR进行重置;\n[0045] 数据切片模块36,用于按照将视频数据中的I帧作为切片中视频数据的起始帧的方式,对参考时钟重置模块34重置PCR后的原始媒体数据进行切片;\n[0046] 索引设置模块38,用于为数据切片模块36得到的每个切片设置索引信息;\n[0047] 数据存储模块40,用于将索引设置模块38设置索引信息后的切片作为节目的重组数据存储。\n[0048] 本实施例的装置通过对传输流进行重组,保证了各个切片中视频数据的起始帧均为I帧,便于不同操作系统对其进行解析,同时,采用为每个切片设置索引信息的方式,使接收端能够依据该索引信息对乱序后的切片进行重新排序,保证了节目的正常播放,因此解决了不同的客户端的操作系统对流媒体的起始数据格式要求不同引起的流媒体无法正常播放的问题,提升了在多客户端间实现流媒体直播服务的性能。\n[0049] 优选地,上述解复用模块32包括:传输流获取单元,用于获取节目的传输流;解复用单元,用于根据传输流获取单元获取的传输流遵循的传输规范协议对上述传输流进行解复用。\n[0050] 上述数据切片模块36可以包括:视频数据查找单元,用于查找原始媒体数据中的视频数据;有效数据确定单元,用于将视频数据查找单元查找到的视频数据中的第一个I帧及第一个I帧之后的数据确定为有效数据;切片单元,用于按照设定的时间单位对有效数据确定单元确定的有效数据进行切片,并使每个切片内的视频数据均以I帧作为起始帧,且前后两个切片的媒体数据连续。\n[0051] 索引设置模块38包括:索引设置单元,用于按照网络浏览器支持的播放格式设置数据切片模块得到的每个切片的索引信息。\n[0052] 为了维护节目的版权,上述装置还包括:请求接收模块,用于接收终端对节目的获取请求;验证模块,用于验证终端是否合法;数据发送模块,用于如果验证模块的验证结果为是,将数据存储模块存储的节目的重组数据发送给终端。\n[0053] 上述装置可以设置于上述服务器中。\n[0054] 上述方案可以应用于HLS(Http Live Streaming,为苹果公司实现的一种完全基于HTTP的媒体流协议)播放过程中。\n[0055] 如图4所示的空中媒体服务器重组TS流的示意图,其中,节目数据源(即发送端)发送TS流,空中媒体服务器通过ISDB-TMM接收到该TS流,通过解复用后得到原始媒体数据,该数据中的视频数据包括图中所示的B、P、I帧,根据上述重组方式,空中媒体服务器丢弃掉无效数据,对帧中的PCR进行重置,并以5秒内容为一个切片,且每个切片中视频数据的起始帧为I帧。最后得到TS数据切片,供终端1(iOS)和终端2(安卓操作系统)等终端播放使用。终端可以是仅支持HTML(Hyper Text Markup Language,超文本标记语言)5的智能终端(Android,iOS和其它智能操作系统),按照上述方法实现终端直播无线流媒体服务器端获取到的节目数据。\n[0056] 根据上述实施例可知,上述方案简单有效,客户端不需要安装特殊的媒体播放软件,直接使用HTML5浏览器便可实现节目播放,客户端的二次开发和扩展性好。\n[0057] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。\n[0058] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2018-09-07
未缴年费专利权终止
IPC(主分类): H04N 21/242
专利号: ZL 201310367305.1
申请日: 2013.08.21
授权公告日: 2017.02.22
- 2017-02-22
- 2014-01-08
实质审查的生效
IPC(主分类): H04N 21/242
专利申请号: 201310367305.1
申请日: 2013.08.21
- 2013-12-11
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |