Редактировать метаданные MP4 с помощью MediaCodec API

Android SDK предоставляет класс MediaMetadataRetriever для извлечения метаданных из файлов MP4. Есть ли способ редактировать поля метаданных MP4 с помощью MediaCodec API (без ffmpeg)? Моя задача - сбросить поле rotation.


person Kirill Feoktistov    schedule 19.10.2015    source источник
comment
MediaCodec не работает на этом уровне. Вам нужен API более высокого уровня, такой как MediaMuxer, который включает метод setOrientationHint(). Этот класс предназначен только для создания файлов, а не для их редактирования.   -  person fadden    schedule 19.10.2015
comment
Привет, @fadden, спасибо за ответ. Знаете ли вы какой-либо другой способ редактирования метаданных MP4 без использования ffmpeg?   -  person Kirill Feoktistov    schedule 19.10.2015
comment
Эй, ты нашел решение? у меня такая же проблема   -  person iMDroid    schedule 01.09.2017
comment
Привет @iMDroid. Да, см. этот ответ: stackoverflow.com/a/33278167/3292393   -  person Kirill Feoktistov    schedule 17.05.2018


Ответы (1)


mp4parser кажется тем, что вы ищете, хотя я не уверен, где именно находится поле поворота в MP4 (я не знаю достаточно о расположении файлов). Если вы знаете, в каком блоке (или «атоме») хранятся метаданные, то MetaDataRead и MetaDataInsert — довольно наглядные примеры того, как читать и записывать данные (они специально работают с «Именем»/«Заголовком» iTunes). ", но запись других метаданных работает точно так же, если вы знаете, где они должны располагаться). Надеюсь это поможет!

person monkey0506    schedule 23.11.2015
comment
Привет @monkey_05_06, спасибо за ответ. Я пытался использовать mp4parser для этой задачи, но столкнулся с некоторыми проблемами, связанными с пониманием того, как метаинформация хранится в формате MP4 и как ее безопасно извлечь. Итак, я нашел альтернативное решение, как сбросить вращение, вот оно: stackoverflow.com/questions/33242851/ - person Kirill Feoktistov; 23.11.2015