Невозможно получить высокую частоту кадров (кадров в секунду) (около 30 кадров в секунду) во время записи с фронтальной камеры в моем приложении для Android - PullRequest
5 голосов
/ 24 ноября 2011

в моем приложении для Android я заметил, что видео, записанное с фронтальной камеры, записывается с частотой 7-10 кадров в секунду, в то время как задняя камера отлично справляется со своей работой, приложение родной камеры записывает видео с передней камеры со скоростью 29 кадров в секунду.

Я использую следующую функцию для установки частоты кадров

 myRecorder.setVideoFrameRate(30);

но как-то записывает его со скоростью 8 кадров в секунду. в чем проблема? Кроме того, условия освещения, кажется, улучшают его до 15 кадров в секунду, но я хочу, чтобы он был по крайней мере> 25 кадров в секунду, как я могу добиться этого? Можем ли мы использовать NDK для этой цели?

Ответы [ 2 ]

2 голосов
/ 18 июня 2012

Я исследую ту же проблему.Поскольку MediaRecorder уже имеет встроенную реализацию, использование NDK не кажется многообещающим подходом к увеличению количества кадров в секунду.Улучшение буферизации с помощью setPreviewCallbackWithBuffer, как показано в коде на http://www.androidadb.com/source/cellbots-read-only/experimental/android/ioio/samples/ShootOnSight/src/com/cellbots/ioioshoot/CameraView.java.html, кажется многообещающим, но сначала я хотел бы лучше понять многие параметры камеры и то, как они влияют на частоту кадров.

Как вы наверняка знаете, существует множество устройств Android с широким спектром возможностей камеры.Чтобы увидеть возможности вашей конкретной передней и задней камер, вы можете использовать следующий код (например, установив mCameraId в 0 для задней панели и в 1 для передней панели).

    Camera mCamera = Camera.open(mCameraId);
    Camera.Parameters cp = mCamera.getParameters();
    Log.d(TAG, "camera parameters: " + cp.flatten());

Например, вотпараметры камеры, сбрасываемые моим Nexus S (работает под управлением ОС 4.0.4).

ПАРАМЕТРЫ ПЕРЕДНЕЙ КАМЕРЫ NEXUS-S:
06-16 15: 14: 16.909: D / SENSORS_PLUS (24583): камерапараметры:
значения размера изображения = 640x480;
preview-fps-range = 7500,30000;
компенсация минимальной экспозиции = -4;
угол обзора по вертикали = 39,4;
горизонтальный угол обзора = 51,2;
баланс белого = авто;
jpeg-thumbnail-height = 120;
jpeg-quality = 100;
preview-format-values ​​= yuv420sp, yuv420p;
вращение = 0;
jpeg-thumbnail-quality = 100;
focus-mode = fixed;
preview-format = yuv420sp;
preview-size = 640x480;
focal-длина = 0,9;
формат видеокадров = yuv420p;
значения форматов изображений = jpeg;
максимальная компенсация экспозиции = 4;
компенсация экспозиции = 0;
преобладаниеw-frame-rate-values ​​= 15;
шаг компенсации экспозиции = 0,5;
preview-frame-rate = 15;
значения эффекта = нет, моно, негатив, сепия;
значения режима фокусировки = фиксированный;
размер изображения = 640x480;
эффект = нет;
jpeg-thumbnail-width = 160;
значения баланса белого = авто, лампа накаливания, флуоресцентная лампа, дневной свет,облачный дневной свет;
формат изображения = jpeg;
расстояние фокусировки = 0,20,0,25, бесконечность;
preview-fps-range-values ​​= (7500,30000);
jpeg-thumbnail-size-values ​​= 160x120,0x0;
preview-size-values ​​= 640x480,320x240,176x144

ПАРАМЕТРЫ ЗАДНЕЙ КАМЕРЫ NEXUS-S:
06-16 15: 46: 55.315: D /SENSORS_PLUS (24732): параметры камеры:
значения размера изображения = 2560x1920,2048x1536,1600x1200,1280x960,640x480;
preview-fps-range = 15000,30000;
минимальная компенсация экспозиции = -4;
вертикальный угол обзора = 39,4;
горизонтальный угол обзора = 51,2;
баланс белого = авто;
jpeg-thumbnail-height = 240;
сюжетный режим = авто;
jpeg-quality = 100;
preview-format-values = yuv420sp, yuv420p;
вращение = 0;
jpeg-thumbnail-quality = 100;
focus-mode = auto;
preview-format = yuv420sp;
preview-size = 720x480;
фокусное расстояние = 3,43;
формат видеокадра = yuv420p;
значения формата изображения = jpeg;
компенсация максимальной экспозиции = 4;
режим вспышки-значения = вкл., выкл., авто, факел;
компенсация экспозиции = 0;
значения частоты кадров предварительного просмотра = 30;
шаг компенсации экспозиции = 0,5;
preview-frame-скорость = 30;
режим вспышки = выкл;
значения эффекта = нет, моно, негатив, сепия;
значения режима фокусировки = авто, бесконечность, макро;
размер изображения =2560x1920;
effect = none;
jpeg-thumbnail-width = 320;
whitebalance-values ​​= auto, лампа накаливания, флуоресцентная лампа, дневной свет, облачный дневной свет;
scene-mode-values ​​= auto,портрет, пейзаж, ночь, пляж, снег, закат, фейерверк, спорт, вечеринка, при свечах;
picture-format = jpeg;
дистанции фокусировки = 0,10,1.20, бесконечность;
preview-fps-range-values ​​= (15000,30000);
jpeg-thumbnail-size-values ​​= 320x240,0x0;
preview-size-values ​​= 720x480,640x480,352x288,176x144

1 голос
/ 03 ноября 2015

Следующая настройка работает на некоторых мобильных устройствах для 30 кадров в секунду.

    Camera.Parameters parms = camera.getParameters();
    parms.setRecordingHint(true);
    camera.setParameters(parms);
...