Есть ли JAVA API для извлечения метаданных MP4

Я хочу уточнить, о чем я спрашиваю. Я не прошу модифицировать какие-либо файлы MP4, просто извлеките метаданные, такие как ширина и высота, битрейт и кодировка, и этого нет в тегах MP3.

Я протестировал Xuggle, который работает, но мне нужна библиотека, которая не использует JNI или любой собственный код.

Я уже изучил MP4Parser и Apache Tika, и они оба не извлекают метаданные, а просто помечают информацию или изменяют файл.

Есть ли такая java-библиотека?


person Churk    schedule 01.10.2012    source источник


Ответы (2)


Я действительно нашел то, что искал, используя 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, чтобы получить именно то, что я хочу.

person Churk    schedule 02.10.2012
comment
Поддерживает ли IsoFile FileChannel в конструкторе? - person Mazze; 27.03.2015
comment
@Mazze IsoFile нет больше не поддерживает FileChannel. Обновите код до этого: FileDataSourceImpl fileDataSource = new FileDataSourceImpl("content/Video_720p_Madagascar-3.mp4"); IsoFile isoFile = new IsoFile(fileDataSource); - person Ngz; 15.04.2015
comment
@churk Как вы будете обрабатывать UnknownBox синтаксический анализ в Mp4Parser lib? - person JBaba; 20.10.2017
comment
Не забудьте закрыть канал fc.close(), когда закончите. - person mwieczorek; 09.12.2017

В настоящее время (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);
person Kirill Feoktistov    schedule 19.10.2015