
FFmpegKit est une collection d'outils pour utiliser FFmpeg 1 dans Android , iOS , Linux , macOS , tvOS , Flutter et React Native Applications.
Il comprend des scripts pour créer des bibliothèques natives FFmpeg , une bibliothèque de wrapper pour exécuter les commandes FFmpeg / FFprobe dans les applications et 8 packages binaires préconçus disponibles chez GitHub, Maven Central, Cocoapods, Pub et NPM.
FFmpegKit Wrapper Library Pour exécuter les commandes FFmpeg / FFprobe dans les applicationsv4.5-dev ou version ultérieure avec un système facultatif et des bibliothèques externesLGPL 3.0 par défaut, GPL v3.0 Si les bibliothèques agréées GPL sont activées Voir Android pour en savoir plus sur FFmpegKit pour Android .
Voir Apple pour utiliser FFmpegKit sur les plates-formes Apple ( iOS , macOS , tvOS ).
Voir Flutter pour en savoir plus sur FFmpegKit pour Flutter .
Voir Linux pour en savoir plus sur FFmpegKit pour Linux .
Voir React Native pour en savoir plus sur FFmpegKit pour React Native .
Utilisez android.sh , ios.sh , linux.sh , macos.sh et tvos.sh pour construire FFmpegKit pour chaque plate-forme native.
Tous les scripts prennent en charge les options supplémentaires pour activer les bibliothèques en option et désactiver les architectures de plate-forme. Voir la page Wiki de construction pour les détails.
FFmpegKit est une bibliothèque wrapper qui vous permet d'exécuter facilement les commandes FFmpeg / FFprobe dans les applications. Il fournit des fonctionnalités supplémentaires en plus de FFmpeg pour activer les ressources spécifiques à la plate-forme, contrôler comment les commandes sont exécutées et comment les résultats sont gérés.
La bibliothèque Android de FFmpegKit a une API Java , les bibliothèques Apple ( iOS , macOS , tvOS ) ont une API Objective-C , Flutter Library est livré avec une API Dart , la bibliothèque Linux a une API C++ et React Native fournit une API JavaScript avec des définitions Typescript , qui sont identiques en termes de fonctionnalités et de capacités.
Il existe huit packages ffmpeg-kit distribués sur GitHub, Maven Central, Cocoapods, Pub et NPM. Ci-dessous, vous pouvez voir quelles bibliothèques système et bibliothèques externes sont activées dans chacune d'elles.
N'oubliez pas que certaines parties de FFmpeg sont sous licence dans le cadre du GPL et que seuls les packages ffmpeg-kit sous licence GPL les incluent.
| min | min-gpl | https | https-gpl | audio | vidéo | complet | gpl | |
|---|---|---|---|---|---|---|---|---|
| bibliothèques externes | - | vid.stab x264 x265 xvidcore | GMP gnutls | GMP gnutls vid.stab x264 x265 xvidcore | boiteux libilbc libvorbis opencore-amr opus briller soxr speex double vo-amrwbenc | dav1d ferconfig freetype Fribidi kvazaar secouer libiconv libtheora libvpx libwebp dynamique zimg | dav1d ferconfig freetype Fribidi GMP gnutls kvazaar boiteux secouer libiconv libilbc libtheora libvorbis libvpx libwebp libxml2 opencore-amr opus briller dynamique soxr speex double vo-amrwbenc zimg | dav1d ferconfig freetype Fribidi GMP gnutls kvazaar boiteux secouer libiconv libilbc libtheora libvorbis libvpx libwebp libxml2 opencore-amr opus briller dynamique soxr speex double vid.stab vo-amrwbenc x264 x265 xvidcore zimg |
| Bibliothèques de systèmes Android | zrib MediaCodec | |||||||
| Bibliothèques de systèmes iOS | bzip2 AudioToolbox Aventure iconve Couvercle vidéo zrib | |||||||
| Bibliothèques de systèmes macOS | bzip2 AudioToolbox Aventure Image de base iconve Opencl Opengl Couvercle vidéo zrib | |||||||
| Bibliothèques de systèmes TVOS | bzip2 AudioToolbox iconve Couvercle vidéo zrib | |||||||
AVFoundation n'est pas disponible sur tvOSVideoToolbox n'est pas disponible sur les versions LTS d' iOS et tvOSzimg est pris en charge depuis v4.5.1 Les binaires FFmpegKit générés utilisent les mêmes numéros de version majeure et mineure que le projet FFmpeg en amont. Le troisième et dernier numéro de la chaîne de version, s'il existe, est spécifique à FFmpegKit . Il montre différentes versions de la même branche de libération FFmpeg .
La partie dev de la chaîne de version indique que le code source FFmpeg est cloné à partir de la branche master FFmpeg et que le numéro de version exact de FFmpeg est obtenu à l'aide de la commande git describe --tags .
| Plates-formes | Version FFMPEGKIT | Version ffmpeg | Date de sortie |
|---|---|---|---|
| Battement | 6.0.3 | 6.0 | 19 sept. 2023 |
| React natif | 6.0.2 | 6.0 | 19 sept. 2023 |
| Battement | 6.0.2 | 6.0 | 03 septembre 2023 |
| React natif | 6.0.1 | 6.0 | 03 septembre 2023 |
| Battement | 6.0.1 | 6.0 | 03 septembre 2023 |
| React natif | 6.0.0 | 6.0 | 27 août 2023 |
| Battement | 6.0.0 | 6.0 | 27 août 2023 |
| Androïde Pomme | 6.0 | 6.0 | 21 août 2023 |
| React natif | 5.1.0 | 5.1.2 | 02 octobre 2022 |
| Battement | 5.1.0 | 5.1.2 | 02 octobre 2022 |
| Androïde Pomme | 5.1 | 5.1.2 | 29 septembre 2022 |
| React natif | 4.5.2 | 4.5-DEV-3393 | 25 mai 2022 |
| Battement | 4.5.1 | 4.5-DEV-3393 | 02 janvier 2022 |
| React natif | 4.5.1 | 4.5-DEV-3393 | 02 janvier 2022 |
| Androïde | 4.5.1 | 4.5-DEV-3393 | 01 janvier 2022 |
| Pomme | 4.5.1 | 4.5-DEV-3393 | 30 décembre 2021 |
| Battement | 4.5.0 | 4.5-DEV-2008 | 05 octobre 2021 |
| React natif | 4.5.0 | 4.5-DEV-2008 | 01 octobre 2021 |
| Androïde Pomme | 4.5 | 4.5-DEV-2008 | 18 sept. 2021 |
| Androïde Pomme | 4.4 | 4.4-DEV-3015 | 03 mars 2021 |
Les binaires FFmpegKit sont publiés dans deux variantes de version: Main Release et LTS Release .
Les versions principales incluent une fonctionnalité complète de la bibliothèque et prennent en charge les dernières fonctionnalités SDK / API.
Les versions LTS sont personnalisées pour prendre en charge une gamme plus large d'appareils. Ils sont construits à l'aide de versions API / SDK anciennes, donc certaines fonctionnalités ne sont pas disponibles sur eux.
Ce tableau montre les différences entre deux variantes.
| Libération principale | Libération LTS | |
|---|---|---|
| Niveau d'API Android | 24 | 16 |
| Accès à la caméra Android | Oui | - |
| Architectures Android | ARM-V7A-NEON ARM64-V8A x86 x86-64 | ARM-V7A ARM-V7A-NEON ARM64-V8A x86 x86-64 |
| SDK iOS MIN | 12.1 | 10 |
| IOS VideoToolbox | Oui | - |
| iOS Avfoundation | Oui | - |
| Architectures iOS | ARM64 arm64-simulateur ARM64-MAC-CATALYST x86-64 x86-64-mac-catalyste | armv7 ARM64 i386 x86-64 |
| format de faisceau iOS | Xcframeworks | Frameworks |
| Version Mac Catalyst Min | 14.0 | - |
| SDK MacOS Min | 10.15 | 10.12 |
| macOS avfoundation | Oui | - |
| Architectures macos | ARM64 x86-64 | x86-64 |
| format de faisceau de macOS | Xcframeworks | Frameworks |
| SDK TVOS MIN | 11.0 | 10.0 |
| tvos vidéotoolbox | Oui | - |
| Architectures TVOS | ARM64 x86-64 arm64-simulateur | ARM64 x86-64 |
| format de faisceau de tvos | Xcframeworks | Frameworks |
Une documentation plus détaillée est disponible sous Wiki.
Vous pouvez voir comment FFmpegKit est utilisé dans une application en exécutant des applications de test créées dans le projet de test FFMPEGKIT.
Toutes les applications sont identiques et prennent en charge l'exécution des commandes, le codage vidéo, l'accès aux URL HTTPS, au codage audio, aux sous-titres de brûlure, à la stabilisation vidéo, aux opérations de tuyaux et à l'exécution de la commande simultanée.
La bibliothèque FFmpegKit à elle seule est autorisée sous la LGPL v3.0 .
Les bundles FFmpegKit (archives .aar , frameworks , xcframeworks ), qui incluent les bibliothèques FFmpegKit et FFmpeg , sont également sous licence dans le LGPL v3.0 . Cependant, si le code source est construit à l'aide de l'indicateur en option --enable-gpl ou des binaires prédéfinis avec -gpl Postfix sont utilisés, les faisceaux FFmpegKit deviennent soumis au GPL v3.0 . Parce que FFmpeg est concédé sous licence dans le GPL v3.0 dans ces faisceaux. Et cela rend l'ensemble entier soumis efficacement au GPL v3.0 .
Les scripts de construction FFmpegKit configurent toujours FFmpeg avec l'option --enable-version3 . Et n'activez jamais les bibliothèques non libres. Ainsi, les bibliothèques FFmpeg créées par FFmpegKit sont sous licence dans le LGPL v3.0 par défaut. Ce n'est que lorsque --enable-gpl est prévu qu'ils deviennent soumis à GPL v3.0 . C'est ainsi que les binaires prédéfinis avec -gpl Postfix sont compilés.
Reportez-vous aux licences pour voir les licences de toutes les bibliothèques. La marque répertorie les marques utilisées dans la documentation FFmpegKit .
Il n'est pas clairement expliqué dans leur documentation, mais on pense que FFmpeg , kvazaar , x264 et x265 incluent des algorithmes soumis à des brevets logiciels. Si vous vivez dans un pays où les algorithmes logiciels sont brevetables, vous devrez probablement payer des frais de redevance aux titulaires de brevets. Nous ne sommes pas des avocats, nous vous recommandons donc de demander des conseils juridiques en premier. Voir FFMPEG Patent Mini-Faq.
openh264 indique clairement qu'il utilise des algorithmes brevetés. Par conséquent, si vous créez ffmpeg-kit avec openh264 et distribuez cette bibliothèque, vous êtes soumis à payer les frais de licence MPEG LA. Reportez-vous à la page FAQ OpenH264 pour les détails.
1 FFmpeg est une marque de fabrique de Fabrice Bellard. FFmpegKit est un projet indépendant et non affilié au titulaire de la marque FFmpeg .
Voir notre guide contributif.