一种多媒体数据采集方法和系统的制作方法

文档序号:7770117阅读:187来源:国知局
一种多媒体数据采集方法和系统的制作方法
【专利摘要】本发明实施方式提出了一种多媒体数据采集方法和系统。方法包括:将多媒体数据封装为通用数据传输协议格式的多媒体数据采集请求,并发送所述多媒体数据采集请求,在所述多媒体数据采集请求中包含有该多媒体数据的多媒体数据类型;根据多媒体数据类型将所述多媒体数据采集请求分配到相应的多媒体数据文件队列;从多媒体数据文件队列中调取多媒体数据采集请求,并从所述多媒体数据采集请求中获取多媒体数据。本发明实施方式实现了一种通用的、可扩展的多媒体数据采集方案。
【专利说明】一种多媒体数据采集方法和系统

【技术领域】
[0001] 本发明实施方式涉及信息处理【技术领域】,更具体地,涉及一种多媒体数据采集方 法和系统。

【背景技术】
[0002] 在当今的信息时代中,各种信息设备应运而生。而且,随着电子消费、计算机、通信 (3C)融合的到来,人们越来越多地将注意力放到了对各个不同领域的信息设备进行综合利 用的研究上,以充分利用现有资源设备来为人们更好的服务。在这些资源设备的工作处理 过程中,经常涉及到计算机文件的处理。
[0003] 多媒体技术不是各种信息媒体的简单复合,而更是一种把文本(Text)、图形 (Graphics)、图像(Images)、动画(Animation)和声音(Sound)等形式的信息结合在一起, 并通过计算机进行综合处理和控制,能支持完成一系列交互式操作的信息技术。
[0004] 在各种多媒体数据相关应用中,经常会涉及到针对多媒体数据的采集任务。现有 的多媒体数据采集方案大概包括三类:
[0005] (1)通过在客户端(比如智能手机)中安装相关软件(如录音软件),或者插入相关 采集代码,在客户端完成数据采集。在这种方式中,客户端容量有限,一般不能采集大批量 数据,而且用客户端采集需要在每个客户端都安装相应软件或插入相关代码,成本太高。由 于客户端种类繁多,客户端的操作系统也不尽相同,采用同一套采集程序适应种类繁多的 客户端基本是不可行的。
[0006] (2)在多媒体业务服务器(如语音识别服务器或图像识别服务器)中,将多媒体数 据流写入文件(日志文件或其它文件),然后再通过分析相应文件获取采集数据。在这种方 式中,由于多媒体数据文件一般较大,而写文件是一个费时的操作,所以这种采集方式必然 会增加多媒体业务服务器的处理时间。对于一些对实时性要求较高的应用来说(比如语音 实时对讲),这种方法会影响线上服务,而且采集的代码和服务的代码耦合度较高,后期维 护代价较高
[0007] (3)通过专有的采集代理进行后台采集。在这种方式中,由于数据采集代理一般专 为某一个服务定制,无法做到通用采集需求。


【发明内容】

[0008] 本发明实施方式提出一种多媒体数据采集方法,以提高多媒体数据采集实时性。
[0009] 本发明实施方式还提出了一种多媒体数据采集系统,以提高多媒体数据采集实时 性。
[0010] 本发明实施方式的具体方案如下:
[0011] 一种多媒体数据采集方法,该方法包括:
[0012] 将多媒体数据封装为通用数据传输协议格式的多媒体数据采集请求,并发送所述 多媒体数据采集请求,在所述多媒体数据采集请求中包含该多媒体数据的多媒体数据类 型;
[0013] 根据多媒体数据类型将所述多媒体数据采集请求分配到相应的多媒体数据文件 队列;
[0014] 从多媒体数据文件队列中调取多媒体数据采集请求,并从所述多媒体数据采集请 求中获取多媒体数据。
[0015] 一种多媒体数据采集系统,包括请求封装单元、请求收集单元和数据采集单元,其 中:
[0016] 请求封装单元,用于将多媒体数据封装为通用数据传输协议格式的多媒体数据采 集请求,并发送所述多媒体数据采集请求,在所述多媒体数据采集请求中包含该多媒体数 据的多媒体数据类型;
[0017] 请求收集单元,用于根据多媒体数据类型将所述多媒体数据采集请求分配到相应 的多媒体数据文件队列;
[0018] 数据采集单元,用于从多媒体数据文件队列中调取多媒体数据采集请求,并从所 述多媒体数据采集请求中获取多媒体数据。
[0019] 从上述技术方案可以看出,在本发明实施方式中,将多媒体数据封装为通用数据 传输协议格式的多媒体数据采集请求,并发送所述多媒体数据采集请求,在所述多媒体数 据采集请求中包含有该多媒体数据的多媒体数据类型;根据多媒体数据类型将所述多媒体 数据采集请求分配到相应的多媒体数据文件队列;从多媒体数据文件队列中调取多媒体数 据采集请求,并从所述多媒体数据采集请求中获取多媒体数据。由此可见,应用本发明实施 方式之后,实现了一种通用的、可扩展的多媒体数据采集方案。多媒体数据请求收集与多媒 体数据请求处理相互分离,从而可以提高多媒体数据采集实时性,尤其适用于实时性要求 较高的应用(比如语音实时对讲)。
[0020] 而且,本发明实施方式便于扩展,可以大规模使用。

