Обработка Android видео по кадрам во время записи - PullRequest
8 голосов
/ 12 января 2012

Я пытаюсь создать приложение, которое добавляет эффекты к видео во время записи.Есть ли способ, чтобы метод обратного вызова получил кадр, затем применил к нему эффект и записал его.В настоящее время в Android Market есть приложение (Videocam Illusion), которое утверждает, что это единственное приложение, способное сделать это.Кто-нибудь знает, как Videocam Illusion делает это, или имеет несколько ссылок на возможные учебные пособия, в которых описывается обработка видео для Android?

Это похожий вопрос без ответа:

Обработка предварительного просмотра Android во время записи видео

1 Ответ

11 голосов
/ 12 января 2012

К сожалению, (если я не знаю о каком-либо другом методе, предоставляемом API), способ сделать это - использовать прямой поток на камеру и манипулировать им, используя своего рода собственный код для изменения потока. Я делал нечто похожее на это раньше, когда работал над Eetracker - поэтому я расскажу вам, как это работает в принципе.

  1. Открыть поток с помощью NDK (возможно, API, в зависимости от реализаций)
  2. Изменить байты потока - каждый кадр отправляется как отдельный пакет. Вы должны взять каждый пакет с камеры и изменить его. Вы можете сделать замену цветов, или вы можете перевести. Вы также можете использовать OpenGL, чтобы полностью изменить изображение, добавив такие вещи, как эффекты стекла.
  3. Свести изображения обратно
  4. отправьте изображение на контроллер представления для отображения.

Одна вещь, о которой вы должны помнить, - это загрузка и отправка пакетов и изображений, которые происходят примерно за 1/30 секунды для каждого кадра. Поэтому код должен быть чрезвычайно оптимизирован.

...