MediaCodec кодирует видео с помощью inputSurface, но пропускает кадры - PullRequest
1 голос
/ 19 июня 2019

Я ищу самый быстрый способ «декодировать, редактировать, кодировать» видео на устройствах Android.Поэтому я выбираю MediaCodec с Surface для ввода и вывода.

Это моя идея:
1. декодировать файл mp4 с помощью MediaCoder, вывод - SurfaceTexture;
2. использовать OpenGL для редактирования поверхности, вывод - текстуру;
3. использоватьMediaCodec для кодирования, ввод - Surface

. Проблема в том, что декодирование и редактирование выполняются намного быстрее, чем кодирование , поэтому, когда я декодировал и редактировал 50 кадров, кодирование может занимать всего 10 кадров.но поскольку я использую поверхность для ввода с помощью Encode, я не знаю, использовал ли кодировщик все предыдущие кадры.так что 40 кадров потеряны.

Есть ли какой-нибудь способ сообщить мне состояние потребления поверхности, чтобы я мог контролировать скорость декодирования или любую другую идею?

...