
FFmpegKit ist eine Sammlung von Tools zur Verwendung FFmpeg 1 in Android , iOS , Linux , macOS , tvOS , Flutter und React Native Anwendungen.
Es enthält Skripte zum Erstellen FFmpeg -Bibliotheken, eine Wrapper -Bibliothek, um FFmpeg / FFprobe -Befehle in Anwendungen und 8 vorgebaute Binärpakete bei Github, Maven Central, Cocoapods, Pub und NPM auszuführen.
FFmpegKit -Wrapper -Bibliothek zum Ausführen FFmpeg / FFprobe -Befehlen in Anwendungenv4.5-dev oder später mit optionalem System und externen BibliothekenLGPL 3.0 lizenzierten GPL v3.0 , wenn GPL -lizenzierte Bibliotheken aktiviert sind Siehe Android, um mehr über FFmpegKit für Android zu erfahren.
Siehe Apple, um FFmpegKit auf Apple -Plattformen ( iOS , macOS , tvOS ) zu verwenden.
Siehe Flutter, um mehr über FFmpegKit für Flutter zu erfahren.
Weitere Informationen zu FFmpegKit für Linux finden Sie in Linux.
Siehe React nativ, um mehr über FFmpegKit für React Native zu erfahren.
Verwenden Sie android.sh , ios.sh , linux.sh , macos.sh und tvos.sh um FFmpegKit für jede native Plattform zu erstellen.
Alle Skripte unterstützen zusätzliche Optionen, um optionale Bibliotheken zu ermöglichen und Plattformarchitekturen zu deaktivieren. Weitere Informationen finden Sie unter Erstellen der Wiki -Seite.
FFmpegKit ist eine Wrapper -Bibliothek, mit der Sie FFmpeg / FFprobe -Befehle in Anwendungen problemlos ausführen können. Es bietet zusätzliche Funktionen auf FFmpeg , um plattformspezifische Ressourcen zu ermöglichen und zu steuern, wie Befehle ausgeführt werden und wie die Ergebnisse behandelt werden.
Android Bibliothek von FFmpegKit verfügt über eine Java API, Apple Libraries ( iOS , macOS , tvOS ). Es verfügt über eine Objective-C API, Flutter verfügt über eine Dart -API, Linux Bibliothek verfügt über eine C++ API und React Native Bibliothek bietet eine JavaScript API mit Typescript -Definitionen, die in Bezug auf Merkmale und Fähigkeiten identisch sind.
Es gibt acht verschiedene ffmpeg-kit -Pakete, die auf Github, Maven Central, Cocoapods, Pub und NPM verteilt sind. Im Folgenden können Sie sehen, welche Systembibliotheken und externe Bibliotheken in jedem von ihnen aktiviert sind.
Bitte denken Sie daran, dass einige Teile von FFmpeg unter der GPL lizenziert sind und nur GPL lizenzierte ffmpeg-kit -Pakete sie enthalten.
| min | min-gpl | https | https-gpl | Audio- | Video | voll | Full-GPL | |
|---|---|---|---|---|---|---|---|---|
| externe Bibliotheken | - - | vid.stab x264 x265 xvidcore | GMP Gnutls | GMP Gnutls vid.stab x264 x265 xvidcore | lahm libilbc libvorbis opencore-AMR Opus Glanz Soxr Speex Twolame Vo-amrwbenc | Dav1d Fontconfig Freetyp Fribidi Kvazaar Vergleichsmann Libiconv libheora libvpx libwebp bissig Zimg | Dav1d Fontconfig Freetyp Fribidi GMP Gnutls Kvazaar lahm Vergleichsmann Libiconv libilbc libheora libvorbis libvpx libwebp libxml2 opencore-AMR Opus Glanz bissig Soxr Speex Twolame Vo-amrwbenc Zimg | Dav1d Fontconfig Freetyp Fribidi GMP Gnutls Kvazaar lahm Vergleichsmann Libiconv libilbc libheora libvorbis libvpx libwebp libxml2 opencore-AMR Opus Glanz bissig Soxr Speex Twolame vid.stab Vo-amrwbenc x264 x265 xvidcore Zimg |
| Android -Systembibliotheken | Zlib MediaCodec | |||||||
| iOS -Systembibliotheken | BZIP2 Audiotoolbox Avfoundation Ikonv Videotoolbox Zlib | |||||||
| MacOS -Systembibliotheken | BZIP2 Audiotoolbox Avfoundation Kernbild Ikonv Opencl OpenGL Videotoolbox Zlib | |||||||
| TVOS -Systembibliotheken | BZIP2 Audiotoolbox Ikonv Videotoolbox Zlib | |||||||
AVFoundation ist auf tvOS nicht verfügbarVideoToolbox ist bei LTS -Veröffentlichungen von iOS und tvOS nicht verfügbarzimg wird seit v4.5.1 unterstützt FFmpegKit -Binärdateien generiert werden dieselben Haupt- und Nebenversionsnummern wie das vorgelagerte FFmpeg -Projekt. Die dritte und letzte Nummer in der Versionszeichenfolge ist, falls vorhanden, spezifisch für FFmpegKit . Es zeigt verschiedene Veröffentlichungen aus derselben FFmpeg -Release -Filiale.
dev -Teil in der Versionszeichenfolge gibt an, dass FFmpeg -Quellcode aus dem FFmpeg master -Zweig kloniert wird und die genaue Versionsnummer von FFmpeg unter Verwendung des Befehls git describe --tags .
| Plattformen | Ffmpegkit Version | FFMPEG -Version | Veröffentlichungsdatum |
|---|---|---|---|
| Flattern | 6.0.3 | 6.0 | 19. September 2023 |
| Reagieren Sie nativ | 6.0.2 | 6.0 | 19. September 2023 |
| Flattern | 6.0.2 | 6.0 | Sep 03, 2023 |
| Reagieren Sie nativ | 6.0.1 | 6.0 | Sep 03, 2023 |
| Flattern | 6.0.1 | 6.0 | Sep 03, 2023 |
| Reagieren Sie nativ | 6.0.0 | 6.0 | 27. August 2023 |
| Flattern | 6.0.0 | 6.0 | 27. August 2023 |
| Android Apfel | 6.0 | 6.0 | 21. August 2023 |
| Reagieren Sie nativ | 5.1.0 | 5.1.2 | 02. Oktober 2022 |
| Flattern | 5.1.0 | 5.1.2 | 02. Oktober 2022 |
| Android Apfel | 5.1 | 5.1.2 | 29. September 2022 |
| Reagieren Sie nativ | 4.5.2 | 4,5-DEV-3393 | 25. Mai 2022 |
| Flattern | 4.5.1 | 4,5-DEV-3393 | 02. Januar 2022 |
| Reagieren Sie nativ | 4.5.1 | 4,5-DEV-3393 | 02. Januar 2022 |
| Android | 4.5.1 | 4,5-DEV-3393 | 01. Januar 2022 |
| Apfel | 4.5.1 | 4,5-DEV-3393 | 30. Dezember 2021 |
| Flattern | 4.5.0 | 4,5-Dev-2008 | 05. Oktober 2021 |
| Reagieren Sie nativ | 4.5.0 | 4,5-Dev-2008 | 01. Oktober 2021 |
| Android Apfel | 4.5 | 4,5-Dev-2008 | 18. September 2021 |
| Android Apfel | 4.4 | 4.4-Dev-3015 | 03. März 2021 |
FFmpegKit -Binärdateien werden in zwei Release -Varianten veröffentlicht: Main Release und LTS Release .
Zu den Hauptveröffentlichungen gehören die vollständige Funktionalität der Bibliothek und die Unterstützung der neuesten SDK/API -Funktionen.
LTS -Veröffentlichungen werden so angepasst, dass eine breitere Palette von Geräten unterstützt wird. Sie werden mit älteren API/SDK -Versionen erstellt, sodass einige Funktionen nicht verfügbar sind.
Diese Tabelle zeigt die Unterschiede zwischen zwei Varianten.
| Hauptveröffentlichung | LTS -Veröffentlichung | |
|---|---|---|
| Android -API -Ebene | 24 | 16 |
| Android -Kamerazugriff | Ja | - - |
| Android -Architekturen | Arm-V7a-Neon ARM64-V8A x86 x86-64 | ARM-V7A Arm-V7a-Neon ARM64-V8A x86 x86-64 |
| iOS min sdk | 12.1 | 10 |
| iOS Videotoolbox | Ja | - - |
| iOS Avfoundation | Ja | - - |
| iOS -Architekturen | ARM64 ARM64-Simulator ARM64-MAC-Katalysator x86-64 x86-64-mac-katalysator | ARMV7 ARM64 i386 x86-64 |
| IOS -Bündelformat | Xcframeworks | Frameworks |
| Mac Catalyst Min -Version | 14.0 | - - |
| macos min sdk | 10.15 | 10.12 |
| macos avfoundation | Ja | - - |
| MacOS -Architekturen | ARM64 x86-64 | x86-64 |
| MacOS -Bundle -Format | Xcframeworks | Frameworks |
| TVOS Min SDK | 11.0 | 10.0 |
| TVOS Videotoolbox | Ja | - - |
| TVOS -Architekturen | ARM64 x86-64 ARM64-Simulator | ARM64 x86-64 |
| TVOS -Bundle -Format | Xcframeworks | Frameworks |
Eine detailliertere Dokumentation finden Sie unter Wiki.
Sie können sehen, wie FFmpegKit in einer Anwendung verwendet wird, indem Testanwendungen im Testprojekt FFMPEGKIT ausgeführt werden.
Alle Anwendungen sind identisch und unterstützt die Befehlsausführung, Videocodierung, Zugriff auf HTTPS -URLs, Codierung von Audio, Verbrennung von Untertiteln, Videostabilisierung, Rohrvorgängen und gleichzeitige Befehlsausführung.
FFmpegKit -Bibliothek allein ist unter dem LGPL v3.0 lizenziert.
FFmpegKit -Bündel ( .aar -Archive, frameworks , xcframeworks ), die sowohl FFmpegKit als auch FFmpeg -Bibliotheken enthalten, sind auch unter dem LGPL v3.0 lizenziert. Wenn der Quellcode jedoch mit dem optionalen --enable-gpl oder vorgebauten Binärdateien mit -gpl -Postfix erstellt wird, unterliegen FFmpegKit -Bündel dem GPL v3.0 . Denn FFmpeg ist in diesen Bündeln unter dem GPL v3.0 lizenziert. Und das macht das gesamte Bündel effektiv dem GPL v3.0 .
FFmpegKit Build-Skripte konfigurieren FFmpeg immer mit der Option --enable-version3 . Und ermöglichen niemals nicht freie Bibliotheken. Somit sind FFmpeg -Bibliotheken, die von FFmpegKit erstellt wurden, standardmäßig unter dem LGPL v3.0 lizenziert. Nur wenn --enable-gpl vorhanden ist, unterliegen sie GPL v3.0 . So werden vorgefertigte Binärdateien mit -gpl -Postfix kompiliert.
Siehe Lizenzen, um die Lizenzen aller Bibliotheken zu sehen. Marke listet die in der FFmpegKit -Dokumentation verwendeten Marken auf.
Es wird in ihrer Dokumentation nicht klar erklärt, aber es wird angenommen, dass FFmpeg , kvazaar , x264 und x265 Algorithmen enthalten, die Softwarepatenten unterliegen. Wenn Sie in einem Land leben, in dem Softwarealgorithmen patentierbar sind, müssen Sie wahrscheinlich die Lizenzgebühren an Patentinhaber zahlen. Wir sind jedoch keine Anwälte, daher empfehlen wir, dass Sie zuerst Rechtsberatung suchen. Siehe FFMPEG Patent Mini-Faq.
openh264 gibt deutlich an, dass patentierte Algorithmen verwendet werden. Wenn Sie ffmpeg-kit mit openh264 erstellen und diese Bibliothek verteilen, sind Sie daher unterliegen, MPEG LA-Lizenzgebühren zu zahlen. Weitere Informationen finden Sie auf der FAQ -Seite von OpenH264.
1 FFmpeg ist eine Marke von Fabrice Bellard. FFmpegKit ist ein unabhängiges Projekt und nicht mit dem FFmpeg -Markeninhaber verbunden.
Sehen Sie unseren Beitragsführer.