Используйте MediaCodec и MediaExtractor для декодирования и кодирования видео
Мне нужно декодировать видео в последовательность растровых изображений, чтобы я мог изменить их, а затем сжать их обратно в видеофайл в Android.
Я планирую управлять этим с помощьюgetFrameAtTime
и сохранить его в последовательности изображений. Затем я могу изменить изображения в последовательности и кодировать их обратно в фильм. Но у меня есть две проблемы с этим:
getFrameAtTime
предназначен для создания миниатюр и не гарантирует возвращение правильного кадра. Это делает видео запаздывающим.Во-вторых, сохранение изображений и их чтение занимает много времени.Я прочитал, что правильный способ сделать декодирование с MediaExtractor, это нормально, но у меня есть только примеры, чтобы сделать его прямо наsurfaceView
, Есть ли способ для меня, чтобы преобразоватьoutputBuffer
в растровое изображение?
Мне нужно, чтобы он работал с уровнем API от 16 и выше.