Intereting Posts
Android – как заставить ребенка переопределить родительский метод с кодом FragmentTransaction.replace () Переход с постепенным переходом показывает фрагмент «призрак» Слушатель Glide не работает Есть ли способ поместить дополнения в Intent из настроек? NoClassDefFondError в Android … но класс находится в одной банке, включенной в путь класса Получить страну из координат? Разработка приложения для Android в отдельных рабочих модулях Android SDK эквивалентен для просмотраWillAppear (iOS)? Как изменить тост-сообщение, которое появляется после успешной покупки продукта в биллинге в приложении Возможно ли установить расширенное уведомление по умолчанию в сообщениях с большим текстом? Всплывающее меню библиотеки поддержки Android V7 Невозможно добавить заголовок в список – setAdapter уже вызван Пытается нарисовать текстурированные треугольники на устройстве, но эмулятор работает. Зачем? Как установить разделитель между вкладками в TabLayout библиотеки поддержки дизайна? Eclipse error: «Выбор не может быть запущен, и нет недавних запусков»

60 / 120fps данные предварительного просмотра на устройстве Android?

Мы хотели бы обработать данные предварительного просмотра камеры с частотой кадров в секунду (или 60 кадров в секунду), используя неоновые сборочные или графические шейдеры, чтобы выполнить простую операцию обработки изображений (например, свертку 3×3). Мы НЕ заинтересованы в отображении изображения на экране, поэтому данные камеры должны перейти непосредственно к SurfaceTexture.

Мы думали, что можем сделать это, используя Camera2 API на Nexus 5, используя CameraConstrainedHighSpeedCaptureSession, но не увенчались успехом.

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

Лучший пример использования Camera2 API для высокоскоростной записи: https://github.com/PkmX/lcamera

Чтобы попытаться побудить кого-то опубликовать решение, я помещаю щедрость на этот вопрос.

Solutions Collecting From Web of "60 / 120fps данные предварительного просмотра на устройстве Android?"

Это выполняется в pjsip . Потяните репо на свою машину:

svn checkout -r 4687 https://svn.pjsip.org/repos/pjproject/trunk 

Затем откройте pjmedia/src/swig для примера приложения, которое отображает видеоданные, входящие в провод непосредственно в SurfaceTexture .

Я загрузил два наиболее актуальных исходных файла C (с первого взгляда – есть, конечно, другие) для вас, здесь:

  1. android_dev.c
  2. android_opengl.c

Естественно, эти файлы содержат много ненужного кода для вас, но, надеюсь, у вас есть фрагмент, который вы ищете.

Возможно, вам придется сначала выполнить некоторые из инструкций, которые здесь можно найти для создания pjmedia/src/pjmedia-videodev/android/PjCamera*.java которые обрабатывают минималистичное взаимодействие Java / C, если вы не знаете, как это сделать. Я смог следовать их инструкциям – используя точно такие же версии для NDK (работает с 10d или 10e) и openssl (1.0.2a) – и успешно создавал видео и создавал пользовательское приложение. Этот источник выполняет именно то, что вы ищете, если вы просто модифицируете захват видео C-уровня, чтобы использовать ваш API через крючки JNI так же, как и они.

Для примера использования JNI-перехватчиков для изменения API, посмотрите их папку audiodev в pjmedia.

Если вы строите свой проект, обязательно следуйте инструкциям в самом низу для новых версий NDK для создания openssl 1.0.2a . Обратите внимание на капитал «C» на ./Configure, поскольку выполнение стандарта ./configure может привести к неправильному процессу настройки. Я предлагаю копировать и вставлять предоставленные команды в скрипт. Вы можете пропустить openssl полностью для своих целей; Я только смог заставить мои устройства Android регистрировать учетные записи SIP последовательно, как только я включил поддержку openssl.

Мы успешно модифицировали образец камеры2video, чтобы получить скорость передачи данных на частоте 120 кадров в секунду на Samsung S6.

Код здесь .

Нам еще не удалось извлечь пиксели, но будет обновляться, когда мы это сделаем.