你如何用Java编辑MP4 ID3标签?

时间:2011-05-20 21:19:05

标签: java mp4 id3

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

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

  1. 我发现了一个非常类似问题的问题/答案:How do you Edit Video ID3v2 Tags in Java(它描述了如何使用一个名为JID3的音频文件库来编辑视频ID3标签),但我可以'为我的生活弄清楚如何将其实际导入日食项目并使用它。我基本上解压缩它并将所有包添加到项目中,但有一次它使得电影文件后来对任何媒体播放器都不可读。如果有人具备如何导入和使用JID3的具体知识,那就太棒了。

  2. 我发现这个网站:http://willcode4beer.com/parsing.jsp?set=mp3ID3有一些看似很好的代码来读写ID3标签,不幸的是它不能正常地返回问号字符串或告诉我该文件是不是自发的(它会在一段时间内工作,然后在没有任何变化的情况下再工作一次)。然而,我喜欢简单地读取文件的字节或ASCII并以这种方式查找/编辑ID3标签的想法,这样如果有人知道该怎么做,那就太棒了。

  3. 提前致谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

在这种情况下,您可能希望查看JCodec中可用的新API(org.jcodec.movtool.MetadataEditor)。  它还有一个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