是否有用于提取MP4元数据的JAVA API
我想具体说明我的要求。 我不是要求修改任何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);