2011-11-17 16 views
12

Estoy tratando de grabar videos usando la cámara frontal, a continuación está el fragmento de código, estoy configurando setVideoFrameRate en 29 , pero el vídeo grabado está teniendo el fps entre 7,5 y 8. necesito el fps video de la vidio grabadas 29.La cámara frontal de Android está grabando videos entre 7.5 y 8.0 - setVideoFrameRate no funciona - Samsung Galaxy s2

 recorder.setPreviewDisplay(holder.getSurface()); 
     recorder.setOnInfoListener(this); 
     recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
     recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
     recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
     recorder.setVideoFrameRate(29); 
     recorder.setVideoSize(640,480); 
     recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); 
     recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 
     recorder.setOutputFile("/sdcard/recordvideooutput.mp4"); 
     recorder.setMaxDuration(16*1000); 
+1

según la Guía del Desarrollador, está escrito que la velocidad de cuadro real variará de acuerdo con las condiciones de iluminación. Además, este método establecerá la velocidad de fotogramas máxima si su dispositivo tiene velocidad de fotogramas automática. Por favor marque – Naved

+0

en Naded, gracias por la respuesta. Tienes razón ... El fps es mejor cuando hay buena luz, está grabando a 14-15 fps. Cuando lo comparo con la aplicación nativa de la cámara, en las mismas condiciones de iluminación, la cámara nativa está grabando a 29 fps, pero mi programa está grabando a 14 fps. Me pregunto cómo la cámara nativa está grabando a mejores fps y si logramos lo mismo programáticamente. Gracias de nuevo. – user566502

+0

¿Cómo se compara la velocidad de fotogramas del video? Si intentas hacerlo en tu código java supervisando la vista previa, mira lo siguiente: http://stackoverflow.com/questions/8676046/why-fps-is-not-same-as-original-camera-app/8685028 # 8685028 –

Respuesta

0

Esta pieza de código no es válido.

recorder.SetOutputFormat() 

Esta pieza de código es:

recorder.SetOutFormat() 

Desde Android Sitio Web Desarrolladores: "Establece la velocidad de fotogramas del vídeo para ser capturado debe ser llamado después de setVideoSource() Llama a esta después setOutFormat..() pero antes de preparar() ".

Cuestiones relacionadas