Android-приложение для поиска видео в формате mp4 по метаданным - PullRequest
2 голосов
/ 29 сентября 2011

У меня есть набор файлов mp4, которые мне нужно загрузить на SD-карту и прочитать в моем приложении для Android.

Приложение должно иметь возможность поиска видео по категориям, поэтому я планировал добавить некоторую информацию о категории в метаданные mp4 перед их загрузкой (вероятно, в поле "description"), а затем использовать ManagedQuery в MediaStore.Video.Media.EXTERNAL_CONTENT_URI чтобы найти их.

Я обновил поле «описание» с помощью Adobe Bridge, но когда я смотрю на теги, возвращаемые поиском, поле «описание» всегда равно нулю. Очевидно, что данные, которые я записываю в файлы mp4, не собираются, когда Android просматривает видеофайл.

Есть ли другой способ записи / поиска метаданных видео?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2017

Вы можете добавлять / удалять / искать поля метаданных в файлах MP4, используя класс метаданных * JCodec класс.

Если вы хотите добавить поле метаданных в файл MP4, вы можете использовать:

MetadataEditor mediaMeta = MetadataEditor.createFrom(new
    File("file.mp4"));
Map<String, MetaValue> meta = mediaMeta.getKeyedMeta();
meta.put("com.android.capture.fps", MetaValue.createFloat(25.));
mediaMeta.save(false); // fast mode is off

В качестве альтернативы то же самое можно сделать из командной строки с помощью инструмента CLI ( MetadataEditorMain ):

./metaedit -sk com.android.capture.fps,float=25.0 file.mp4

В коде Java вы можете получить список метаданных, напримерИтак:

MetadataEditor mediaMeta = MetadataEditor.createFrom(new
    File("file.mp4"));
Map<String, MetaValue> meta = mediaMeta.getKeyedMeta();
for (String key : meta.keySet()) {
    System.out.println(key + ": " + meta.get(key));
}

ИЛИ из командной строки:

./metaedit <file.mp4>

Подробнее об этом: http://jcodec.org/docs/working_with_mp4_metadata.html

0 голосов
/ 29 сентября 2011

Вам, вероятно, стоит взглянуть на MediaStore.Video.VideoColumns.DESCRIPTION.

Вы можете запросить MediaStore.Video.Media.EXTERNAL_CONTENT_URI, как и любой другой поставщик контента: http://developer.android.com/guide/topics/providers/content-providers.html#querying

...