Кадры, полученные с камеры, распакованы.Обычно это не тот способ хранения видео, поскольку несжатые кадры слишком велики, чтобы проигрыватель мог их читать и отображать в реальном времени.Вместо этого вы хотите кодировать кадры yuv или rgb, чтобы они были намного меньше, а нагрузка ввода-вывода во время воспроизведения была небольшой.
Формат кодирования, который вы должны использовать, должен быть тем, который ваше устройство может декодировать аппаратно, поскольку декодирование в ЦП также непомерно дорого.В наши дни вам будет хорошо, если вы используете H.264 для видео и AAC для аудио и используете контейнер MP4.К сожалению, если вы включите кодировщики H.264 / AAC (даже с открытым исходным кодом) в свое приложение и планируете зарабатывать на этом деньги, то вы можете посетить MPEG LA , который может захотеть получить отВы, так как H.264 и AAC требуют лицензирования.Я считаю, что этого избежать, если вы используете кодек, который уже лицензирован и установлен на устройстве, например, тот, который используется приложением камеры для записи.Я не знаю, позволяет ли платформа Android получать доступ к кодекам камеры.
Что касается библиотек, я думаю, что libavcodec и libavformat из проекта ffmpeg являются наиболее полными.С помощью этих библиотек вы можете кодировать файлы H.264 / AAC / MP4, предполагая, что проблема с лицензированием не затрагивает вас.