Compartir tecnología

Utilice FFmpeg para grabar el vídeo de la cámara en Android y guardarlo en un archivo MP4 local

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

En el desarrollo de aplicaciones móviles, a veces es necesario utilizar la cámara del dispositivo para grabar vídeos y desea poder controlar con precisión la calidad, el formato y la duración del vídeo durante el proceso de grabación. Como poderosa herramienta de procesamiento multimedia, FFmpeg proporciona una amplia gama de funciones y opciones para ayudarnos a satisfacer dichas necesidades.

Agregar dependencias

En la plataforma Android, puedes usar com.arthenica:mobile-ffmpeg-full biblioteca para lograr este objetivo.

implementation 'com.arthenica:mobile-ffmpeg-full:4.4'
  • 1

Dirección del almacén:https://github.com/tanersener/mobile-ffmpeg

Para conocer más usos de ffmpeg, consulte el ejemplo del documento de dirección anterior

Comandos para grabar video usando FFmpeg

FFmpeg.execute("-f android_camera -video_size 1280x720 -i 0:0 -r 25 -b:v 1.5M -pixel_format yuv420p -t 00:01:00 /sdcard/recorded_video.mp4");
  • 1

El significado y función de los parámetros:

  • -f android_camera: Especifica el formato de entrada como android_camera, indicando a FFmpeg que obtenga la transmisión de video de la cámara del dispositivo Android.

  • -video_size 1280x720 : establece la resolución de entrada de vídeo en 1280x720 píxeles. Depende de la resolución admitida por su cámara, según sea necesario.

  • -i 0:0 : Especifique el archivo o dispositivo de entrada. Aquí, 0:0 significa que FFmpeg tomará entrada de video de la cámara predeterminada del sistema Android. 0 representa el número de dispositivo (normalmente la cámara), 0 representa el índice de flujo de entrada (normalmente el flujo de vídeo).

  • -r 25 : establezca la velocidad de fotogramas del vídeo de salida en 25 fotogramas por segundo (fps). Determina cuántos fotogramas muestra el vídeo por segundo.

  • -b:v 1.5M : establezca la velocidad de bits del vídeo en 1,5 Mbps (1,5 megabits por segundo). La tasa de bits determina la calidad y el tamaño del archivo de un video; una tasa de bits más alta generalmente significa una mayor calidad de video y un tamaño de archivo más grande.

  • -pixel_format yuv420p : establezca el formato de píxeles en YUV420P. YUV420P es un formato de píxeles ampliamente utilizado para la codificación y transmisión de vídeo, donde Y representa el componente de luminancia (Luma) y U y V representan el componente de crominancia (Chroma).

  • -t 00:01:00 :Establece la duración del vídeo grabado en 1 minuto (00:01:00). FFmpeg dejará de grabar después del tiempo especificado.

  • /sdcard/recorded_video.mp4 : Especifique la ruta y el nombre del archivo de salida. Aquí, el vídeo se guardará como un archivo en formato MP4 y la ruta es /sdcard/recorded_video.mp4. Simplemente escriba la ruta real de acuerdo con sus necesidades, solo asegúrese de tener permiso para leer y escribir.

Aviso

No cambie el orden de los parámetros en FFmpeg a voluntad; de lo contrario, la configuración de los parámetros no será válida y se utilizarán los parámetros predeterminados, como -video_size 1280x720 Si se coloca-i 0:0Si es más tarde no funcionará, ¡así que recuerda!

-t 00:01:00 Graba durante un minuto y finaliza automáticamente cuando expira el tiempo. Por supuesto, si desea seguir grabando, simplemente elimine este parámetro y llámelo cuando desee finalizar.FFmpeg.cancelEso es todo

-b:v 1.5M Se puede configurar de forma flexible según las necesidades. Todo está sujeto a las condiciones reales. Cuanto mayor sea el valor, mayor será el video.

🆗,就这些雷,我替大家踩了,下班。