Technologieaustausch

Verwenden Sie FFmpeg, um Kameravideos in Android aufzunehmen und in einer lokalen MP4-Datei zu speichern

2024-07-12

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

Bei der Entwicklung mobiler Anwendungen müssen Sie manchmal die Kamera des Geräts zum Aufzeichnen von Videos verwenden und möchten die Qualität, das Format und die Dauer des Videos während des Aufnahmevorgangs genau steuern können. Als leistungsstarkes Multimedia-Verarbeitungstool bietet FFmpeg eine breite Palette von Funktionen und Optionen, die uns bei der Erfüllung dieser Anforderungen unterstützen.

Abhängigkeiten hinzufügen

Auf der Android-Plattform können Sie verwenden com.arthenica:mobile-ffmpeg-full Bibliothek, um dieses Ziel zu erreichen.

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

Lageradresse:https://github.com/tanersener/mobile-ffmpeg

Weitere Verwendungsmöglichkeiten von ffmpeg finden Sie im obigen Beispiel für ein Adressdokument

Befehle zum Aufzeichnen von Videos mit 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

Bedeutung und Funktion von Parametern:

  • -f android_camera: Gibt das Eingabeformat als android_camera an und weist FFmpeg an, den Videostream von der Kamera des Android-Geräts abzurufen.

  • -video_size 1280x720 : Stellen Sie die Videoeingangsauflösung auf 1280 x 720 Pixel ein. Dies hängt je nach Bedarf von der von Ihrer Kamera unterstützten Auflösung ab.

  • -i 0:0 : Geben Sie die Eingabedatei oder das Eingabegerät an. Hier bedeutet 0:0, dass FFmpeg Videoeingaben von der Standardkamera des Android-Systems erhält. 0 steht für die Gerätenummer (normalerweise die Kamera), 0 steht für den Eingabestream-Index (normalerweise der Videostream).

  • -r 25 : Stellen Sie die Bildrate des Ausgabevideos auf 25 Bilder pro Sekunde (fps) ein. Bestimmt, wie viele Bilder das Video pro Sekunde anzeigt.

  • -b:v 1.5M : Stellen Sie die Videobitrate des Videos auf 1,5 Mbit/s (1,5 Megabit pro Sekunde) ein. Die Bitrate bestimmt die Qualität und Dateigröße eines Videos, wobei eine höhere Bitrate im Allgemeinen eine höhere Videoqualität und eine größere Dateigröße bedeutet.

  • -pixel_format yuv420p : Stellen Sie das Pixelformat auf YUV420P ein. YUV420P ist ein Pixelformat, das häufig für die Videokodierung und -übertragung verwendet wird, wobei Y die Luminanzkomponente (Luma) und U und V die Chromakomponente (Chroma) darstellen.

  • -t 00:01:00 :Stellen Sie die Dauer der aufgezeichneten Videos auf 1 Minute (00:01:00) ein. FFmpeg stoppt die Aufnahme nach der angegebenen Zeit.

  • /sdcard/recorded_video.mp4 : Geben Sie den Pfad und Dateinamen der Ausgabedatei an. Hier wird das Video als Datei im MP4-Format gespeichert und der Pfad lautet /sdcard/recorded_video.mp4. Schreiben Sie einfach den tatsächlichen Pfad entsprechend Ihren Anforderungen und stellen Sie sicher, dass Sie über Lese- und Schreibberechtigungen verfügen.

Beachten

Ändern Sie die Reihenfolge der Parameter in FFmpeg nicht nach Belieben, da sonst die Parametereinstellungen ungültig werden und die Standardparameter verwendet werden, z -video_size 1280x720 Wenn platziert-i 0:0Wenn es später ist, wird es nicht funktionieren, also denken Sie daran!

-t 00:01:00 Die Aufzeichnung dauert eine Minute und endet automatisch, wenn die Zeit abgelaufen ist. Wenn Sie die Aufzeichnung fortsetzen möchten, entfernen Sie einfach diesen Parameter und rufen Sie ihn auf, wenn Sie sie beenden möchten.FFmpeg.cancelDas ist es

-b:v 1.5M Es kann je nach Bedarf flexibel konfiguriert werden. Je größer der Wert, desto größer wird das Video.

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