Запись видео в кольцевой буфер на Android

Я ищу лучший способ (если есть ...) для записи непрерывного видео в кольцевой буфер на SD-карте, позволяющий пользователю записывать события после того, как они произошли.

Стандартный API записи видео позволяет вам просто записывать непосредственно в файл, а когда вы достигнете предела (установленного пользователем или емкости SD-карты), вам придется остановить и перезапустить запись. Это создает окно длиной до 2 секунд, в котором запись не выполняется. Это то, что уже делают некоторые существующие приложения, такие как DailyRoads Voyager. Чтобы свести к минимуму вероятность пропуска чего-то важного, вы можете установить время разделения на что-то длинное, например, 10 минут, но если событие происходит в конце этого промежутка времени, вы теряете пространство, сохраняя 9 минут ничего в начале.

Итак, моя идея на данный момент заключается в следующем: у меня будет большой файл, который будет служить буфером. Я использую некоторый код, который я нашел, чтобы захватить кадры и сохранить их в файл самостоятельно, оборачиваясь в конце. Когда пользователь хочет сохранить какую-то часть, я отмечу ее указателями на начало и конец в буфере. Запись может продолжаться, как и раньше, пропуская регионы, отмеченные для сохранения.

После остановки записи или, может быть, во время этого в фоновом потоке (в зависимости от скорости телефона / карты) я скопирую отмеченную область в другой файл и сниму защиту от перезаписи.

Главный вопрос, если вас не интересуют вышеперечисленные детали: Я не могу найти способ конвертировать отдельные кадры в видеофайл в Android SDK. Является ли это возможным? Если нет, есть ли доступные библиотеки, возможно в нативном коде, которые могут это сделать?

Меня не волнует большой буфер несжатых кадров, но экспортированные видео должны быть сжаты в формате, удобном для Android. Но если есть способ сжать буфер, я хотел бы услышать об этом.

Спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос