发明内容
本发明的目的在于克服现有技术的不足,提供一种获取媒体文件的元数据信息的方法、系统及多媒体播放器,能够从总体上减少获取媒体文件的元数据信息的时间,提高用户的体验度。
为了解决上述问题,本发明提出了一种获取媒体文件的元数据信息的方法,包括以下步骤:
查询云端服务器中是否存在需要获取的媒体文件的元数据信息;
当查询结果为是时,从所述云端服务器中获取所述媒体文件的元数据信息;
当查询结果为否时,分析所述媒体文件,获取所述媒体文件的元数据信息。
其中,所述查询云端服务器中是否存在需要获取的媒体文件的元数据信息,包括:
为所述媒体文件生成唯一的哈希索引值;
将所述哈希索引值上传至所述云端服务器;
接收所述云端服务器以所述哈希索引值为索引,查询其是否存储有与所述哈希索引值对应的媒体文件的元数据信息后返回的查询结果。
其中,所述为所述媒体文件生成唯一的哈希索引值,包括:
根据所述媒体文件的元信息和对所述媒体文件进行采样的采样信息,按照消息摘要算法MD生成唯一的哈希索引值。
所述方法还包括:将分析所述媒体文件获取的所述媒体文件的元数据信息上传给所述云端服务器。
所述方法还包括:将分析所述媒体文件获取的所述媒体文件的元数据信息和所述媒体文件的哈希索引值上传至所述云端服务器。
相应地,本发明还提供了一种多媒体播放器,包括:
查询模块,用于查询云端服务器中是否存在多媒体播放器需要获取的媒体文件的元数据信息;
获取模块,用于当查询模块的查询结果为是时,从所述云端服务器中获取所述媒体文件的元数据信息;
分析模块,用于当查询模块的查询结果为否时,分析所述媒体文件,获取所述媒体文件的元数据信息。
其中,所述多媒体播放器还包括哈希索引值生成模块,用于为所述媒体文件生成唯一的哈希索引值。
其中,所述哈希索引值生成模块包括:
元信息获取单元,用于获取所述媒体文件的元信息;
采样单元,用于对所述媒体文件进行采样,得到采样信息;
哈希索引值生成单元,用于根据所述媒体文件的元信息和采样信息,按照消息摘要算法MD生成唯一的哈希索引值。
其中,所述查询模块包括:
查询请求发送单元,用于将所述哈希索引值生成模块生成的哈希索引值上传至所述云端服务器;
查询结果接收单元,用于接收所述云端服务器以所述哈希索引值为索引,查找其是否存储有与所述哈希索引值对应的媒体文件的元数据信息后返回的查询结果。
其中,所述多媒体播放器还包括:
元数据传送模块,用于在所述查询结果接收单元接收到的查询结果为否时,将所述分析模块分析所述媒体文件获取的所述媒体文件的元数据信息上传至所述云端服务器。
其中,所述多媒体播放器还包括:
哈希索引值传送模块,用于在所述查询接收单元接收到的查询结果为否时,将所述哈希索引值生成模块生成的所述媒体文件的哈希索引值上传至所述云端服务器。
相应地,还提供一种获取媒体文件的元数据信息的系统,所述系统包括:
多媒体播放器,用于查询云端服务器中是否存在需要获取的媒体文件的元数据信息;
云端服务器,用于查询自身是否存在所述多媒体播放器需要获取的媒体文件的元数据信息,得到查询结果,以及将所述查询结果返回给所述多媒体播放器;
所述多媒体播放器还用于在接收到的查询结果为是时,从所述云端服务器中获取所述媒体文件的元数据信息;以及在接收到的查询结果为否时,分析所述媒体文件,获取所述媒体文件的元数据信息。
其中,所述多媒体播放器包括:
查询模块,用于查询云端服务器中是否存在多媒体播放器需要获取的媒体文件的元数据信息;
获取模块,用于当查询模块的查询结果为是时,从所述云端服务器中获取所述媒体文件的元数据信息;
分析模块,用于当查询模块的查询结果为否时,分析所述媒体文件,获取所述媒体文件的元数据信息。
本发明的有益效果:
本发明实施例提供了一种获取媒体文件的元数据信息的方法、系统及多媒体播放器,通过先查询云端服务器中是否存储有需要获取的媒体文件的元数据信息,判断是否能从云端服务器中获取需要获取的媒体文件的元数据信息。当判断从云端服务器中获取不到需要获取的媒体文件的元数据信息时,才对媒体文件进行分析,以获取媒体文件的元数据信息。由于采用从云端服务器中查询媒体文件的元数据信息所花费的时间远小于直接分析媒体文件所花费的时间,并且基于云端服务器庞大的媒体文件元数据信息存储量,绝大多数需要获取的媒体文件的元数据信息都能从云端服务器中获取到。如此,则能够从整体上减少获取媒体文件的元数据信息的时间,提高用户的体验度。
另一方面,由于还将分析媒体文件后得到的媒体文件的元数据信息上传给云端服务器,如此则扩充了云端服务器中存储的媒体文件的元数据信息的数量。其它多媒体播放器在云计算的服务支持下,也可以共享上传的媒体文件的元数据信息,从而提高了从云端服务器中获取到需要获取的媒体文件的元数据信息的概率,进一步地减少了获取媒体文件的元数据信息的时间。从另一方面来说,则提高了云端服务器的服务质量。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
由于现有技术中,多媒体播放器对挂接在自身的存储设备中的媒体文件进行操作之前,均需要对媒体文件进行分析,如对媒体文件进行遍历与探测,以获取媒体文件的元数据信息。如此,则会花费大量的时间,造成一定的时延,从而降低了用户的体验度。
为解决现有技术问题,本发明提供了一种获取媒体文件的元数据信息的方法、系统及多媒体播放器,在云计算的服务支持下,首先查询云端服务器中是否存在需要获取的媒体文件的元数据信息;如果查询到需要获取的媒体文件的元数据信息,则直接从云端服务器中获取该媒体文件的元数据信息。如果未能查询到需要获取的媒体文件的元数据信息,则分析该媒体文件,以获取该媒体文件的元数据信息。由于查询媒体文件的元数据信息所花的时间比直接分析媒体文件所花的时间少,如此设计,则能从整体上减少获取媒体文件的元数据信息的时间,提高用户的体验度。
如图1所示,是本发明公开的第一实施例的获取媒体文件的元数据信息的方法的流程图,包括以下步骤:
S11、查询云端服务器中是否存在需要获取的媒体文件的元数据信息;
需要说明的是,在本发明中,云端服务器中存储有大量的媒体文件的元数据信息。当需要获取媒体文件的元数据信息是,可以在云计算提供的服务支持下,查询云端服务器中是否存在需要获取的媒体文件的元数据信息。
这里需要获取的媒体文件的元数据信息,可以是多媒体播放器需要获取的媒体文件的元数据信息,也可以是其它媒体播放系统对媒体文件进行操作时,需要获取的媒体文件的元数据信息。在本发明实施例中,以多媒体播放器获取需要的媒体文件的元数据信息为例进行说明。多媒体播放器对挂接(也称挂载)在自身的存储设备中的媒体文件进行操作时,如播放存储设备中的媒体文件等操作时,需要获取存储设备中的媒体文件的元数据信息,例如关键帧的位置,缩略图、音视频编码类型、码率、时长等元数据信息。
与现有技术不同的是,在步骤S11中,多媒体播放器不是直接分析存储设备中的媒体文件的元数据信息,而是在云计算的服务支持下,通过与云端服务器进行数据交换的方式,查询云端服务器中是否存在存储设备中的媒体文件的元数据信息。具体地,多媒体播放器可以向云端服务器发送查询请求,以查询云端服务器中是否存储有需要获取的媒体文件的元数据信息,并接收云端服务器返回的查询结果。
S12、当查询结果为是时,从云端服务器中获取媒体文件的元数据信息;
S13、当查询结果为否时,则分析该媒体文件,获取该媒体文件的元数据信息。
从云端服务器中可能能查询到需要获取的媒体文件的元数据信息,也可能查询不到需要获取的媒体文件的元数据信息。对于不同的查询结果,下一步的操作步骤也不一样。
如果查询结果为是,则表明能够从云端服务器中查询到该媒体文件的元数据信息,那么则直接从云端服务器中获取该媒体文件的元数据信息。具体地,云端服务器可以先返回一个能够查询到媒体文件的元数据信息的查询结果给多媒体播放器,多媒体播放器根据该查询结果,再向云端服务器发送获取媒体文件的元数据信息的请求,以从云端服务器处获取媒体文件的元数据信息。但为了节约交互流程及获取媒体文件的元数据信息的时间,云端服务器在将查询结果返回给多媒体播放器时,还可将需要获取的媒体文件的元数据信息一起打包返回给多媒体播放器。如此,多媒体播放器则不用再向云端服务器发送获取媒体文件的元数据信息的请求。
如果查询结果为否,则表明未能从云端服务器中查询到媒体文件的元数据信息,也就是说,从云端服务器中不能获取到需要的媒体文件的元数据信息,那么则需要对该媒体文件进行本地分析,以获取该媒体文件的元数据信息。此时,云端服务器仍返回的查询结果中,则没有携带该媒体文件的元数据信息。
本发明实施例中,不是采用直接分析媒体文件的方式来获取媒体文件的元数据信。而是在基于云计算的服务支持下,先查询云端服务器中是否存在需要获取的媒体文件的元数据信息,并在查询结果为是时,获取媒体文件的元数据信息。由于云端服务器中存储有大量的媒体文件的元数据信息,因此绝大多数媒体文件的元数据信息都可从云端服务器中获取到,而对于少数不能从云端服务器中获取到的媒体文件的元数据信息,才对该媒体文件进行分析,由于查询云端服务器中媒体文件的元数据信息所花的时间比直接分析媒体文件所花费的时间少,因此,本发明实施例从整体上大大地减少了获取媒体文件的元数据信息的时间,从而提高了用户的体验度。
查询云端服务器中是否存在需要获取的媒体文件的元数据信息的方式有多种,如图2所示,在本发明一种实施例中,公开了一种查询云端服务器中是否存在需要获取的媒体文件的元数据信息的方法,包括以下步骤:
S21、为媒体文件生成唯一的哈希索引值;
步骤S21中,可通过如下方式,为媒体文件生成唯一的哈希索引值:
根据媒体文件的元信息和采样信息,按照消息摘要算法MD生成唯一的哈希索引值。
具体地,由于每个媒体文件的头部文件中均存储有元信息,也称meta信息,该meta信息初步表示了媒体文件的元数据信息,但又不足以让多媒体播放器使用,因此,多媒体播放器还需要获取该媒体文件的更多信息来确定媒体文件的元数据信息。由于媒体文件的容量相对较大,因此可以采用对媒体文件进行采样的方法来进一步获取媒体文件的更多信息。例如,多媒体播放器可以对媒体文件进行二进制采样,从而得到媒体文件的采样信息。如此,根据媒体文件的采样信息和meta信息,按照消息摘要算法,也称MD算法(包括MD2、MD4、MD5),从而可以为该媒体文件生成唯一的哈希索引值。实际上,MD算法是一个哈希函数,将媒体文件的采样信息和meta信息作为该哈希函数的输入值,经过哈希计算,即可以输出一个唯一的哈希索引值,也称MD值。
需要说明的一点是,由于媒体文件的类型有很多,例如FLV文件、MP4文件、TS文件等。对于不同类型的媒体文件,其头部文件中存储的元信息的表现形式不一样。因此,多媒体播放器在获取媒体文件的元信息时,可以获取流媒体FLV文件头部的metadata信息,MP4文件中的track信息,传送流TS文件中的节目关联表PAT、节目关联表PMT等信息。
需要说明的另一点是,用户存储设备中的媒体文件可能有多个,例如包括多个音频文件或视频文件等。当将存储设备挂接在多媒体播放器上时,多媒体播放器遍历存储设备中的每个媒体文件,并分别为每一个媒体文件对应生成一个唯一的哈希索引值。由于有多个媒体文件,那么对应有多个不同的哈希索引值。多媒体播放器还可以根据这些哈希索引值,生成一张媒体文件哈希列表。表1所示的是多媒体播放器生成的媒体文件哈希列表。
表1:多媒体播放器生成的媒体文件哈希列表
S22、将媒体文件的哈希索引值上传给云端服务器;
在步骤S22中,需要将步骤S21中生成的媒体文件的哈希索引值上传给云端服务器。一般地,可以以base64编码的方式将媒体文件的哈希索引值传输给云端服务器。因此,在上传媒体文件的哈希索引值之前,若媒体文件的哈希索引值是根据MD算法计算得到的,那么还需要将哈希索引值转换为base64编码的形式。
另外,将媒体文件的哈希索引值上传给云端服务器的方法有多种。例如,可以通过云端提供的Web服务接口,将媒体文件的哈希索引值传送给云端服务器,当然,也可以采用其它的方式传送。并且,若多媒体需要获取多个媒体文件的元数据信息时,还将多个媒体文件的哈希索引值组成一张媒体文件哈希列表并上传给云端服务器,例如,可以通过云端提供的Web服务接口,将表1上传至云端服务器。
S23、接收云端服务器以该哈希索引值为索引,查询其是否存储有与该哈希索引值对应的媒体文件的元数据信息后返回的查询结果。换句话说,云端服务器返回的查询结果,是云端服务器查询自身是否存储有与步骤S22上传的哈希索引值对应的媒体文件的元数据信息之后生成的。
一般地,云端服务器中存储有一张云端哈希索列表,该云端哈希索列表中存储有大量的媒体文件的哈希索引值,并且,云端哈希索列表中的哈希索引值与云端服务器中存储的媒体文件的元数据信息一一对应。也就是说,云端哈希索列表中的每一个哈希索引值都对应有唯一的媒体文件的元数据信息。
当云端服务器接收到传来的媒体文件的哈希索引值时,会将该媒体文件的哈希索引值与自身存储的云端哈希列表进行对比,查询云端哈希列表中是否有与该媒体文件的哈希索引值相同的哈希索引值,即查询云端哈希列表中是否存储有步骤S22上传的哈希索引值。由于云端哈希索列表中的哈希索引值与云端服务器中存储的媒体文件的元数据信息一一对应,如果查询到云端哈希列表中存储有步骤S22上传的媒体文件的哈希索引值,则可以判断云端服务器中存储有步骤S11中需要获取的媒体文件的元数据信息。
需要说明的是,当步骤S22中上传的是媒体文件哈希列表时,云端服务器则会将媒体文件哈希列表与云端哈希列表进行对比,查询云端哈希列表中是否存储有媒体文件哈希列表中的哈希索引值。可以理解的是,媒体文件哈希列表中的哈希索引值可能全部都能从云端哈希列表中查询到,也可能只查询到部分,或者都查询不到。对于哈希索引值能够从云端哈希列表中查找到的媒体文件,则不用对其进行分析,而是直接从云端服务器中获取该媒体文件对应的元数据信息,只有当媒体文件的哈希索引值不能从云端哈希列表中查找到时,才对其进行分析。由于云端服务器中哈希索引值的存储量很大,因此媒体文件哈希列表中的绝大多哈希索引值都能在云端哈希列表中找到。因此,获取需要的媒体文件的元数据信息时,一般不用对该媒体文件进行分析,而是直接从云端服务器中获取,如此则能够从整体上节约获取媒体文件的元数据信息的时间,提高用户的体验度。
进一步需要说明的是,云端服务器中存储的媒体文件的元数据信息,以及云端哈希列表中的哈希索引值,可以是由多媒体播放器或媒体文件播放系统通过Web服务接口上传上去的。并且,云端哈希索列表中的哈希索引值是根据媒体文件的meta信息和采样信息,采用MD算法计算得到的。由于每个媒体文件的meta信息的唯一性,如此则能够保证云端哈希索列表中的哈希索引值与云端服务器中存储的媒体文件的元数据信息一一对应关系。
需要说明的最后一点是,本实施例只是给出了一种查询云端服务器中是否存在需要获取的媒体文件的元数据信息的方法。当然,也可以采用其它的方式来查询。
如图3所示,是本发明公开的第二实施例的获取媒体文件的元数据信息的方法,包括以下步骤:
S31、查询云端服务器中是否存在需要获取的媒体文件的元数据信息;
S32、当查询结果为是时,从云端服务器处获取该媒体文件的元数据信息;
S33、当查询结果为否时,则分析该媒体文件,获取该媒体文件的元数据信息;
S34、将分析该媒体文件获取的媒体文件的元数据信息上传至云端服务器。
在本实施例中,步骤S31- S33的操作与图1实施例中步骤S11- S13的操作是相同的,因此,在此不再描述。可以理解的是,在步骤S31中,查询云端服务器中是否存在需要获取的媒体文件的元数据信息时,也可以采用图2实施例所述的操作流程来进行查询。
在步骤S33中,通过分析媒体文件,可以获取该媒体文件的元数据信息,利用分析得到的媒体文件的元数据信息,就可以对媒体文件进行相关的操作。
在步骤S34中,分析媒体文件之后,还将分析得到的媒体文件的元数据信息上传给云端服务器,如此则能够扩大云端服务器中媒体文件的元数据信息的共享量。当其它的多媒体播放器需要该媒体文件的元数据信息,在云计算的服务支持下,通过查询云端服务器,即可获得该媒体文件的元数据信息,进而提高了云端服务器的服务质量。
如图4所示,是本发明公开的第三实施例的获取媒体文件的元数据信息的方法,包括以下步骤:
S41、查询云端服务器中是否存在需要获取的媒体文件的元数据信息;具体地,需要为该媒体文件生成唯一的哈希索引值;以及将该哈希索引值上传至所述云端服务器;最后接收云端服务器以该哈希索引值为索引,查询其是否存储有与该哈希索引值对应的媒体文件的元数据信息后返回的查询结果。
S42、当查询结果为是时,从云端服务器处获取该媒体文件的元数据信息;
S43、当查询结果为否时,则分析该媒体文件,获取该媒体文件的元数据信息;
S44、将分析该媒体文件获取的媒体文件的元数据信息上传给云端服务器;
S45、将该媒体文件的哈希索引值上传给云端服务器。
本实施例中,步骤S41中,需要采用图2实施例所述的方法来查询云端服务器中是否存在需要获取的媒体文件的元数据信息。步骤S42-S44的操作与图3实施例中步骤S32-S34的操作相同,在此不再描述。
在步骤S43中,分析了媒体文件后,不但要执行步骤S44。还要执行步骤S45,即还将步骤S41中生成的该媒体文件的哈希索引值上传至云端服务器中,由云端服务器存储。由于步骤S43中分析的媒体文件的数量可能有多个,因此在步骤S44中,需要将步骤S43中分析的所有媒体文件的元数据信息都上传给云端服务器,在步骤S45中,则需要将步骤S43中分析的每个媒体文件的哈希索引值上传云端服务器中,由云端服务器存储。其中,步骤S45中上传的哈希索引值与步骤S44中上传的媒体文件的元数据信息一一对应。云端服务器则可以根据上传的哈希索引值,更新云端哈希列表中的信息。如此,其它的多媒体播放器则能够通过云计算提供的服务支持,通过查询云端哈希列表中哈希索引值的方式,即可以共享上传的媒体文件的元数据信息,从而提高了云端服务器的服务质量。
在此,需要说明的是,本实施例中,上传的是媒体文件的哈希索引值,而并非媒体文件本身。这是因为,如果上传媒体文件,由于其信息量较大,则会因为网络带宽等因素而影响其效果。而上传媒体文件的哈希索引值,如果以每个媒体文件的哈希索引值为64位计算,1000个媒体文件的数据量在10k的数量级,这对于普通家庭网络,如ADSL网络来说,是能够承受的。
相应地,如图5所示,是本发明公开的第一实施例的多媒体播放器的结构示意图,该多媒体播放器应用图1实施例所述的方法流程来获取媒体文件的元数据信息。其中,多媒体播放器包括:
查询模块51,用于查询云端服务器中是否存在多媒体播放器需要获取的媒体文件的元数据信息;
多媒体播放器不是直接分析存储设备中的媒体文件的元数据信息,而是通过查询模块51向云端服务器发送查询请求的方式来查询云端服务器中是否存在需要获取的媒体文件的元数据信息,如关键帧的位置,缩略图、音视频编码类型、码率、时长等元数据信息。
云端服务器,用于查询自身是否存在多媒体播放器需要获取的媒体文件的元数据信息,得到查询结果,以及将所述查询结果返回给多媒体播放器。
具体地,云端服务器包括索引模块和存储模块。
其中,索引模块用于接收查询模块51发来的查询请求,并响应该查询请求,查询存储模块中是否存储有多媒体播放器需要获取的媒体文件的元数据信息;存储模块用于存储媒体文件的元数据信息,以及将查询结果返回给查询模块51。
获取模块52,用于当查询模块51的查询结果为是时,从云端服务器中获取媒体文件的元数据信息;
分析模块53,用于当查询模块51的查询结果为否时,分析该媒体文件,获取媒体文件的元数据信息。
查询模块51从云端服务器中可能能够查询到存储设备中的媒体文件的元数据信息,也可能查询不到存储设备中的媒体文件的元数据信息。当查询模块51的查询结果为是时,即查询模块51能够查询到所需要获取的媒体文件的元数据信息时,那么获取模块52则用于从云端服务器处获取媒体文件的元数据信息。当查询模块51的查询结果为否时,则表明从云端服务器中查询不到所需要获取的媒体文件的元数据信息时,分析模块53则用于分析该媒体文件,以获取媒体文件的元数据信息。
如此,多媒体播放器在获取媒体文件的元数据信息时,首先选择从云端服务器中查询是否有需要获取媒体文件的元数据信息,并在查询结果为是时,从云端服务器中获取媒体文件的元数据信息。当从云端服务器中查询不到所需要的媒体文件的元数据信息时,才对该媒体文件进行分析。由于从云端服务器中查询所需媒体文件的元数据信息所花费的时间比直接分析媒体文件的时间少,并且由于云端服务器中存储有大量的媒体文件的元数据信息,多媒体播放器所需要获取的大多数媒体文件的元数据信息都能从云端服务器中查询并获取到,因此与现有技术相比,本发明的多媒体播放器能够较快地获取到媒体文件的元数据信息,从整体上减少了多媒体播放器获取媒体文件的元数据信息的时延,提高了用户的体验度。
需要说明的是,云端服务器中的索引模块可以是云端服务器内置的快速搜索引擎。快速搜索引擎根据查询模块51发来的查询请求,通过建立倒排文档索引的方式来能查询多媒体播放器需要的媒体文件的元数据信息,并通过存储模块将查询结果给查询模块51。
查询模块51根据返回的查询结果,通知获取模块52或分析模块53进行下一步的操作。具体地,查询模块51根据查询结果,判断能够从云端服务器中获取到需要的媒体文件的元数据信息时,则通知获取模块52获取需要的媒体文件的元数据信息。查询模块51根据查询结果,判断不能从判断能够从云端服务器中获取到需要的媒体文件的元数据信息时,则通知分析模块53分析该媒体文件,以获取媒体文件的元数据信息。
其中,获取模块52获取媒体文件的元数据信息的方式有多种。一种方式是,获取模块52可以向云端服务器发送获取媒体文件的元数据信息的请求,并接收云端服务器的存储模块返回的媒体文件的元数据信息。另一种方式是,为了节约多媒体播放器与云端服务器的交互流程,当云端服务器的索引模块能够查询到多媒体播放器所需的媒体文件的元数据信息时,存储模块还对多媒体播放器需要获取的媒体文件的元数据信息进行打包,并将打包后的媒体文件的元数据信息和查询结果一起返回给查询模块51,查询模块51再将媒体文件的元数据信息传送给获取模块52即可。当云端服务器的索引模块未查询到所需的媒体文件的元数据信息时,仍然通过存储模块返回查询结果给查询模块51,只是该查询结果中未携带有媒体文件的元数据信息。
在实际使用中,获取模块52和分析模块53可以用同一个模块实现,即该模块根据查询模块51的不同命令,进行获取媒体文件的元数据信息或分析媒体文件的操作。
如图6所示,是本发明公开的第二实施例的多媒体播放器的结构示意图,与图5的区别在于,该多媒体播放器还包括哈希索引值生成模块54,且查询模块51具体由查询请求发送单元511和查询结果接收单元512组成。
其中,哈希索引值生成模块54,用于为该媒体文件生成唯一的哈希索引值;
查询请求发送单元511,用于将哈希索引值生成模块54生成的媒体文件的哈希索引值上传至云端服务器。
查询结果接收单元512,用于接收云端服务器以该哈希索引值为索引,查找其是否存储有与该哈希索引值对应的媒体文件的元数据信息后返回的查询结果。
具体地,云端服务器还用于接收该哈希索引值,并查询自身存储的云端哈希列表中是否存储有查询请求发送单元511上传的哈希索引值。由于云端哈希索列表中的哈希索引值与云端服务器中存储的媒体文件的元数据信息一一对应,因此,如果云端哈希列表中存储有该哈希索引值,则表明云端服务器中存储有多媒体播放器需要获取媒体文件的元数据信息。此时,获取模块52则可以从云端服务器中获取需要的媒体文件的元数据信息。若查询结果表明,云端哈希索列表中不存在上传的媒体文件的哈希索引值,则表明从云端服务器中获取不到需要获取的媒体文件的元数据信息,则分析模块53需要对媒体文件进行分析。
需要说明的是,若需要获取的是多个媒体文件的元数据信息,哈希索引值生成模块54则需要分别为每一个媒体文件对应生成一个唯一的哈希索引值,以及还将生成的多个哈希索引值结合起来,生成一张媒体文件哈希列表,并通过查询请求发送单元上传给云端服务器。云端服务器的索引模块可以将该媒体文件哈希列表与自身存储的云端哈希列表进行比较,查询云端哈希列表中是否存储有媒体文件哈希列表中的哈希索引值,进而判断服务器中是否存储有需要获取媒体文件的元数据信息。
通过哈希索引值生成模块54和查询模块51,可以将媒体文件的哈希索引值或媒体文件哈希列表上传至云端服务器。云端服务器中的索引模块快速查询自身的云端哈希列表中是否存在上传的媒体文件的哈希索引值,得到查询结果并通过存储模块返回给多媒体播放器。本实施例中,查询请求发送单元511可以通过云端提供的Web服务接口将媒体文件的哈希索引值或媒体文件哈希列表上传给云端服务器。一个查询请求发送单元只能通过一个Web服务接口上传媒体文件哈希列表,而一个Web服务接口可接收多个不同的查询请求发送单元上传的媒体文件的哈希索引值或媒体文件哈希列表。
需要说明的是,由于查询请求发送单元上传的媒体文件哈希列表中,包含多个媒体文件的哈希索引值。在这些哈希索引值中,可能绝大部分能够从云端哈希列表中找到。而对于哈希索引值未能从云端哈希列表中找到的媒体文件,那么分析模块53则要对其进行分析,以获取这些媒体文件的元数据信息。从而使得多媒体播放器能够进行下一步的操作。
本实施例中,查询请求发送单元上传给云端服务器的不是媒体文件本身,而是媒体文件的哈希索引值。如此操作的原因是由于媒体文件的数据量太大,如果上传媒体文件,是普通家庭网络不能承受的,从而影响查询效果。而采用上传媒体文件的哈希索引值的方式,因为其数据量小,普通家庭网络可以承受从而提高查询效率,进而减少了多媒体播放器获取媒体文件的元数据信息所花费的时间,提高了用户体验度。
图7所示的是本发明公开的一种实施例的哈希索引值生成模块的结构示意图,哈希索引值生成模块根据媒体文件的元信息和采样信息,按照消息摘要算法MD生成唯一的哈希索引值。具体地,哈希索引值生成模块包括:
元信息获取单元71,用于获取所述媒体文件的元信息;
采样单元72,用于对所述媒体文件进行采样,得到采样信息;
哈希索引值生成单元73,用于根据所述媒体文件的元信息和采样信息,按照消息摘要算法MD生成唯一的哈希索引值。
图8所示的是本发明公开的第三种实施例的多媒体播放器的结构示意图。图8与图6实施例的区别在于:多媒体播放器还包括元数据传送模块55和哈希索引值传送模块56。
元数据传送模块55,用于在查询结果接收单元512接收到的查询结果为否时,将分析模块53分析该媒体文件获取的媒体文件的元数据信息上传至云端服务器;如此,则可以扩充云端服务器中存储的媒体文件的元数据信息的数量。其它多媒体播放器在云计算的服务支持下,通过查询云端服务器,即可以共享元数据传送模块55上传的媒体文件的元数据信息,从而提高了云端服务器的服务质量。
哈希索引值传送模块56,用于在查询接收单元512接收到的查询结果为否时,将哈希索引值生成模块54生成的媒体文件的哈希索引值上传至云端服务器。如此,云端服务器则可以根据接收到的哈希索引值更新云端哈希列表中的信息,从而使得云端哈希列表存储的哈希索引值的数量在不断增长。当云端服务器的索引模块接收到其它多媒体播放器发来的媒体文件的哈希索引值时,则可以查询更新后的云端哈希列表中是否存在其它多媒体播放器发来的媒体文件的哈希索引值。如此,更多媒体文件的哈希索引值可以从云端服务器中查询到,相应地,更多媒体文件的元数据信息则可以从云端服务器中查询并获取到,从而提高了从云端服务器中获取到需要的媒体文件的元数据信息的概率,提高了云端服务器的服务质量。需要说明的是,在实际运用中,可将查询请求发送单元512、元数据传送模块55、哈希索引值传送模块56 集成为一个功能模块。
另外,云端服务器还可以对其存储的媒体文件的元数据信息进行分析,从而可以得到最流行的媒体文件的元数据信息,版本最多的媒体文件的元数据信息。通过这些信息,云端服务器一方面可以获取到多媒体播放器的一些统计信息,另一方面还可以对热门的媒体文件的元数据信息进行预推动等应用。
图9所示的是本发明实施例中公开的获取媒体文件的元数据信息的系统的结构示意图,包括:
多媒体播放器,用于查询云端服务器中是否存在需要获取的媒体文件的元数据信息;
云端服务器,用于查询自身是否存在多媒体播放器需要获取的媒体文件的元数据信息,得到查询结果,以及将查询结果返回给多媒体播放器;
该多媒体播放器还用于在接收到的查询结果为是时,从云端服务器中获取媒体文件的元数据信息;以及在接收到的查询结果为否时,分析该媒体文件,获取该媒体文件的元数据信息。
具体地,多媒体播放器包括:
查询模块51,用于查询云端服务器中是否存在多媒体播放器需要获取的媒体文件的元数据信息;
获取模块52,用于当查询模块51的查询结果为是时,获取媒体文件的元数据信息;
分析模块53,用于当查询模块51的查询结果为否时,分析媒体文件,获取媒体文件的元数据信息。
本发明提出获取媒体文件的元数据信息的方法、系统及多媒体播放器,通过先查询云端服务器中是否存储有需要获取的媒体文件的元数据信息,当查询结果为是时,则从云端服务器中直接获取媒体文件的元数据信息,当从云端服务器中获取不到需要获取的媒体文件的元数据信息时,才对媒体文件进行分析,以获取媒体文件的元数据信息。由于从云端服务器查询媒体文件的元数据信息所花费的时间远小于直接分析媒体文件所花费的时间,并且基于云端服务器庞大的媒体文件元数据信息存储量,绝大多数需要获取的媒体文件的元数据信息都能在云端服务器中获取到。如此,则能够从整体上减少获取媒体文件的元数据信息的时间,提高用户的体验度。
另一方面,由于还将分析媒体文件后得到的媒体文件的元数据信息上传给云端服务器,如此则扩充了云端服务器中存储的媒体文件的元数据信息。其它多媒体播放器在云计算的服务支持下,也可以共享上传的媒体文件的元数据信息,从而提高了从云端服务器中获取到需要获取的媒体文件的元数据信息的概率,进一步地减少了获取媒体文件的元数据信息的时间。从另一方面来说,也提高了云端服务器的服务质量。
以上对本发明实施例所提供的,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。