Atitit m4a文件元数据结构 目录 1. 一、基本概念 1 2. MP4文件由若干称为Atom(或称为box)的数据对象组成, 2 2.1. MP4文件概述 2 2.2. M4A没有视频流而已

Atitit m4a文件元数据结构

 

目录

1. 一、基本概念 1

2. MP4文件由若干称为Atom(或称为box)的数据对象组成, 2

2.1. MP4文件概述 2

2.2. M4A没有视频流而已,从文件头来看就是MP4... 3

2.3. 1、MP4(或M4A)文件开头数据字节结构 4

2.4. mp4是由一个个“box”组成的, 5

2.5. 典型简化mp4 5

2.6. 下图表是对于以上几个重要的box存放信息的说明: 7

2.7. 面这张图是常见的box的树结构图,可以用来大致了解MP4文件的构造。 8

3. Java 8

4. 工具 9

4.1. 图形化分析工具MP4Reader:mp4info 9

4.2. Windows自带音乐可以修改m4a信息了 10

4.3. AudioShell是一个免费的音乐批量重命名+ID3标签修改工具。 10

 

 

  1. 一、基本概念

1、 文件,由许多Box和FullBox组成。

2、 Box,每个Box由Header和Data组成。

3、 FullBox,是Box的扩展,Box结构的基础上在Header中增加8bits version和24bits flags。

4、 Header,包含了整个Box的长度size和类型type。当size==0时,代表这是文件中最后一个Box;当size==1时,意味着Box长度需要更多bits来描述,在后面会定义一个64bits的largesize描述Box的长度;当type是uuid时,代表Box中的数据是用户自定义扩展类型。

5、 Data,是Box的实际数据,可以是纯数据也可以是更多的子Boxes。

6、 当一个Box的Data中是一系列子Box时,这个Box又可成为Container Box。

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

  • MP4文件格式(ISO-14496-12/14)
  1. MP4文件由若干称为Atom(或称为box)的数据对象组成,
  • 每个Atom的起首为四个字节的数据长度(Big Endian)和四个字节的类型标识,数据长度和类型标志都可以扩展。Atom可以嵌套,即其数据域可以由若干其它Atom组成,从而实现结构化的数据。
    1. MP4文件概述

MP4文件就是由各式各样的Box组成的,下表中列出了所有必选或可选的Box类型,√代表Box必选。

具体列表:

正式开始前先对文件的几个重要部分宏观介绍一下,以便诸位在后续学习时心中有数:

1、  ftypbox,在文件的开始位置,描述的文件的版本、兼容协议等;

2、  moovbox,这个box中不包含具体媒体数据,但包含本文件中所有媒体数据的宏观描述信息,moov box下有mvhd和trak box。

        >>mvhd中记录了创建时间、修改时间、时间度量标尺、可播放时长等信息。

        >>trak中的一系列子box描述了每个媒体轨道的具体信息。

3、  moofbox,这个box是视频分片的描述信息。并不是MP4文件必须的部分,但在我们常见的可在线播放的MP4格式文件中(例如Silverlight Smooth Streaming中的ismv文件)确是重中之重。

4、  mdatbox,实际媒体数据。我们最终解码播放的数据都在这里面。

5、  mfrabox,一般在文件末尾,媒体的索引文件,可通过查询直接定位所需时间点的媒体数据。

 

 

    1. M4A没有视频流而已,从文件头来看就是MP4...

A Java API to read, write and create MP4 container. Manipulating containers is different from encoding and decoding videos and audio

https://github.com/sannies/mp4parser

m4a与mp4格式是不是文件结构一样的?



是的,只是M4A没有视频流而已,从文件头来看就是MP4...

 

有的、ID3V2标签,不过和MP3不一样,它不在文件头部,而是在叫moov的BOX里。。。我用WINHEX打开个M4A文件,找ID3是有的,但不在文件头。。。希望我想的是对的。。。我现在仍在研究

 

 由于产品的音乐播放器上需要支持对M4A格式文件的ID3信息和专辑封面信息的显示,查了相关资料,对照M4A的二进制文件,捣鼓出了M4A格式(实际上就是MP4的音频信息)简单的ID3信息及专辑封面的方法。

 

    1. 1、MP4(或M4A)文件开头数据字节结构

+--------------------------------+

|      Header Size (4 bytes)     |大小是按字节顺序存储

