Есть несколько предложений:
ffmpeg декодирует видео pix_fmt - это yuv420p,
вам нужно конвертировать его в BGR32 или RGB565.
Если вы планируете использовать Bitmap и SurfaceView для рендеринга видеокадра.
Если на ваших устройствах Android 2.2+, есть функции c для копирования растровых данных в Bitmap.
Получая указатель с помощью AndroidBitmap_lockPixels и AndroidBitmap_unlockPixels.
Если ваши устройства не поддерживают этот способ,
Вы можете поместить двоичные данные в ByteBuffer и использовать Bitmap.copyPixelsFromBuffer ().
Если ваш SurfaceView будет масштабироваться больше, вы должны решить проблему сглаживания:
Можешь? Как сделать анти-псевдоним для SurfaceView в Android?
Если OpenGL является предпочтительным решением,
GLThread может занимать больше процессорного времени, лучше использовать draw на dirty.
Тема такая интересная. :)