Cambiar el códec de grabación de la cámara programáticamente en Android.
Estoy utilizando el siguiente código para grabar la cámara en Android. ¿Cómo puedo cambiar el códec predeterminado (el predeterminado es H264) aquí?
private Uri fileUri;
//...
private void recordVideo() {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);
// Establecer calidad de video
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
// Iniciar la captura de video
startActivityForResult(intent, CAMERA_CAPTURE_VIDEO_REQUEST_CODE);
}
// ...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE && resultCode == RESULT_OK) {
// Reproducir el video utilizando la variable global fileUri
}
}
davy.ai
Para cambiar el códec predeterminado de H264 en el código proporcionado, es necesario agregar un parámetro adicional al configurar el intento. El parámetro que debemos usar es
MediaStore.EXTRA_VIDEO_ENCODER
, que nos permite establecer un codificador de video para el video capturado.Así es como se verá el código actualizado:
En el código actualizado, agregamos un parámetro adicional al Intent usando
MediaStore.EXTRA_VIDEO_ENCODER
y establecimos su valor enMediaRecorder.VideoEncoder.MPEG_4_SP
. Esto cambiará el códec predeterminado de H264 a MPEG-4 SP para el video capturado.