Обмен технологиями

Используйте FFmpeg для записи видео с камеры на Android и сохранения его в локальный файл MP4.

2024-07-12

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

При разработке мобильных приложений иногда необходимо использовать камеру устройства для записи видео, и вы хотите иметь возможность точно контролировать качество, формат и продолжительность видео в процессе записи. Как мощный инструмент обработки мультимедиа, FFmpeg предоставляет широкий спектр функций и опций, которые помогут нам достичь таких потребностей.

Добавить зависимости

На платформе Android вы можете использовать com.arthenica:mobile-ffmpeg-full библиотека для достижения этой цели.

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

Адрес склада:https://github.com/tanersener/mobile-ffmpeg

Дополнительные сведения о других вариантах использования ffmpeg см. в приведенном выше примере адресного документа.

Команды для записи видео с помощью 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

Значение и функции параметров:

  • -f android_camera: определяет входной формат как android_camera, сообщая FFmpeg о необходимости получения видеопотока с камеры устройства Android.

  • -video_size 1280x720 : установите разрешение видеовхода на 1280x720 пикселей. При необходимости это зависит от разрешения, поддерживаемого вашей камерой.

  • -i 0:0 : укажите входной файл или устройство. Здесь 0:0 означает, что FFmpeg будет получать видеовход от камеры системы Android по умолчанию. 0 представляет номер устройства (обычно камеры), 0 представляет индекс входного потока (обычно видеопоток).

  • -r 25 : установите частоту кадров выходного видео на 25 кадров в секунду (кадров в секунду). Определяет, сколько кадров видео отображается в секунду.

  • -b:v 1.5M : установите битрейт видео на 1,5 Мбит/с (1,5 мегабит в секунду). Битрейт определяет качество и размер файла видео, причем более высокий битрейт обычно означает более высокое качество видео и больший размер файла.

  • -pixel_format yuv420p : установите формат пикселей YUV420P. YUV420P — это формат пикселей, широко используемый для кодирования и передачи видео, где Y представляет компонент яркости (Luma), а U и V представляют компонент цветности (Chroma).

  • -t 00:01:00 :Установите продолжительность записанного видео на 1 минуту (00:01:00). FFmpeg прекратит запись по истечении указанного времени.

  • /sdcard/recorded_video.mp4 : укажите путь и имя выходного файла. Здесь видео будет сохранено в формате MP4, путь — /sdcard/recorded_video.mp4. Просто напишите фактический путь в соответствии с вашими потребностями, просто убедитесь, что у вас есть разрешение на чтение и запись.

Уведомление

Не меняйте порядок параметров в FFmpeg по своему желанию, иначе настройки параметров будут недействительны и будут использоваться параметры по умолчанию, например -video_size 1280x720 Если установлено-i 0:0Если позже, то не получится, так что помните!

-t 00:01:00 Он записывает одну минуту и ​​автоматически завершает запись по истечении времени. Конечно, если вы хотите продолжить запись, просто удалите этот параметр и вызовите его, когда захотите завершить ее.FFmpeg.cancelВот и все

-b:v 1.5M Его можно гибко настроить в соответствии с потребностями. Все зависит от реальных условий. Чем больше значение, тем больше будет видео. Просто найдите подходящее значение.

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