我想具体说明我在问什么。我不是要求修改任何MP4文件,只是提取元数据,如宽度和高度,比特率和编码,这不是在MP3标签。是否有一个用于提取MP4元数据的JAVA API
我测试了Xuggle的工作原理,但我需要一个不使用JNI或任何本机代码的库。
我已经看过MP4Parser和Apache Tika,它们都不提取元数据,只是标记信息或更改文件。
有没有这样的java lib?
我想具体说明我在问什么。我不是要求修改任何MP4文件,只是提取元数据,如宽度和高度,比特率和编码,这不是在MP3标签。是否有一个用于提取MP4元数据的JAVA API
我测试了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);
在构造函数IsoFile支持FileChannel? – Mazze
@Mazze [IsoFile不再支持FileChannel](https://github.com/sannies/mp4parser/blob/master/isoparser/src/main/java/com/coremedia/iso/IsoFile.java)。将代码更新为: 'FileDataSourceImpl fileDataSource = new FileDataSourceImpl(“content/Video_720p_Madagascar-3.mp4”); IsoFile isoFile = new IsoFile(fileDataSource); ' – Ngz
@churk你将如何处理'UnknownBox'解析成'Mp4Parser'库? – JBaba