getFrameAtTime() работает не корректно

Ответить
SniPro
Сообщения: 1
Зарегистрирован: 04 сен 2014, 22:46

getFrameAtTime() работает не корректно

Сообщение SniPro » 04 сен 2014, 23:17

Доброго времени суток
Есть проблема которую не получается решить уже больше положенного времени. Искал ответы в рунете, а так же в англоязычном но только встречаются темы с такой же проблемой как у меня но без решения.
Задача следующая. Требуется (в будущем) снять секундное видео на галакси 5 (там камера снимает с 120 fps) и разбить его на фреймы.
Я пока что тестинг делаю на галакси 4 (камера ограничена до 30 fps).
Вызиваю через intent видео рекордер (с ограничением на 1 секунду). По возвращению результата (Uri) передаю его в MediaMetadataRetriever и пытаюсь разбить на фреймы используя метод ретривера retriever.getFrameAtTime(i*33000, MediaMetadataRetriever.OPTION_CLOSEST) в thread executor и сохранить их после ковертации в JPEG.
Всё сохраняется но почему то все сохранённые фреймы одинаковые, а именно копии первого фрейма.
На сайте developer.android.com указано что аргумент для параметра исчисляется в microseconds, я передаю i * 33000 что-бы с секунды (A.K.A 1000000 microseconds) вытащить ~30 фреймов.
Во всех темах что смог найти по этому методу все пишут что у них тоже самое.
У кого то этот метод работает?
Буду рад альтернативе если кто то делал подобное и имеет рабочую модель.
Заранее спасибо!

Ответить