Android: обрезка видео во время записи с использованием MediaCodec и MediaMuxer

Я пытаюсь записать видео с помощью GLSurfaceView и аудио из AudioRecord. В MediaMuxer я отправляю как аудио, так и видео данные при вызове onFrameAvailable. Я установил размер предварительного просмотра камеры 1280 * 720 и предварительный просмотр в полноэкранном режиме. У меня проблема с обрезкой кадра до 600 * 600. Может ли кто-нибудь помочь мне обрезать видеокадр перед кодированием в MediaCodec и MediaMuxer.

Я получаю помощь от демонстрационного кода Android Grafika


person Amit Thaper    schedule 01.08.2016    source источник


Ответы (1)


Вам нужно решить проблемы:

  1. Запись видео с разрешением 600 * 600: используйте видеокодек с указанной шириной и высотой. Это легко сделать, но может случиться так, что не все телефоны имеют аппаратные кодеки, поддерживающие настраиваемое разрешение.
  2. Масштабируйте видео так, чтобы оно не выглядело растянутым, потому что вы изменили соотношение ш / в. Используйте матрицу вида, переданную шейдеру OpenGL, с нужным масштабом.
person alexandr.opara    schedule 01.08.2016
comment
Не могли бы вы уточнить второй момент. Приведите пример использования матрицы представления, переданной в шейдер OpenGL - person Amit Thaper; 02.08.2016
comment
@AmitThaper Удалось ли вам этого добиться? - person Rishabh Srivastava; 06.04.2018