如何在 Java 中编辑 MP4 ID3 标签?

Posted

技术标签:

【中文标题】如何在 Java 中编辑 MP4 ID3 标签?【英文标题】:How do you Edit MP4 ID3 Tags in Java? 【发布时间】:2011-05-20 21:19:05 【问题描述】:

前段时间我问了一个类似的问题,但使用的是 python,并且从那时起决定切换到 Java,因为似乎有更多的资源可以做这种事情。基本上,我需要某种库、想法或指令,以允许我在 MP4 文件中编辑 ID3 标签,就像在 iTunes 中找到的那种。如果有人知道任何事情,将不胜感激。

到目前为止,我已经完成了以下工作:

    我发现了一个非常相似的问题/答案:How do you Edit Video ID3v2 Tags in Java(它描述了如何使用用于名为 JID3 的音频文件的库来编辑视频 ID3 标签),但我不知道为了我的一生,如何将它实际导入 Eclipse 项目并使用它。我基本上解压了它并将所有的包添加到项目中,但是有一次它起作用了,之后任何媒体播放器都无法读取电影文件。如果有人对如何导入和使用 JID3 有专门的了解,那就太好了。

    我找到了这个站点:http://willcode4beer.com/parsing.jsp?set=mp3ID3,它有一些看似不错的代码用于读取和写入 ID3 标签,不幸的是它无法正常工作,不断返回问号字符串或告诉我文件不存在自发地(它实际上会工作一次,然后在没有任何变化的情况下再次工作)。尽管如此,我还是喜欢简单地读取文件的字节或 ASCII 并以这种方式查找/编辑 ID3 标签的想法,所以如果有人知道该怎么做,那就太棒了。

提前致谢。

【问题讨论】:

你看过id3.org吗? 【参考方案1】:

MP4 中的元数据不一定是 ID3 格式。有可能使用 ID3,但它没有被广泛使用。然后 ID3 字节位于 /moov/meta/id32 框中。 iTunes 文件在 /moov/udta/ 中包含它们的元信息...有多个框,如“@cmt”、“@nam”、“@des”、“@cpy”,每个框都包含一个字符串) 评论、名称、描述、版权。查看http://code.google.com/p/mp4parser/ 以可视化、解析和编写 MP4 文件。

【讨论】:

【参考方案2】:

如果我理解正确,您希望能够编辑以下元数据:艺术家、曲目、封面图片等,然后能够在 iTunes 或 QuickTime 中查看您的更改。

在这种情况下,您可能需要查看 JCodec (org.jcodec.movtool.MetadataEditor) 中提供的新 API。 它还有一个 CLI (org.jcodec.movtool.MetadataEditorMain)。

这是基本用法:

# Changes the author of the movie
./metaedit -f -si ©ART=New\ value file.mov

或者通过 Java API 做同样的事情:

MetadataEditor mediaMeta = MetadataEditor.createFrom(new
    File("file.mp4"));
Map<Integer, MetaValue> meta = mediaMeta.getItunesMeta();
meta.put(0xa9415254, MetaValue.createString("New value")); // fourcc for '©ART'
mediaMeta.save(false); // fast mode is off

您可以在此处找到完整的文档:http://jcodec.org/docs/working_with_mp4_metadata.html

【讨论】:

以上是关于如何在 Java 中编辑 MP4 ID3 标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何用 java 读/写 ID3v2 标签?

如何为 Java 剪辑使用 ID3 标记(音频文件详细信息和信息)

寻找用于编辑 AAC 元数据(M4A 文件)的开源库 [关闭]

如何在 python 编程中查看和编辑元标记

编程语言中的 ID3 标签编辑

使用 Java ID3 标签库从 MP3 文件中获取图像