可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I want to be specific as to what I am asking. I am not asking to modified any MP4 files, just extract metadata such as Width and Height and bitrate and encoding and this is not in the MP3 tags.
I have tested Xuggle which works, but I need to have a library that does not use JNI or any native code.
I already looked into MP4Parser, and Apache Tika, and they both does not extract metadata, just tag info or alter the file.
Is there such java lib?
回答1:
I actually found what I was looking for using Mp4Parser
here is a simple lines of code to get what I wanted using 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 contains all the info I needed, now I just have to parse b to get exactly what I want.
回答2:
At present (2015), Android SDK provides MediaMetadataRetriever class for extracting metadata:
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);