CN111314297A - musicdb媒体数据提取方法、装置及计算机可读存储介质 - Google Patents
musicdb媒体数据提取方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111314297A CN111314297A CN202010044673.2A CN202010044673A CN111314297A CN 111314297 A CN111314297 A CN 111314297A CN 202010044673 A CN202010044673 A CN 202010044673A CN 111314297 A CN111314297 A CN 111314297A
- Authority
- CN
- China
- Prior art keywords
- data block
- analyzing
- data
- media
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000013075 data extraction Methods 0.000 title claims abstract description 39
- 238000004458 analytical method Methods 0.000 claims abstract description 43
- 238000004590 computer program Methods 0.000 claims description 15
- 101100257999 Danio rerio stambpa gene Proteins 0.000 claims description 4
- 101150076714 stambp gene Proteins 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 230000003993 interaction Effects 0.000 abstract description 4
- 238000009825 accumulation Methods 0.000 description 9
- 230000001186 cumulative effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241001388118 Anisotremus taeniatus Species 0.000 description 1
- 238000010224 classification analysis Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/48—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
- G10L25/51—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/031—Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
本发明涉及多媒体技术领域,尤其涉及一种musicdb媒体数据提取方法、装置及计算机可读存储介质,所述方法包括读取musicdb数据;解析所读取的musicdb数据,提取文件数据块;对提取的文件数据块进行解密及解压缩,获得原始文件数据块;解析原始文件数据块,获得分类数据块;解析分类数据块进行解析,获得解析结果。所述方法通过对文件数据块进行解密、解压缩,提取原始数据内容,之后通过解析识别分类数据块,提取出相应分类的数据结构和媒体信息,解析结果可用于第三方产品/工具使用。此方法使得第三方产品或工具能够快速、便捷的解析musicdb文件数据,提取出macOS系统工具Music中的媒体信息,从而实现用户媒体数据从本地到可移动设备的传输和交互。
Description
技术领域
本发明涉及多媒体技术领域,尤其涉及一种musicdb媒体数据提取方法、装置及计算机可读存储介质。
背景技术
对于苹果可移动设备和macOS系统用户来说,常需要将本地官方工具iTunes中的媒体文件和列表导入到可移动设备的音乐App中。由于手动管理效率很低,而iTunes用户体验不佳,故大部分用户都会选择借助第三方手机管理工具来完成。这些工具会解析iTunes数据库,读取其中媒体数据信息,然后自动与可移动设备进行交互,完成导入。
随着2019年苹果公司macOS Catalina 10.15的发布,macOS将iTunes废弃、拆分,原有的手机管理工具已不能实现用户对于媒体文件的管理需求。其原因是,拆分后的媒体管理工具Music不再使用旧版iTunes的数据库,转而使用musicdb这一新兴格式文件存储媒体数据,原有的数据提取方式已经失效。
作为苹果自身产品,macOS自身附带的官方工具可以解析此种文件,但仅局限于自身提取,无法为其他工具或产品所了解和使用。
由于macOS系统的封闭性,也出于安全性考虑,苹果公司并未公开musicdb文件格式说明文档,故目前尚未出现musicdb媒体数据的提取方案和技术。
发明内容
本发明提供一种musicdb媒体数据提取方法、装置及计算机可读存储介质,旨在不损坏原有文件的情况下,提取出musicdb的媒体数据信息,以供外部工具或产品使用。
为实现上述目的,本发明提供一种musicdb媒体数据提取方法,所述方法包括步骤:
读取musicdb数据;
解析所读取的musicdb数据,提取文件数据块;
对提取的文件数据块进行解密及解压缩,获得原始文件数据块;
解析原始文件数据块,获得分类数据块;
解析分类数据块进行解析,获得解析结果。
优选的,所述解析原始文件数据块,提取获得分类数据块,包括:
解析原始文件数据块,获得原始文件数据块字节数;
以amsh所在位置为数据分类节节头,解析该数据分类节点,获得分类数据块。
优选的,所述解析所读取的musicdb数据,提取文件数据块,包括:
以amfh所在位置为文件头节点,解析该文件头节点,获得文件数据块。
优选的,所述分类数据块包括资源库数据块、播放列表数据块、专辑数据块及艺术家数据块;所述解析分类数据块进行解析,获得解析结果,包括:
对资源库数据块解析;
对播放列表数据块解析;
对专辑数据块解析;
对艺术家数据块解析;
判断文件解析是否完成,若是则输出解析结果;若否,则跳转至执行解析原始文件数据块,获得分类数据块步骤。
优选的,所述对资源库数据块解析包括步骤:
解析资源库数据块,得到资源库媒体文件节点;
解析资源库媒体文件节点,得到资源库子元素数据块;
解析资源库子元素数据块,获得资源库媒体文件叶子节点,自资源库媒体文件叶子节点提取媒体文件的名称、专辑、艺术家、流派、类别和本地路径以及PID信息。
优选的,所述对播放列表数据块解析包括步骤:
解析播放列表数据块,得到播放列表节点;
解析播放列表节点,得到播放列表子元素数据块;
解析播放列表子元素数据块,获得播放列表叶子节点,自播放列表叶子节点获取播放列表的名称、PID和播放列表所包含的媒体文件的PID信息。
优选的,所述对专辑数据块解析包括步骤:
解析专辑数据块,得到专辑信息节点;
解析专辑信息节点,得到专辑子元素数据块;
解析专辑子元素数据块,获得专辑信息叶子节点,自专辑信息叶子节点提取专辑的名称、所属艺术家和PID信息。
优选的,所述对艺术家数据块解析包括步骤:
解析艺术家数据块,得到艺术家信息节点;
解析艺术家信息节点,得到艺术家子元素数据块;
解析艺术家子元素数据块,获得艺术家信息叶子节点,自艺术家信息叶子节点提取艺术家的名称和PID信息。
另一方面,本发明还提供了一种musicdb媒体数据提取装置,包括适于实现各种计算机程序指令的处理器以及适于存储多条计算机程序指令的存储器,所述计算机程序指令由处理器加载并执行任一项所述musicdb媒体数据提取方法的各项方法步骤。
再一方面,本发明还提供了一种计算机可读存储介质,该计算机可读存储介质存储多条计算机程序指令,所述计算机程序指令由计算机装置的处理器加载并执行所述musicdb媒体数据提取方法的各项方法步骤。
本发明的musicdb媒体数据提取方法、装置及计算机可读存储介质,所述方法通过对musicdb文件数据进行提取获得文件数据块,随后对文件数据块进行进行解密、解压缩,提取原始数据内容,之后通过特有方案解析数据节点、分析数据标识从而识别分类数据块,再从各分类数据块中提取出相应分类的数据结构和媒体信息。文件解析结束后,得出相应分类的数据结构和媒体信息,解析结果可用于第三方产品/工具使用。此方法使得第三方产品或工具能够快速、便捷的解析musicdb文件数据,提取出macOS系统工具Music中的媒体信息,从而实现用户媒体数据从本地到可移动设备的传输和交互。
附图说明
图1为本发明musicdb媒体数据提取方法的流程图;
图2为本发明musicdb媒体数据提取方法的具体实施例流程图;
图3是为本发明资源库数据块解析的子流程图;
图4为本发明播放列表数据块解析的子流程图;
图5为本发明专辑数据块解析的子流程图;
图6为本发明艺术家数据块解析的子流程图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明的具体实施方式、结构、特征及其功效,详细说明如下。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参考图1所示,图1是本发明musicdb媒体数据提取方法的流程图。
所述musicdb媒体数据提取方法包括步骤:
步骤S10:读取musicdb文件数据;
步骤S20:解析所读取的musicdb文件数据,提取文件数据块;
步骤S30:对提取的文件数据块进行解密及解压缩,获得原始文件数据块;
步骤S40:解析原始文件数据块,获得分类数据块;
步骤S50:解析分类数据块,得到解析结果。
所述方法通过对musicdb文件数据进行解析,随后进行解密、解压缩,提取原始数据内容,得到分类数据块,进而提取出相应分类的数据结构和媒体信息。此方法使得第三方产品或工具能够快速、便捷的解析musicdb文件数据,提取出macOS系统工具Music中的媒体信息,从而实现用户媒体数据从本地到可移动设备的传输和交互。
具体的,进一步结合附图2,图2为本发明musicdb媒体数据提取方法的具体实施例流程图。
在本实施例中,所述musicdb媒体数据提取方法的各种方法步骤通过计算机软件程序来实现,该计算机软件程序以计算机程序指令的形式存储于计算机可读存储介质中,所述计算机程序指令能够被处理器加载并执行如下步骤S10至步骤S505。
步骤S10:读取musicdb文件数据。
根据需求确认需要提取的musicdb文件路径,打开文件读取musicdb文件数据。
步骤S20:解析所读取的musicdb文件数据,提取文件数据块。
在本发明中,所述解析所读取的musicdb文件数据,提取文件数据块具体为以amfh所在位置为文件头节点,解析该文件头节点,获得文件数据块。
进一步的,在具体实施例中,步骤S20对文件数据块的提取包括子步骤:
S201:读取文件数据前四个字节数据,若为amfh表明所在为文件头节点,解析该文件头节点,取文件头的字节数,记作L21;取文件总字节数,记作L22;
S202:将L22减去L21,得到文件数据块字节数,记作L23;
S203:从文件头节点往后读取L23个字节,获得文件数据块。
步骤S30:对提取的文件数据块进行解密及解压缩,获得原始文件数据块。
基于musicdb文件数据的特性,在本实施例中,采用AES算法对所提取的文件数据块进行解密,随后对解密后的文件数据块进行解压缩,进而获得原始文件数据块。
步骤S40:解析原始文件数据块,获得分类数据块,
具体的,所述解析原始文件数据块,获得分类数据块包括:
解析原始文件数据块,获得原始文件数据块字节数;
以amsh所在位置为数据分类节节头,解析该数据分类节点,获得分类数据块。
进一步的,在具体实施例中,所述解析原始文件数据块,获得分类数据块包括步骤:
S401:定义一个数值记录原始文件数据块解析完成的字节数,记作L41,赋初值0;
S402:从原始文件数据块偏移L41处往后读取四字节数据,若为amsh则表明所在为数据分类节点,解析该数据分类节点头,取该节点头字节数,记作L42;取该数据分类节点总字节数,记作L43;将L43减去L42,得到该数据分类节点的数据块字节数,记作L44;
S403:从该数据分类节点的头节点往后读取L44个字节,获得该数据分类节点的数据块。
S50:对分类数据块进行解析,得到解析结果。
在本发明中,分类数据块的数据分类包括资源库数据块、播放列表数据块、专辑数据块及艺术家数据块。其分类标识分别为资源库信息为0x01;播放列表信息为0x02;专辑信息为0x04;艺术家信息为0x05,基于以上分类数据可将macOS系统工具Music中的媒体信息提取出。在其他实施例中,分类数据块的数据分类还包括其他媒体数据信息,如版本号、年代信息等。
进一步的,结合图2,步骤S50包括子步骤:
S501:对资源库数据块解析;
S502:对播放列表数据块解析;
S503:对专辑数据块解析;
S504:对艺术家数据块解析;
S505:判断文件解析是否完成,若是则输出解析结果;若否,则跳转至步骤S402执行新一轮的分类数据块解析。
具体的,自原始数据块解析得到分类数据块节点,在数据分类节点的头节点中取分类标识,根据此标识对该分类节点的数据块进行解析。该标识若为0x01则执行步骤S501,进行资源库数据块解析;若为0x02则执行步骤S502,进行播放列表数据块解析;若为0x04则执行步骤S503,进行专辑数据块解析;若为0x05则执行步骤S504,进行艺术家数据块解析。
在一个实施例中,对于步骤S505,判断文件解析是否完成,若是则输出解析结果;若否,则跳转至步骤S402执行新一轮的分类数据块解析。
其中,所述判断文件是否解析完成具体为,分类数据块的累积字节数是否等于文件数据块的字节数。
在具体的实施例中,即当该分类解析完成后,将L41加上累积量L43,若其等于L23表明文件解析结束,得出解析结果;否则跳转步骤S40中的S402处执行新一轮的分类数据块解析。
将L41加上累积量L43,其等于L23,即原始文件数据块解析完成的字节数等于文件数据块字节数,表明原始文件数据块中的分类节点数据块均已解析完成,文件解析结束。若小于L23,表明原始文件数据块中仍有分类节点数据块未解析,仍需跳转到S402进行分类数据解析。
在一个实施例中,所述步骤S501为对资源库数据块解析,用于提取资源库中的媒体文件的名称、专辑、艺术家、流派、类别和本地路径以及PID信息。
进一步的,结合附图3,图3是资源库数据块解析的子流程图,其包括子步骤:
S5011:解析资源库数据块,得到资源库媒体文件节点;
S5012:解析资源库媒体文件节点,得到资源库子元素数据块;
S5013:解析资源库子元素数据块,获得资源库媒体文件叶子节点,自资源库媒体文件叶子节点提取媒体文件的名称、专辑、艺术家、流派、类别和本地路径以及PID信息。
具体的,对于资源库数据块解析的具体实施例,其包括步骤:
S5011:读取资源库数据块前四字节数据,若为amtl表明所在为资源库统计节点,解析该节点,取其总字节数,记作L51;取资源库媒体文件总数,记作L52;
若L52等于0表明无媒体文件,资源库解析结束;若L52不等于0,执行步骤S5012。
S5012:定义一个数值记录资源库数据块解析完成的字节数,记作L53,并赋初值L51;定义一个数值记录当前解析得到的资源库媒体文件数目,记作L54,赋初值L54=0;
S5013:从资源库数据块偏移L53处往后读取四个字节,若为amti表明所在为资源库媒体文件节点,解析该节点头,取得该媒体文件对应的专辑、艺术家的PID索引;取该节点头字节数,记作L55;取该节点总字节数,记作L56;将L56减去L55,得到资源库子元素数据块字节数,记作L57;
S5014:从资源库媒体文件节点的头节点后读取L57个字节,获得资源库子元素数据块。
S5015:定义一个数值记录资源库子元素数据块解析完成的字节数,记作L58,赋初值L58=0;
S5016:从资源库子元素数据块偏移L58处往后读取四个字节,若为amob表明所在为资源库媒体文件叶子节点,取其总字节数,记作L59;
S5017:根据叶子节点的类型标识,提取媒体文件的名称、专辑、艺术家、流派、类别和本地路径以及PID信息;
S5018:将L58加上累积量L59,若其等于L57,表明资源库子元素数据块解析结束,执行S5019;否则跳转S5016处执行新一轮资源库媒体文件叶子节点解析;
在此步骤中,对应所解析完的amob资源库媒体文件叶子节点,此时L58数值变更原为L58值加上L59的累积量,即资源库子元素数据块解析完成的字节数等于资源库媒体文件叶子节点的总字节数累积量。当L58数值等于L57,即资源库子元素数据块解析完成的字节数等于资源库子元素数据块字节数,表明资源库媒体文件叶子节点全部已经解析完成,即资源库子元素数据块解析结束。否则,代表着仍有资源库媒体文件叶子节点未解析,跳转至步骤S5016处,进行资源库媒体文件叶子节点解析。
S5019:将L54加1,若其等于L52,表明所有资源库媒体文件节点都已解析完成,资源库数据块解析完成;否则将L53加上累积量L56,并跳转S5013执行新一轮资源库媒体文件节点解析。
在此步骤中,解析完一个amti所在字节节头,则对应的当前解析得到的资源库媒体文件数目L54在原值上加1。若当前解析得到的资源库媒体文件数目L54的数值等于L52时,即当前解析得到的资源库媒体文件数目等于资源库媒体文件总数,代表着所有媒体文件节点均已经完成,即资源库数据块解析完成。否则,代表着仍有媒体文件节点未读取,跳转至步骤S5013需进行解析,此时,资源库数据块解析完成的字节数L53加上L56的累积量,即,对amob的读取自资源库数据块往后偏移L56累积量个字节,进行新一轮的资源库媒体文件节点的解析。
在一个实施例中,所述步骤S502为对播放列表数据块解析,用于提取播放列表中的名称、PID和播放列表所包含的媒体文件PID信息。
进一步的,结合附图4,图4是播放列表数据块解析的子流程图,其包括子步骤:
S5021:解析播放列表数据块,得到播放列表媒体文件节点;
S5022:解析播放列表节点,得到播放列表子元素数据块;
S5023:解析播放列表子元素数据块,获得播放列表叶子节点,自播放列表叶子节点获取播放列表的名称、PID和播放列表所包含的媒体文件的PID信息。
具体的,对于播放列表数据块解析的具体实施例,其包括步骤:
S601:读取播放列表数据块前四字节数据,若为amPl表明所在为播放列表统计节点,解析该节点,取其总字节数,记作L61;取播放列表总数,记作L62;
S602:定义一个数值记录播放列表数据块解析完成的字节数,记作L63,并赋初值L61;定义一个数值记录当前解析得到的播放列表数目,记作L64,赋初值0;
S603:从播放列表数据块偏移L63处往后读取四个字节,若为ampl表明所在为播放列表信息节点,解析该节点头,取该节点头字节数,记作L65;取该节点总字节数,记作L66;将L66减去L65,得到播放列表子元素数据块字节数,记作L67;
S604:从播放列表信息节点的头节点后读取L67个字节,即获得播放列表子元素数据块;
S605:定义一个数值记录播放列表子元素数据块解析完成的字节数,记作L68,赋初值0;
S606:从播放列表子元素数据块偏移L68处往后读取四个字节,若为amob表明所在为播放列表信息叶子节点,解析该节点,取其总字节数,记作L69;
S607:根据该叶子节点的类型标识,提取播放列表的名称、PID和播放列表所包含的媒体文件的PID信息。
S608:将L68加上累积量L69,若其等于L67,即表明播放列表子元素数据块解析结束,执行S609;否则跳转S606处执行新一轮播放列表叶子节点解析;
在此步骤中,当L68加上累积量L69,其等于L67,即播放列表子元素数据块解析完成的字节数等于播放列表子元素数据块,表明播放列表子元素数据块解析完成,否则,仍需跳转S606处执行新一轮播放列表叶子节点解析。
S609:将L64加1,若其等于L62,表明所有播放列表节点都已解析完成;否则将L63加上累积量L66,并跳转S603执行新一轮播放列表节点解析。
在此步骤中,解析完一个ampl所在字节节头,则对应的当前解析得到的播放列表数目L64在原值上加1。若当前解析得到的播放列表数目L64的数值等于L62时,即当前解析得到的播放列表数目等于播放列表文件总数,代表着所有播放列表节点均已经完成,即播放列表数据块解析完成。否则,代表着仍有播放列表节点未读取,需进行解析,仍需跳转至步骤S603,进行新一轮的播放列表叶子节点的解析。
在一个实施例中,所述步骤S503为对专辑数据块解析,用于提取专辑中的名称、PID和专辑所包含的媒体文件的PID信息。
进一步的,结合附图5,图5是专辑数据块解析的子流程图,其包括子步骤:
S5031:解析专辑数据块,得到专辑信息节点;
S5032:解析专辑信息节点,得到专辑子元素数据块;
S5033:解析专辑子元素数据块,获得专辑信息叶子节点,自专辑信息叶子节点提取专辑的名称、所属艺术家和PID信息。
具体的,对于专辑数据块解析的具体实施例,其包括步骤:
S701:读取专辑数据块前四字节数据,若为amal表明所在为专辑统计节点,解析该节点,取其总字节数,记作L71;取专辑总数,记作L72,若L72等于0表明无专辑信息,专辑解析结束;
S702:定义一个数值记录专辑数据块解析完成的字节数,记作L73,并赋初值L71;定义一个数值记录当前解析得到的专辑数目,记作L74,赋初值0;
S703:从专辑数据块偏移L73处往后读取四个字节,若为amai表明所在为专辑信息节点,解析该节点头,取该节点头字节数,记作L75;取该节点总字节数,记作L76;将L76减去L75,得到专辑子元素数据块字节数,记作L77;
S704:从专辑信息节点的头节点后读取L77个字节,即获得专辑子元素数据块;
S705:定义一个数值记录专辑子元素数据块解析完成的字节数,记作L78,赋初值0;
S706:从专辑子元素数据块偏移L78处往后读取四个字节,若为amob表明所在为专辑信息叶子节点,解析该节点,取其总字节数,记作L79;
S707:根据该叶子节点的类型标识,提取专辑的名称、所属艺术家和PID信息;
S708:将L78加上累积量L79,若其等于L77,即表明专辑子元素数据块解析结束,执行S709;否则跳转S706处执行新一轮专辑信息叶子节点解析;
在此步骤中,当L78加上累积量L79,其等于L77,即专辑子元素数据块解析完成的字节数等于专辑子元素数据块,表明专辑子元素数据块解析完成,否则,仍需跳转S706处执行新一轮专辑信息叶子节点解析。
S709:将L74加1,若其等于L72,表明所有专辑信息节点都已解析完成;否则将L73加上累积量L76,并跳转S703执行新一轮专辑信息节点解析。
在此步骤中,解析完一个amai所在字节节头,则对应的当前解析得到的专辑数目L74在原值上加1。若当前解析得到的专辑数目L74的数值等于L72时,即当前解析得到的专辑数目等于专辑文件总数,代表着所有专辑节点均已经完成,即专辑数据块解析完成。否则,代表着仍有专辑信息节点未读取,需进行解析,仍需跳转至步骤S703,进行新一轮的专辑信息叶子节点的解析。
在一个实施例中,所述步骤S504为对艺术家数据块解析,用于提取艺术家的名称和PID信息。
进一步的,结合附图6,图6是艺术家数据块解析的子流程图,其包括子步骤:
S5041:解析艺术家数据块,得到艺术家信息节点;
S5042:解析艺术家信息节点,得到艺术家子元素数据块;
S5043:解析艺术家子元素数据块,获得艺术家信息叶子节点,自艺术家信息叶子节点提取艺术家的名称和PID信息。
具体的,对于艺术家数据块解析的具体实施例,其包括步骤:
S801:读取艺术家数据块前四字节数据,若为amAl则表明为艺术家统计节点,解析该节点,取其总字节数,记作L81;取艺术家总数,记作L82,若L82等于0表明无艺术家信息,艺术家解析结束;
S802:定义一个数值记录艺术家数据块解析完成的字节数,记作L83,并赋初值L81;定义一个数值记录当前解析得到的艺术家数目,记作L84,赋初值0;
S803:从艺术家数据块偏移L53处往后读取四个字节,若为amAi表明所在为艺术家信息节点,解析该节点头,取该节点头字节数,记作L85;取该节点总字节数,记作L86;将L86减去L85,得到艺术家子元素数据块字节数,记作L87;
S804:从艺术家信息节点的头节点后读取L87个字节,即获得艺术家子元素数据块;
S805:定义一个数值记录艺术家子元素数据块解析完成的字节数,记作L88,赋初值0;
S806:从子元素数据块偏移L88处往后读取四个节点,若为amob表明所在为艺术家信息叶子节点,解析该节点,取其总字节数,记作L89;
S807:根据该艺术家信息叶子节点的类型标识,提取艺术家的名称和PID信息;
S808:将L88加上累积量L89,若其等于L87,即表明艺术家子元素数据块解析结束,执行S809;否则跳转S806处执行新一轮艺术家信息叶子节点解析;
在此步骤中,当L88加上累积量L89,其等于L87,即艺术家子元素数据块解析完成的字节数等于艺术家子元素数据块,表明艺术家子元素数据块解析完成,否则,仍需跳转S806处执行新一轮艺术家信息叶子节点解析。
S809:将L84加1,若其等于L82,表明所有艺术家信息节点都已解析完成;否则将L83加上累积量L86,并跳转S803执行新一轮艺术家信息节点解析。
在此步骤中,解析完一个amAi所在字节节头,则对应的当前解析得到的艺术家数目L84在原值上加1。若当前解析得到的艺术家数目L84的数值等于L82时,即当前解析得到的艺术家数目等于艺术家文件总数,代表着所有艺术家信息节点均已经完成,即艺术家数据块解析完成。否则,代表着仍有艺术家信息节点未读取,需进行解析,仍需跳转至步骤S803,进行新一轮的艺术家信息叶子节点的解析。
另一方面,本发明还提供一种musicdb媒体数据提取装置,该musicdb媒体数据提取装置安装有musicdb媒体数据提取系统,该musicdb媒体数据提取系统是由一系列计算机程序指令段组成的musicdb媒体数据提取程序。在本实施例中,所述musicdb媒体数据提取装置包括,但不仅限于,musicdb媒体数据提取系统、适于存储多条计算机程序指令的存储器以及执行各种计算机程序指令的处理器。所述存储器通过数据总线与处理器进行数据传输连接,并存储有所述musicdb媒体数据提取程序。
在其它实施例中,所述musicdb媒体数据提取装置是一种安装有musicdb媒体数据提取系统的个人计算机、工作站计算机等具有数据处理功的计算机装置。所述处理器能够调用存储在所述存储器中的musicdb媒体数据提取程序,并执行该musicdb媒体数据提取程序完成本发明所述musicdb媒体数据提取方法的各项方法步骤。所述存储器可以为一种只读存储器ROM、随机存储器RAM、可擦写存储器EEPROM、快闪存储器FLASH、磁盘或光盘等计算机可读存储介质。所述处理器为一种中央处理器(CPU)、微控制器(MCU)、数据处理芯片、或者具有数据处理功能的信息处理单元。
另一方面,本发明还一种计算机可读存储介质,该计算机可读存储介质存储多条计算机程序指令,所述计算机程序指令由计算机装置的处理器加载并执行本发明所述musicdb媒体数据提取方法的各个步骤。本领域技术人员可以理解,上述实施方式中各种方法的全部或部分步骤可以通过相关程序指令完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘或光盘等。
本发明的musicdb媒体数据提取方法、装置及计算机可读存储介质,通过算法对文件数据块进行解密、解压缩,提取原始数据内容,之后通过特有方案解析数据节点、分析数据标识从而识别分类数据块,再用不同的解析算法从各分类数据块中提取出相应分类的数据结构和媒体信息。文件解析结束后,得出相应分类的数据结构和媒体信息,解析结果可用于第三方产品/工具使用。此方法使得第三方产品或工具能够快速、便捷的解析musicdb文件数据,提取出macOS系统工具Music中的媒体信息,从而实现用户媒体数据从本地到可移动设备的传输和交互。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围内。
Claims (10)
1.一种musicdb媒体数据提取方法,其特征在于,所述方法包括步骤:
读取musicdb数据;
解析所读取的musicdb数据,提取文件数据块;
对提取的文件数据块进行解密及解压缩,获得原始文件数据块;
解析原始文件数据块,获得分类数据块;
解析分类数据块进行解析,获得解析结果。
2.如权利要求1所述的musicdb媒体数据提取方法,其特征在于,所述解析原始文件数据块,提取获得分类数据块,包括:
解析原始文件数据块,获得原始文件数据块字节数;
以amsh所在位置为数据分类节节头,解析该数据分类节点,获得分类数据块。
3.如权利要求2所述的musicdb媒体数据提取方法,其特征在于,所述解析所读取的musicdb数据,提取文件数据块,包括:
以amfh所在位置为文件头节点,解析该文件头节点,获得文件数据块。
4.如权利要求3所述的musicdb媒体数据提取方法,其特征在于,所述分类数据块包括资源库数据块、播放列表数据块、专辑数据块及艺术家数据块;
所述解析分类数据块进行解析,获得解析结果,包括:
对资源库数据块解析;
对播放列表数据块解析;
对专辑数据块解析;
对艺术家数据块解析;
判断文件解析是否完成,若是则输出解析结果;若否,则跳转至执行解析原始文件数据块,获得分类数据块步骤。
5.如权利要求4所述的musicdb媒体数据提取方法,其特征在于,所述对资源库数据块解析包括步骤:
解析资源库数据块,得到资源库媒体文件节点;
解析资源库媒体文件节点,得到资源库子元素数据块;
解析资源库子元素数据块,获得资源库媒体文件叶子节点,自资源库媒体文件叶子节点提取媒体文件的名称、专辑、艺术家、流派、类别和本地路径以及PID信息。
6.如权利要求4所述的musicdb媒体数据提取方法,其特征在于,所述对播放列表数据块解析包括步骤:
解析播放列表数据块,得到播放列表节点;
解析播放列表节点,得到播放列表子元素数据块;
解析播放列表子元素数据块,获得播放列表叶子节点,自播放列表叶子节点获取播放列表的名称、PID和播放列表所包含的媒体文件的PID信息。
7.如权利要求4所述的musicdb媒体数据提取方法,其特征在于,所述对专辑数据块解析包括步骤:
解析专辑数据块,得到专辑信息节点;
解析专辑信息节点,得到专辑子元素数据块;
解析专辑子元素数据块,获得专辑信息叶子节点,自专辑信息叶子节点提取专辑的名称、所属艺术家和PID信息。
8.如权利要求4所述的musicdb媒体数据提取方法,其特征在于,所述对艺术家数据块解析包括步骤:
解析艺术家数据块,得到艺术家信息节点;
解析艺术家信息节点,得到艺术家子元素数据块;
解析艺术家子元素数据块,获得艺术家信息叶子节点,自艺术家信息叶子节点提取艺术家的名称和PID信息。
9.一种musicdb媒体数据提取装置,包括适于实现各种计算机程序指令的处理器以及适于存储多条计算机程序指令的存储器,其特征在于,所述计算机程序指令由处理器加载并执行如权利要求1至8任一项所述musicdb媒体数据提取方法的各项方法步骤。
10.一种计算机可读存储介质,该计算机可读存储介质存储多条计算机程序指令,其特征在于,所述计算机程序指令由计算机装置的处理器加载并执行如权利要求1至8任一项所述musicdb媒体数据提取方法的各项方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010044673.2A CN111314297B (zh) | 2020-01-16 | 2020-01-16 | musicdb媒体数据提取方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010044673.2A CN111314297B (zh) | 2020-01-16 | 2020-01-16 | musicdb媒体数据提取方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111314297A true CN111314297A (zh) | 2020-06-19 |
CN111314297B CN111314297B (zh) | 2022-03-25 |
Family
ID=71160353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010044673.2A Active CN111314297B (zh) | 2020-01-16 | 2020-01-16 | musicdb媒体数据提取方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111314297B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004090658A2 (en) * | 2003-04-07 | 2004-10-21 | Dcode Ncode International Corporation | Digital media file conversion |
CN101452723A (zh) * | 2008-10-16 | 2009-06-10 | 北京光线传媒有限公司 | 一种媒体文件播放方法、播放系统及一种媒体播放器 |
US20140298973A1 (en) * | 2013-03-15 | 2014-10-09 | Exomens Ltd. | System and method for analysis and creation of music |
CN108829765A (zh) * | 2018-05-29 | 2018-11-16 | 平安科技(深圳)有限公司 | 一种信息查询方法、装置、计算机设备及存储介质 |
-
2020
- 2020-01-16 CN CN202010044673.2A patent/CN111314297B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004090658A2 (en) * | 2003-04-07 | 2004-10-21 | Dcode Ncode International Corporation | Digital media file conversion |
CN101452723A (zh) * | 2008-10-16 | 2009-06-10 | 北京光线传媒有限公司 | 一种媒体文件播放方法、播放系统及一种媒体播放器 |
US20140298973A1 (en) * | 2013-03-15 | 2014-10-09 | Exomens Ltd. | System and method for analysis and creation of music |
CN108829765A (zh) * | 2018-05-29 | 2018-11-16 | 平安科技(深圳)有限公司 | 一种信息查询方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
GARY ALLEN VOLLINK: "《Apple MusicDB Format》", 《HTTPS//HOME.VOLLINK.COM/GARY/PLAYLISTER/MUSICDB.HTML》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111314297B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111008321A (zh) | 基于逻辑回归推荐方法、装置、计算设备、可读存储介质 | |
JP2014239495A (ja) | フレームに基づくビデオマッチング | |
EP2701078A1 (en) | Process for summarising automatically a video content for a user of at least one video service provider in a network | |
CN110716739B (zh) | 一种代码变更信息统计方法、系统和可读存储介质 | |
US10394763B2 (en) | Method and device for generating pileup file from compressed genomic data | |
CN109697231A (zh) | 一种案件文书的显示方法、系统、存储介质和处理器 | |
US9465694B2 (en) | Method and apparatus for recovering partition based on file system metadata | |
US9740695B2 (en) | Method for enriching a multimedia content, and corresponding device | |
CN110826461A (zh) | 视频内容识别方法、装置、电子设备及存储介质 | |
Xiang et al. | Forensic analysis of video files using metadata | |
JP2014153977A (ja) | コンテンツ解析装置、コンテンツ解析方法、コンテンツ解析プログラム、およびコンテンツ再生システム | |
JP5786630B2 (ja) | 情報処理装置及び情報処理プログラム | |
CN111314297B (zh) | musicdb媒体数据提取方法、装置及计算机可读存储介质 | |
CN103530311A (zh) | 对元数据进行优先次序排序的方法和装置 | |
CN102693374A (zh) | 数据安全防控中文件分析方法、用户设备、服务器及系统 | |
CN111045994A (zh) | 一种基于kv数据库的文件分类检索方法及系统 | |
CN103886028B (zh) | 从存储设备拷贝文件到广告机的方法和装置 | |
KR20080107143A (ko) | 오디오 신호처리 기반의 음악 및 동영상 추천 시스템 및방법 | |
CN107818136B (zh) | 用于回收垃圾对象数据的方法和装置 | |
CN112597179B (zh) | 日志信息解析方法及装置 | |
CN115269910A (zh) | 音视频审核方法及系统 | |
Stepanyan et al. | Blogs as objects of preservation: Advancing the discussion on significant properties | |
CN103324653A (zh) | 要点抽出装置以及要点抽出方法 | |
CN114302227A (zh) | 基于容器采集的网络视频采集与解析的方法和系统 | |
CN113420097A (zh) | 一种数据分析方法、装置、存储介质及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 1301-1310, building 2, jinlitong financial center building, 1100 Xingye Road, Haiwang community, Xin'an street, Bao'an District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen Ruan Niu Technology Group Co.,Ltd. Address before: No.2903, 15-3, Haitian Road, building C, excellence Times Plaza, n23, Haiwang community, Xin'an street, Bao'an District, Shenzhen City, Guangdong Province Patentee before: AFIRSTSOFT CO.,LTD. |
|
CP03 | Change of name, title or address |