【专利附图】

【附图说明】
[0021] 图1为根据本发明实施方式多媒体数据采集分层示意图;
[0022] 图2为根据本发明实施方式多媒体数据采集方法流程图;
[0023] 图3为根据本发明实施方式多媒体数据文件队列分配示意图;
[0024] 图4为根据本发明实施方式多媒体数据采集系统结构图。

【具体实施方式】
[0025] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步 的详细描述。
[0026] 本发明实施方式提供一种通用的、可扩展的多媒体(比如语音或图像)数据采集方 案,以解决语音或图像数据采集问题。
[0027]图1为根据本发明实施方式多媒体数据采集分层示意图。
[0028] 可以将本发明实施方式实施为三层,分别为请求封装发送层、请求收集及处理层 以及数据存储层。
[0029](1)、请求封装发送层
[0030] 为了做到通用采集,可以设计一个通用的接口,使得不同的多媒体业务服务器α匕 如语音业务或图像业务服务器)可以通过此通用接口把多媒体数据采集请求发送给请求收 集和处理层。为了不干扰多媒体业务服务器的原有逻辑,可以提供一个Clientlib,多媒体 业务服务器代码通过调用clientlib中的相关函数,把需要采集的多媒体数据封装到通用 接口中形成该多媒体数据采集请求,并发送该多媒体数据采集请求到请求收集及处理层。
[0031] 请求封装发送层具体可以实施为各种多媒体业务服务器。多媒体业务服务器用于 提供针对多媒体数据的各项业务。比如,针对语音类别的多媒体数据,多媒体业务服务器具 体可以是提供语音类业务服务的机器,比如语音识别服务器;针对图像类别的多媒体数据, 多媒体业务服务器具体可以是提供图像类业务服务的机器,比如二维码识别服务器、人脸 识别服务器,等等。
[0032] 多媒体业务服务器在获取了多媒体数据之后,将多媒体数据封装在多媒体数据采 集请求中,并将该多媒体数据采集请求发送到请求收集及处理层。
[0033] (2)、请求收集及处理层
[0034] 请求收集及处理层用于完成多媒体数据的收集及处理工作。请求收集及处理层从 逻辑上分为三部分,分别为请求收集服务器、文件队列和采集服务器。
[0035] 请求收集服务器的主要目的是接收由请求封装发送层发送过来的多媒体数据采 集请求,根据多媒体数据采集请求中的多媒体数据类型把请求分类并放入不同的文件队列 中。请求收集服务器除了此功能外可以没有其它功能,因此处理时间相当快,从而基本不会 占用多媒体业务服务器的资源,对多媒体业务服务器性能的影响基本可以忽略。
[0036] 同时,请求收集服务器也实时监控文件队列大小,如果文件队列大小超过阈值限 制,请求收集服务器将暂时拒绝请求封装发送层发过来的请求。
[0037] 文件队列的目的是对请求封装发送层发送过来的多媒体数据采集请求进行暂存, 供后续采集服务器提出并处理。加入文件对列的好处是可以保存所有需要处理的采集请 求,同时,对于非实时业务来说,文件队列比内存队列要大得多(硬盘比内存容量大得多)。
[0038] 比如:文件队列可以采用大文件加索引文件的方式存储和查询数据。用户可以 按照不同的业务配置文件组数(比如语音数据放到一个组,图像数据放到另一个组)以及 每个组中的并行文件子队列数;每个文件子队列最多可以存放个文件,如果子队列下的 4294967296个文件已经写满,则此子队列会拒绝新的写请求。
[0039] 每个文件子队列可以有两个状态文件,分别标识此子队列中目前读和写的位置 (状态文件中记录了文件名和偏移量),而且文件子队列中每个文件大小被限制为128M,大 小超过此限制时自动切换到另一文件;当一个文件中的内容被处理完时,此文件会被定期 删除。
[0040] 采集服务器的主要功能是从文件队列中取出多媒体数据采集请求,分类进行数据 采集处理,并把符合条件的多媒体文件保存到HDFS,把多媒体文件的元信息(如语音长度, 语言类型,存放位置等等)保存到MYSQL。
[0041] 具体地、采集服务器中可以包含有语音采集服务集、图像采集服务集等多媒体采 集服务集,分别用于处理不同类型的多媒体业务请求。此服务集是可扩展的,可以在集合中 方便的增加新的处理单元以适应新的语音或图像处理要求。
[0042] 采集服务器负责真正的数据处理及采集工作,采集服务器可以采用注册处理 (handler)的方式工作,其中所有处理语音的handler形成语音数据服务集,所有的图像处 理handler形成图像数据服务集合。采用handler的好处是可以根据需要,灵活地增减需 要的handler而对整个框架和其它handler没有任何影响。
[0043] 基于上述分析,图2为根据本发明实施方式多媒体数据采集方法流程图。
[0044] 如图2所示,该方法包括:
[0045] 步骤201:将多媒体数据封装为通用数据传输协议格式的多媒体数据采集请求, 并发送所述多媒体数据采集请求,在所述多媒体数据采集请求中包含有该多媒体数据的多 媒体数据类型;
[0046] 步骤202:根据多媒体数据类型将所述多媒体数据采集请求分配到相应的多媒体 数据文件队列;
[0047] 步骤203:从多媒体数据文件队列中调取多媒体数据采集请求,并从所述多媒体 数据采集请求中获取多媒体数据。
[0048] 在一个实施方式中:
[0049] 该方法进一步包括:获取所述多媒体数据的元信息,并将所述多媒体数据的元信 息保存到关系型数据库;
[0050] 将所述多媒体数据保存到分布式文件存储系统。
[0051] 在一个实施方式中:
[0052] 该方法进一步包括:
[0053] 判断多媒体数据文件队列的队列大小是否超过预先设定的队列大小门限值,如果 是,则拒绝接受分配多媒体数据采集请求。
[0054] 在一个实施方式中:
[0055] 所述通用数据传输协议格式为Protobuf;所述关系型数据库为MySQL数据库;所 述分布式文件存储系统为HDFS。
[0056] 以上虽然列出了通用数据传输协议格式的典型实例,本领域技术人员可以意识 至丨J,通用数据传输协议格式并不局限于为Protobuf。
[0057] 在一个实施方式中:
[0058] 在将所述多媒体数据保存到分布式文件存储系统之前,该方法进一步包括:
[0059] 对所述多媒体数据进行合法性验证,并丢弃不通过合法性验证的多媒体数据。
[0060] 在一个实施方式中:
[0061] 所述多媒体数据采集请求包括:用于标识多媒体数据类型的业务类型字段、用于 标识多媒体数据子类型的子业务类型字段、用于承载多媒体数据的数据字段和保留字段。
[0062] 比如,针对通用protobuf接口,可以采用下列方式定义多媒体数据采集请求。
[0063] Message comm_req_interface { Int32 type; Int32 sub_type; Bytes data; Bytes reserved; }
[0064]其中:
[0065]type字段表示多媒体业务类型,比如语音还是图像业务;
[0066] sub_type字段表示具体的子业务,比如语音聊天、语音提醒、公共账号语音等等;
[0067]data字段是protobuf字节流,不同业务把自己主要的多媒体数据序列化以后的 结果放到data字段;
[0068]reserved字段是保留字段,可以传送一些附加信息,比如各个业务发送的message名称等等。
[0069] clientlib和请求收集服务器之间可以采用rpc的方式进行数据交互,对于多媒 体业务服务器端来说,clientlib主要提供两种调用接口:请求封装接口,此接口主要功能 是提供发送数据的封装,把原始的请求封装为通用protobuf的接口形式;数据发送接口, 此接口的主要功能是把封装后的消息发送给请求收集服务器,此接口内部会做负载均衡以 及相关容错处理(比如服务器心跳,错误重发等等),保证请求能均匀的发送到后端的请求 收集服务器集合中。
[0070] 请求收集服务器主要的功能就是把所有收集到的请求分类,并放入相应的文件队 列。
[0071] 图3为根据本发明实施方式多媒体数据文件队列分配示意图。
[0072] 如图3所示,该方法包括:
[0073] 步骤301:从请求封装发送层获取多媒体数据采集请求。
[0074] 步骤302:判断对应于该多媒体数据采集请求中多媒体数据类型的文件队列长度 是否超过预先设置的门限值,如果是则执行步骤307,否则执行步骤303及其后续步骤。
[0075] 步骤303:对该多媒体数据采集请求进行反序列化操作。
[0076] 步骤304:判断是否正确执行了反序列化操作,如果没有正确执行了反序列化操 作,则执行步骤307,如果正确执行了反序列化操作,则执行步骤305及其后续步骤;
[0077] 步骤305:判断媒体数据采集请求中的类型字段和子类型字段是否是预先设定的 允许值,如果是,则执行步骤306及其后续步骤,;如果不是,则执行步骤307;
[0078] 步骤306:将该多媒体数据采集请求分配到相对应的文件队列;
[0079] 步骤307:拒绝该多媒体数据采集请求。
[0080] 如果为了进一步节省请求收集服务器的处理时间,可以把针对数据采集请求的反 序列化操作以及判断类型字段和子类型字段的步骤(即步骤303、304和305)去掉,直接把 多媒体数据采集请求放入文件队列。如果加入步骤303、304和305,则可以在源头上排除一 些脏数据,以免占用文件队列空间。
[0081] 图4为根据本发明实施方式多媒体数据采集系统结构图。
[0082] 如图4所示,该系统包括请求封装单元401、请求收集单元402和数据采集单元 403,其中:
[0083] 请求封装单元401,用于将多媒体数据封装为通用数据传输协议格式的多媒体数 据采集请求,并发送所述多媒体数据采集请求,在所述多媒体数据采集请求中包含该多媒 体数据的多媒体数据类型;
[0084] 请求收集单元402,用于接收该多媒体数据采集请求,并根据多媒体数据类型将所 述多媒体数据采集请求分配到相应的多媒体数据文件队列;
[0085] 数据采集单元403,用于从多媒体数据文件队列中调取多媒体数据采集请求,并从 所述多媒体数据采集请求中获取多媒体数据。
[0086] 在一个实施方式中:
[0087] 进一步包括关系型数据库404和分布式文件存储系统405 ;
[0088] 数据采集单元493,用于获取所述多媒体数据的元信息,并将所述多媒体数据的元 信息保存到关系型数据库404,还将所述多媒体数据保存到分布式文件存储系统405。
[0089] 在一个实施方式中:
[0090] 请求收集单元402,还用于判断多媒体数据文件队列的队列大小是否超过预先设 定的队列大小门限值,如果是,则拒绝接受分配多媒体数据采集请求。
[0091] 在一个实施方式中:
[0092] 所述通用数据传输协议格式为Protobuf;所述关系型数据库为MySQL数据库;所 述分布式文件存储系统为HDFS。
[0093] 在一个实施方式中:
[0094] 数据采集单元403,用于在在将所述多媒体数据保存到分布式文件存储系统之前, 对所述多媒体数据进行合法性验证,并丢弃不通过合法性验证的多媒体数据。
[0095] 在一个实施方式中:
[0096] 所述多媒体数据采集请求包括:用于标识多媒体数据类型的业务类型字段、用于 标识多媒体数据子类型的子业务类型字段、用于承载多媒体数据的数据字段和保留字段。[0097] 实际上,可以通过多种形式来具体实施本发明实施方式所提出的多媒体数据采集 方法和装置。
[0098] 比如,可以遵循一定规范的应用程序接口,将多媒体数据采集方法编写为安装到 个人电脑、移动终端等中的插件程序,也可以将其封装为应用程序以供用户自行下载使用。 当编写为插件程序时,可以将其实施为OCX、dll、cab等多种插件形式。也可以通过Flash 插件、RealPlayer插件、MMS插件、MIDI五线谱插件、ActiveX插件等具体技术来实施本发 明实施方式所提出的多媒体数据采集方法。
[0099] 可以通过指令或指令集存储的储存方式将本发明实施方式所提出的多媒体数据 采集方法存储在各种存储介质上。这些存储介质包括但是不局限于:软盘、光盘、DVD、硬盘、 闪存、U盘、CF卡、SD卡、MMC卡、SM卡、记忆棒(MemoryStick)、xD卡等。
[0100] 另外,还可以将本发明实施方式所提出的多媒体数据采集方法应用到基于闪存 (Nandflash)的存储介质中,比如U盘、CF卡、SD卡、SDHC卡、MMC卡、SM卡、记忆棒、xD卡 等。
[0101] 综上所述,将多媒体数据封装为通用数据传输协议格式的多媒体数据采集请求, 并发送所述多媒体数据采集请求,在所述多媒体数据采集请求中包含有该多媒体数据的多 媒体数据类型;根据多媒体数据类型将所述多媒体数据采集请求分配到相应的多媒体数据 文件队列;从多媒体数据文件队列中调取多媒体数据采集请求,并从所述多媒体数据采集 请求中获取多媒体数据。由此可见,应用本发明实施方式之后,实现了一种通用的、可扩展 的多媒体数据采集方案,多媒体数据请求收集与多媒体数据请求处理相互分离,从而可以 提高多媒体数据采集实时性,尤其适用于实时性要求较高的应用(比如语音实时对讲)。而 且,本发明实施方式便于扩展,可以大规模使用。
[0102] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护 范围之内。
【权利要求】
1. 一种多媒体数据采集方法,其特征在于,该方法包括: 将多媒体数据封装为通用数据传输协议格式的多媒体数据采集请求,并发送所述多媒 体数据采集请求,在所述多媒体数据采集请求中包含有该多媒体数据的多媒体数据类型; 根据多媒体数据类型将所述多媒体数据采集请求分配到相应的多媒体数据文件队 列; 从多媒体数据文件队列中调取多媒体数据采集请求,并从所述多媒体数据采集请求中 获取多媒体数据。
2. 根据权利要求1所述的多媒体数据采集方法,其特征在于,该方法进一步包括: 获取所述多媒体数据的元信息,并将所述多媒体数据的元信息保存到关系型数据库; 将所述多媒体数据保存到分布式文件存储系统。
3. 根据权利要求1所述的多媒体数据采集方法,其特征在于,该方法进一步包括: 判断多媒体数据文件队列的队列大小是否超过预先设定的队列大小门限值,如果是, 则拒绝接受分配多媒体数据采集请求。
4. 根据权利要求1所述的多媒体数据采集方法,其特征在于,所述通用数据传输协议 格式为Protobuf ;所述关系型数据库为MySQL数据库;所述分布式文件存储系统为HDFS。
5. 根据权利要求2所述的多媒体数据采集方法,其特征在于,在将所述多媒体数据保 存到分布式文件存储系统之前,该方法进一步包括: 对所述多媒体数据进行合法性验证,并丢弃不通过合法性验证的多媒体数据。
6. 根据权利1-5中任一项所述的多媒体数据采集方法,其特征在于,所述多媒体数据 采集请求包括:用于标识多媒体数据类型的业务类型字段、用于标识多媒体数据子类型的 子业务类型字段、用于承载多媒体数据的数据字段和保留字段。
7. -种多媒体数据采集系统,其特征在于,包括请求封装单元、请求收集单元和数据采 集单元,其中: 请求封装单元,用于将多媒体数据封装为通用数据传输协议格式的多媒体数据采集请 求,并发送所述多媒体数据采集请求,在所述多媒体数据采集请求中包含该多媒体数据的 多媒体数据类型; 请求收集单元,用于根据多媒体数据类型将所述多媒体数据采集请求分配到相应的多 媒体数据文件队列; 数据采集单元,用于从多媒体数据文件队列中调取多媒体数据采集请求,并从所述多 媒体数据采集请求中获取多媒体数据。
8. 根据权利要求7所述的多媒体数据采集系统,其特征在于,进一步包括关系型数据 库和分布式文件存储系统; 数据采集单元,用于获取所述多媒体数据的元信息,并将所述多媒体数据的元信息保 存到关系型数据库,还将所述多媒体数据保存到分布式文件存储系统。
9. 根据权利要求7所述的多媒体数据采集系统,其特征在于, 请求收集单元,还用于判断多媒体数据文件队列的队列大小是否超过预先设定的队列 大小门限值,如果是,则拒绝接受分配多媒体数据采集请求。
10. 根据权利要求7所述的多媒体数据采集系统,其特征在于, 所述通用数据传输协议格式为Protobuf ;所述关系型数据库为MySQL数据库;所述分 布式文件存储系统为HDFS。
11. 根据权利要求8所述的多媒体数据采集系统,其特征在于, 数据采集单元,用于在在将所述多媒体数据保存到分布式文件存储系统之前,对所述 多媒体数据进行合法性验证,并丢弃不通过合法性验证的多媒体数据。
12. 根据权利7-11中任一项所述的多媒体数据采集系统,其特征在于,所述多媒体数 据采集请求包括:用于标识多媒体数据类型的业务类型字段、用于标识多媒体数据子类型 的子业务类型字段、用于承载多媒体数据的数据字段和保留字段。
【文档编号】H04L29/06GK104426900SQ201310414156
【公开日】2015年3月18日 申请日期:2013年9月11日 优先权日:2013年9月11日
【发明者】孔令挥 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1