Android – ¿Es posible 'bloquear' la velocidad de fotogramas de vista previa de una cámara?
Estoy tratando de crear una aplicación de grabación de video que graba videos en 24 FPS. Estoy utilizando el código siguiente en un intento de bloquear el FPS a 24:
Camera.Parameters params = mCamera.getParameters(); params.setPreviewFrameRate(24); params.setPreviewFpsRange(24000, 24000);
Y también el siguiente CamcorderProfile que se utiliza con MediaRecorder:
- La cámara Motorola Android 2.2 ignora el parámetro EXTRA_OUTPUT
- ¿Acelerando el cifrado?
- Obtener flujo de vídeo IP Cam en Android (MJEPG)
- Cómo incrustar video de YouTube en Android usando Phonegap
- Uso de surfaceView para capturar un video
CamcorderProfile ccp = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH); ccp.videoFrameRate = 24;
Por desgracia, sólo funciona cuando el video se toma en condiciones de poca luz, pero una vez que salgo cuando hay luz, el video empieza a grabar en 30 FPS.
¿Es posible bloquear la velocidad de fotogramas a 24fps también en plena luz del día?
¡Gracias por adelantado!
- ¿Cómo las aplicaciones de Media Player para Android como MXPlayer y MoboPlayer reproducen formatos de archivo no soportados como MKV?
- Maneras alternativas de establecer durationLimit o sizeLimit durante la grabación de vídeo?
- Compresión de video en android usando la nueva biblioteca de MediaCodec
- Video androide, escuchar sonido pero no video
- Cómo comprimir un archivo de vídeo en android?
- Android: silencie el micrófono mientras graba vídeo
- Conversión de imágenes en vídeo
- Error de cámara 100 en .takePicture SÓLO DESPUÉS de detener una grabación de vídeo
public List<Integer> getSupportedPreviewFrameRates ()
Revise esta lista. Supongo que simplemente no se puede establecer la velocidad de fotogramas que no aparece en la lista. Puede ser debido a la modificación de códecs que se utilizan en el sistema operativo Android.
Te sugiero que eche un vistazo a MediaRecorder: setCaptureRate (doble fps)
Fps: – Velocidad en la que los fotogramas deben ser capturados en fotogramas por segundo
Para consultas compatibles: – getPreviewFpsRange (int [])
Tenga en cuenta que su cámara no puede garantizar que los fotogramas se capturen a la velocidad dada debido a las limitaciones de la cámara / codificador.
Probablemente no ha bloqueado el balance automático de blancos y la exposición automática. El FPS puede verse afectado por el medio ambiente. Intente setAutoExposureLock(true)
y setAutoWhiteBalanceLock(true)
.
Por experiencia personal en mi Android, veo que hay una dependencia entre FPS y exposición. No lo he comprobado con WhiteBalance pero es posible también.
Entonces, ¿por qué no establece el fps a 24 o algún otro valor que resulta en 24fps en algún momento. A continuación, comprobar continuamente el fps actual, y cuando es 24fps, entonces setAutoExposureLock (true) (y setAutoWhiteBalanceLock (true) demasiado por si acaso). Los fps no cambiarán más debido a cambios en la exposición automática.
- Cargador universal de imágenes de Android que muestra parcialmente las imágenes
- ActionBarSherlock: java.lang.IllegalStateException en muy pocos dispositivos