我想具体说明我在问什么。我不是要求修改任何 MP4 文件,只是提取元数据,例如宽度和高度以及比特率和编码,这不在 MP3 标签中。
我已经测试了 Xuggle,它可以工作,但我需要一个不使用 JNI 或任何本机代码的库。
我已经研究过 MP4Parser 和 Apache Tika,它们都不会提取元数据,只是标记信息或更改文件。
有这样的java lib吗?
我实际上使用Mp4Parser找到了我想要的东西
这是使用 Mp4Parser 获得我想要的简单代码行
FileChannel fc = new FileInputStream("content/Video_720p_Madagascar-3.mp4").getChannel();
IsoFile isoFile = new IsoFile(fc);
MovieBox moov = isoFile.getMovieBox();
for(Box b : moov.getBoxes()) {
System.out.println(b);
}
b 包含我需要的所有信息,现在我只需要解析 b 即可得到我想要的。
目前(2015),Android SDK 提供了MediaMetadataRetriever类用于提取元数据:
MediaMetadataRetriever m = new MediaMetadataRetriever();
m.setDataSource(mInputFile);
String extractedHeight = m.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
String extractedWidth = m.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);