Android OpenGL захват видео - PullRequest
       17

Android OpenGL захват видео

0 голосов
/ 17 сентября 2010

Кто-нибудь знает какой-нибудь удобный способ захвата видео в файл или поток из приложения OpenGL на устройстве Android?

Например, можем ли мы захватывать видео из вида, вида opengl?

Я только что узнал следующее: 1) Мы можем получать кадры, используя glReadPixels.(Нет видео на этом шаге?) 2) MediaRecorder может кодировать видео, но как мы можем предоставить его в качестве исходного кода, если это возможно?3) Какие-нибудь рабочие порты ffmpeg (например) или другие библиотеки кодирования?Есть несколько руководств по использованию portng ffmpeg в сочетании с NDK.Итак, имея необработанные кадры и рабочий порт ffmeg, мы можем создавать видео?Есть какие-то проблемы на этом этапе?Кому-нибудь удалось успешно перенести любую библиотеку кодирования?Какие компоненты мне нужны из ffpmeg?

Рекомендуемые форматы: mp4 или flv.Целевые устройства> 2.1.NDK не проблема

1 Ответ

0 голосов
/ 19 сентября 2010

Не простой ответ на ваши вопросы, но вот несколько советов, по крайней мере, чтобы вы пошли в правильном направлении.

Для захвата видеокадров (без просмотра изображений), например, из обычного MediaPlayer, вам потребуется аппаратная поддержка, и под этим я подразумеваю драйвер устройства.В настоящее время большинство производителей аппаратного обеспечения предоставляют в свои микросхемы, такие как DSP, высокоскоростные ускорители для ускорения использования видео и видеокамер.В дополнение к этому есть поддержка пользовательского пространства (Media Framework и приложения), позволяющая вам получить доступ к драйверу устройства, поэтому медиа-среда будет вашим лучшим выбором для захвата видео.Я бы порекомендовал изучить некоторые проекты с открытым исходным кодом, такие как gst-plugins в Android (http://gitorious.org/rowboat/external-gst-plugins-android/trees/master),, которые определенно дадут вам представление о том, как все складывается.

Для gl-viewВ этом случае вам понадобится какая-то поддержка текстурной потоковой передачи в драйвере GL. В настоящее время нет стандартного способа сделать это (то есть текущие драйверы могут поддерживать его через проприетарное расширение). Использование glReadPixels для захвата кадров не очень эффективнотак как задействован флеш, и это повредит вашей частоте кадров.

...