Android MediaCodec java.nio.BufferOverflowException

Я хочу закодировать видео с камеры в H.264. Для этого я использую этот код .

Проблема в том, что я получаю java.nio.BufferOverflowException в функции offerEncoder в этой строке inputBuffer.put(input);.

Я обнаружил, что input.length = 2332800 и inputBuffer.limit()=520192.

Кто-нибудь знает, как это исправить?

Или другой обходной путь для кодирования в H.264? Я видел несколько сообщений об этой проблеме, но они мне не помогли.


person Cosmin    schedule 09.09.2014    source источник


Ответы (1)


В этом случае ваши входные данные имеют размер 2,2 МБ, а размер входных буферов составляет всего 508 КБ. В вашем примере кода показана настройка кодировщика для 320x240 (где входные буферы будут иметь размер всего около 112 КБ), в то время как ваши входные данные кажутся слишком большими для этого. И наоборот - какого размера ваши входные кадры? Убедитесь, что это соответствует параметрам, которые вы устанавливаете в кодировщике.

person mstorsjo    schedule 09.09.2014