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