Atitit 解析m4a文件的元数据标签音乐名,歌手 专辑 年代等信息 java版本 目录 1.1. 自己解析mp4 m4a结构 1 1.2. 格式返回 1 1.3. /bookmarksHtmlE

这篇博客介绍了如何使用Java解析m4a文件的元数据,包括音乐名称、歌手和专辑等信息。通过分析MP4的ATOM/BOX结构,展示了如何读取moov/udta/meta/ilst路径下的标签。文中还提及了MP4文件基本结构,并提供了部分代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Atitit 解析m4a文件的元数据标签音乐名,歌手 专辑 年代等信息 java版本

 

目录

1.1. 自己解析mp4 m4a结构 1

1.2. 格式返回 1

1.3. /bookmarksHtmlEverythingIndexPrj/src/apkg/audioM4aParser.java 2

1.4. 2、分割MP4文件 10

 

    1. 自己解析mp4 m4a结构

当然最好的方法是使用cli类库ffmpeg获取了,自己写麻烦。。但更加的底层。。

使用图形化分析工具MP4Reader分析其ATOM/BOX结构

 

可以看到标签路径是 moov/udta/meta/ilst

 

二、MP4文件结构

MP4是由Atom嵌套来存放媒体信息。Atom的基本结构是:

 

[4bytes atom length] [4bytes atom name] [8bytes largesize, if size ==1] [contents of the atom, if any]

    1.  格式返回

{"offset":0,"atomBox":"ftyp","atomBoxSize":28}

{"offset":28,"atomBox":"moov","atomBoxSize":39289}

{"offset":36,"atomBox":"mvhd","atomBoxSize":108}

{"offset":144,"atomBox":"trak","atomBoxSize":38801}

{"offset":38945,"atomBox":"udta","atomBoxSize":372}

{"offset":38953,"atomBox":"meta","atomBoxSize":356}

{"offset":38965,"atomBox":"hdlr","atomBoxSize":34}

{"offset":38999,"atomBox":"ilst","atomBoxSize":310}

{"offset":39007,"atomBox":"----","atomBoxSize":188}

{"offset":39195,"atomBox":"�ART","atomBoxSize":29}

{"offset":39195,"atomBox":"�ART","atomBoxSize":29,"ati�ART":"volin"}

{"offset":39237,"atomBox":"�day","atomBoxSize":28}

{"offset":39237,"atomBox":"�day","atomBoxSize":28,"ati�day":"2018"}

{"offset":39278,"atomBox":"�alb","atomBoxSize":30}

{"offset":39278,"atomBox":"�alb","atomBoxSize":30,"ati�alb":"homyao"}

{"offset":39321,"atomBox":"�gen","atomBoxSize":27}

{"offset":39321,"atomBox":"�gen","atomBoxSize":27,"ati�gen":"das"}

{"offset":39361,"atomBox":"Xtra","atomBoxSize":8}

{"offset":39369,"atomBox":"free","atomBoxSize":18141}

{"offset":57510,"atomBox":"mdat","atomBoxSize":3347320}

 

    1. /bookmarksHtmlEverythingIndexPrj/src/apkg/audioM4aParser.java

package apkg;

 

import java.io.EOFException;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.RandomAccessFile;

import java.util.Arrays;

import java.util.List;

import java.util.Map;

 

import org.apache.log4j.Logger;

 

import com.alibaba.fastjson.JSON;

import com.google.common.collect.Lists;

import com.google.common.collect.Maps;

 

public class audioM4aParser {

private static final int CMP4TAGATOM_ERROR = 0; // 初始化值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值