• 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

  • 相关阅读:
    `cd -`
    .git文件夹过大的解决方法
    避免对函数参数的修改
    2020年10月 修改Ant Design Pro底部版权信息的方法
    度目-人脸应用套件 文档中的坑
    "A little like that j-thing"
    Linux安装MySQL后设置密码
    append对len和cap的影响
    s := []int{0, 1, 2, 3, 8: 100}
    Python学习笔记
  • 原文地址:https://www.cnblogs.com/attilax/p/15197257.html
Copyright © 2020-2023  润新知