Я начинаю декодировать/кодировать видео для приложения, и кажется, что BigFlake's site является авторитетной ссылкой на рабочий видеокод. Я скопировал ExtractMpegFramesTest_egl14.java в свой проект и изменил его, чтобы использовать разные пути к файлу, но ничего больше. Он извлекает правильные кадры из предварительно записанных видео, которые я копирую в устройство. Однако, при попытке использовать его с видео, записанным с помощью камеры устройства, я получаю кадры, которые только горизонтальные линии:Почему ExtractMpegFramesTest не работает с вращающимися входными файлами?
После тестирования различных записанных видео, я понял, проблема возникает из повернутых видео. Камера устройства кодирует кадры, когда они поступают из фреймбуфера, а затем помечает метку вращения на видео. Это может быть извлечена из MediaFormat
объекта:
int rotation = format.getInteger("rotation-degrees");
К сожалению, обменивая ширина/высота сохраненного изображения ничего не изменить, чтобы все изображения будут испорчены. Что нужно сделать для кода сохранения для правильной обработки повернутых кадров?