+--------------------------------+

|      固定标记 (4 bytes)ftyp    |

+--------------------------------+

|类型 (8 bytes) M4A、mp42、isom等|

+--------------------------------+

| 剩余字节为ASCII编码的字符串信息|

+--------------------------------+

2、此后每一个ATOM的结构都是:4个字节的长度+4个字节的标识符

3、ATOM之间具有包含关系,当A包含B时且B是A的第一个子ATOM,格式如下:

XXXX AAAA xxxx BBBB xxxx CCCC ....

其中XXXX4个字节表示出标记为AAAA的ATOM的总的大小

后续子ATOM包含在这个总的大小之内

也就是XXXX = 8 + xxxx(B) + xxxx(C) + ...

上式中的8表示4个长度字节XXXX以及4个标识符字节AAAA

4、具体包含关系作者也没搞明白,这里仅仅对照m4a格式的二进制文件分析出标签及封面信息如何解析;

 

下面给

---------------------

 

    1. mp4是由一个个“box”组成的,

大box中存放小box,一级嵌套一级来存放媒体信息。box的基本结构是:

  

  其中,size指明了整个box所占用的大小,包括header部分。如果box很大(例如存放具体视频数据的mdat box),超过了uint32的最大数值,size就被设置为1,并用接下来的8位uint64来存放大小。

    1. 典型简化mp4

 

 一个mp4文件有可能包含非常多的box,在很大程度上增加了解析的复杂性,这个网页上http://mp4ra.org/atoms.html记录了一些当前注册过的box类型。看到这么多box,如果要全部支持,一个个解析,怕是头都要爆了。还好,大部分mp4文件没有那么多的box类型,下图就是一个简化了的,常见的mp4文件结构:

  

 

    1. 图表是对于以上几个重要的box存放信息的说明:

 

    1. 面这张图是常见的box的树结构图,可以用来大致了解MP4文件的构造。

  1. Java

 

 

atomBox:ftyp

atomBox:moov

atomBox:mvhd

atomBox:trak

atomBox:udta

atomBox:meta

atomBox:hdlr

atomBox:ilst

atomBox:----

atomBox:�ART

atomBox:�day

atomBox:�alb

atomBox:�gen

atomBox:Xtra

atomBox:free

atomBox:mdat

{

"ARTIST":"volin",

"DATE":"2018",

"ALBUM":"homyao"

}

 

 

 

  1. 工具
    1. 图形化分析工具MP4Reader:mp4info

https://en.freedownloadmanager.org/Windows-PC/MP4-Reader-FREE.html

这个工具相比于mp4info会强大很多,图形化显示信息之外,还会将MP4文件的二进制信息同步显示,方便对比分析。

 

mp4info有问题再win7上,打不开m4a文件,扩展名已经换成mp4。。使用MP4Reader比较好强大。。还有个

Quicktime tool 也比较一般

    1. Windows自带音乐可以修改m4a信息了

标题以及更多信息可以右键属性修改

    1. AudioShell是一个免费的音乐批量重命名+ID3标签修改工具。

AudioShell的主要功能就是对于多种格式的音乐档,包含 MP3, WMA, ASF, WMV, M4A, M4P, M4R, OGG, flac, APE, dsf等等多种格式、多种档案内建标签和资讯的修改。

虽然当前 Windows 8 之后的后版本对于这类音乐的修改已经相当简单好用了,不过如果你一次要处理多个文件、希望能快速处理这些标签、资讯并使用更简单的方法来修改多个文件的文件名,让这些音乐能快速套用专辑名称、歌手名称、歌名等等个讯息来重新命名的话,AudioShell 会是个相当方便的免费小工具。

它可以帮你集成到系统的右键菜单中,想要编辑音频时就可以直接对文件进行编辑操作了,支持标准和非标准的音频/视频文件标签的修改编辑和添加。

 

 

(9+条消息)M4A格式的ID3信息提取 - WeroCPP的专栏 - CSDN博客.html

(9+条消息)M4A格式的ID3信息提取 - zengming00 - CSDN博客.html

(9+条消息)M4A格式的ID3信息提取 - zengming00 - CSDN博客.html

atitit.mp4 视频文件多媒体格式结构详解

 

mp4文件格式解析 - nigaopeng - 博客园.html

原文地址:https://www.cnblogs.com/attilax/p/15197257.html