Compartilhamento de tecnologia

Use FFmpeg para gravar vídeo de câmera no Android e salvá-lo em um arquivo MP4 local

2024-07-12

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

No desenvolvimento de aplicativos móveis, às vezes você precisa usar a câmera do dispositivo para gravar vídeo e deseja controlar com precisão a qualidade, o formato e a duração do vídeo durante o processo de gravação. Como uma poderosa ferramenta de processamento multimídia, o FFmpeg oferece uma ampla gama de funções e opções para nos ajudar a atender a essas necessidades.

Adicionar dependências

Na plataforma Android, você pode usar com.arthenica:mobile-ffmpeg-full biblioteca para atingir esse objetivo.

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

Endereço do armazém:https://github.com/tanersener/mobile-ffmpeg

Para mais outros usos do ffmpeg, consulte o exemplo de documento de endereço acima

Comandos para gravar vídeo 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

O significado e função dos parâmetros:

  • -f android_camera: especifica o formato de entrada como android_camera, informando ao FFmpeg para obter o stream de vídeo da câmera do dispositivo Android.

  • -video_size 1280x720 : Defina a resolução de entrada de vídeo para 1280x720 pixels. Depende da resolução suportada pela sua câmera, conforme necessário.

  • -i 0:0 : Especifique o arquivo ou dispositivo de entrada. Aqui, 0:0 significa que o FFmpeg obterá entrada de vídeo da câmera padrão do sistema Android. 0 representa o número do dispositivo (geralmente a câmera), 0 representa o índice do fluxo de entrada (geralmente o fluxo de vídeo).

  • -r 25 : Defina a taxa de quadros do vídeo de saída para 25 quadros por segundo (fps). Determina quantos quadros o vídeo exibe por segundo.

  • -b:v 1.5M : defina a taxa de bits do vídeo para 1,5 Mbps (1,5 megabits por segundo). A taxa de bits determina a qualidade e o tamanho do arquivo de um vídeo, com uma taxa de bits mais alta geralmente significando maior qualidade de vídeo e tamanho de arquivo maior.

  • -pixel_format yuv420p : Defina o formato de pixel para YUV420P. YUV420P é um formato de pixel amplamente utilizado para codificação e transmissão de vídeo, onde Y representa o componente de luminância (Luma) e U e V representam o componente de croma (Chroma).

  • -t 00:01:00 : Defina a duração do vídeo gravado para 1 minuto (00:01:00). O FFmpeg irá parar a gravação após o tempo especificado.

  • /sdcard/recorded_video.mp4 : Especifique o caminho e o nome do arquivo de saída. Aqui, o vídeo será salvo como um arquivo no formato MP4 e o caminho é /sdcard/recorded_video.mp4. Basta escrever o caminho real de acordo com suas necessidades, apenas certifique-se de ter permissão para ler e escrever.

Perceber

Não altere a ordem dos parâmetros no FFmpeg à vontade, caso contrário as configurações dos parâmetros serão inválidas e os parâmetros padrão serão usados, como -video_size 1280x720 Se colocado-i 0:0Se for mais tarde, não vai funcionar, então lembre-se!

-t 00:01:00 Ele grava por um minuto e termina automaticamente quando o tempo expirar. Claro, se você quiser continuar gravando, basta remover este parâmetro e chamá-lo quando quiser encerrá-lo.FFmpeg.cancelÉ isso

-b:v 1.5M Pode ser configurado de forma flexível de acordo com as necessidades. Tudo está sujeito às condições reais.

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