Доступ к камере High FPS на AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Доступ к камере High FPS на Android

Сообщение Anonymous »

Есть телефоны с официальной поддержкой для высокой записи FPS, таких как Galaxy S5 и S6. Я попробовал оба, и вы можете записать видео с высоким FPS (60 или даже 120 кадров в секунду) с приложением камеры по умолчанию. (Или на S6, используя функцию «Пропускная камера» Gear VR.) Но: когда вы запросите возможности камеры через стандартные API Android API (попробовали ее на S5 на 4.4 и 5.0 и S6 на 5.1, попробовали как старые, так и новые API Camera2) во всех случаях, 30 FPS сообщается о высокой доступности. Означает ли это, что эти телефоны используют частные запатентованные API для доступа к высоким возможностям FPS, и нет стандартного способа доступа к более высоким FPS? Является ли это недостатком производителя (который может измениться с помощью будущих версий программного обеспечения или телефонов), или я просто что-то упускаю?
Мне даже не нужно замедленное движение, просто камера с высокой частотой кадров для использования в реальном времени, так что 60 кадров в секунду было бы достаточным.List a = camera.getParameters().getSupportedPreviewSizes();
List b = camera.getParameters().getSupportedPreviewFpsRange();
int[] c = new int[2];
camera.getParameters().getPreviewFpsRange(c);
< /code>

То же самое в API Camera2: < /p>

CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String[] cameras = manager.getCameraIdList();
for(String camera : cameras) {
CameraCharacteristics cc = manager.getCameraCharacteristics(camera);
Range[] fpsRange = cc.get(cc.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES);
}
< /code>

Я получаю только диапазоны:
[15, 15], [24, 24], [10, 30], [15, 30], [30, 30] (даже меньше диапазонов со старым камером API). CreateCondessIningHighspeedCaptureSession ().
Но он определяет высокоскоростную видеозапись как «частота кадров> = 120 кадров», поэтому мне даже не нужно понадобиться для 60 кадров в секунду. В любом случае, я запросил эту возможность, но, похоже, она не поддерживается на S6. Код, который я попробовал: < /p>

CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String[] cameras = manager.getCameraIdList();
for(String camera : cameras) {
CameraCharacteristics cc = manager.getCameraCharacteristics(camera);
CameraCharacteristics.Key aa = cc.REQUEST_AVAILABLE_CAPABILITIES;
for (int i = 0; i < cc.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES).length; i++) {
Log.e(TAG, "Capability: " + cc.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES));
}
}
< /code>

Он говорит, что он только поддерживает возможности 0, 1, 2, 3, 5, 6.
request_available_capabilities_constraind_high_speed_video будет 9. < /p>

В этом моменте у меня в значительной степени не так, если эти идеи, исходящие на эти возможности, не доступны на этих возможностях. Любая помощь высоко ценится. Мне также любопытно, какие поддерживают FPS другие новые флагманские устройства отчеты через стандартные API, так как я мог бы проверить его только на 3 устройствах.

Подробнее здесь: https://stackoverflow.com/questions/356 ... on-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»