Intento grabar video usando MediaRecorder Class.Cómo cambiar la velocidad de fotogramas cuando se usa MediaRecorder Class
Sin embargo, descubro que no pude reducir la velocidad de fotogramas de la transmisión de video.
Estoy usando H.264 como mi codificador de video y AAC como mi codificador de audio (sí, es compatible con API NIVEL 10 y superior, AKA Android 2.3.3+) La fuente principal es la siguiente.
recorder = new MediaRecorder();
recorder.setPreviewDisplay(surfaceHolder.getSurface());
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//set the Output Format
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
//set the Video Size
recorder.setVideoSize(176,144);
//set the Frame rate
recorder.setVideoFrameRate(15);
//Set the Video Encoder
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
//Set the Audio Encoder
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setOutputFile(myRecAudioFile.getAbsolutePath());
recorder.prepare();
recorder.start();
Sin embargo, me dieron la información de depuración que:
03-22 22:39:41.120: WARN/StagefrightRecorder(662): Intended video encoding frame rate (15 fps) is too small and will be set to (27 fps)
suficiente como para que yo también tengo un mensaje de error que extraño:
03-22 22:39:41.380: ERROR/VENC_ENC(662): Bitrate 192000
Al final, tengo un archivo MP4 cuya la velocidad de fotogramas es de casi 28 fps.
También probé a usar el CamcorderProfile más bajo que es
recorder = new MediaRecorder();
recorder.setPreviewDisplay(surfaceHolder.getSurface());
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//replacement
CamcorderProfile cpLow = CamcorderProfile.get(CamcorderProfile.QUALITY_LOW);
recorder.setProfile(cpLow);
recorder.setOutputFile(myRecAudioFile.getAbsolutePath());
recorder.prepare();
recorder.start();
y comentar la configuración detallada de la grabadora.
Como el libro Pro Android Media se dice que obtendría el archivo de video con 15 fps. Sin embargo, una vez más obtuve un archivo de video con aproximadamente 27 fps.
Entonces, ¿cómo bajar la velocidad de fotogramas de un vídeo? Estoy construyendo un sistema en vivo, por lo que la baja tasa de bits llegó a ser bastante importante para mí. ¡Gracias por su tiempo!
Sí, tienes razón. Tengo esa línea audaz también. La velocidad de fotogramas real depende del dispositivo determinado (hardware) y la versión del sistema operativo. Parecía que HTC Desire tiene un FPS más alto que el HTC Desire z. Además, Android 2.2.1 tiene un mejor método de control de velocidad de fotogramas que Android 2.3.3. –