À propos du projet

ffmpeg-kit-extended est un plugin complet pour Flutter et React Native qui encapsule les API FFmpeg, FFprobe et FFplay 9.0.1 pour les plateformes mobiles et de bureau. Il utilise Dart FFI pour se lier directement aux bibliothèques FFmpeg natives, offrant une manipulation multimédia haute performance, la récupération d'informations et la lecture audio/vidéo sur Android, iOS, macOS, Linux et Windows. Les capacités clés incluent : - Lecture vidéo multiplateforme avec API de surface unifiée (Android Surface, iOS/macOS CVPixelBuffer/Metal, Linux OpenGL, Windows) - Exécution de commandes asynchrones et parallèles sans bloquer le fil d'interface utilisateur - Diffusion en temps réel de la position et des dimensions vidéo pour le suivi de lecture en direct - Gestion complète du cycle de vie des sessions (démarrage, annulation, liste des sessions) - Rappels détaillés pour les journaux, les statistiques et les événements d'achèvement - API d'introspection de paquets pour interroger la version, la date de construction et les muxers, demuxers, encodeurs, décodeurs, filtres disponibles - Prise en charge du chargement et de la configuration de bibliothèques natives personnalisées - Constructions personnalisées déployables via le dépôt compagnon ffmpeg-kit-builders Les constructions préemballées sont proposées en cinq niveaux : base (noyau uniquement), audio, vidéo, vidéo_hw (vidéo accélérée matériellement) et complète (toutes les bibliothèques compatibles plateforme). Le paquet complet inclut des bibliothèques d'IA telles que libopenvino, libtensorflow, libonnxruntime, libtorch, whisper et pocketsphinx sur les plateformes de bureau. Une large gamme de bibliothèques externes est prise en charge pour les codecs (libx264, libx265, libvpx, libaom, libdav1d, etc.), le streaming (libsrt, librist, librtmp), l'accélération matérielle (Vulkan, OpenCL, CUDA, VAAPI, VideoToolbox, MediaFoundation) et les frameworks spécifiques à la plateforme (AVFoundation, MediaCodec, JNI). Matrice de support des plateformes : - Android (API 26+) : armv7, arm64, x86_64 ; Flutter et React Native - iOS 13+ / tvOS 13+ : arm64 ; Flutter et React Native (tvOS Flutter non pris en charge) - macOS 13+ : arm64, x86_64 ; Flutter et React Native - Linux (glibc 2.28+) : x86_64 ; Flutter uniquement - Windows 8+ : x86_64 ; Flutter et React Native Les tailles de paquet varient selon la plateforme et le niveau (par exemple, Android base ~30-38 Mo, complète ~113-170 Mo ; iOS base ~50-55 Mo, complète ~112-147 Mo). Les bibliothèques sous licence GPL sont signalées ; les paquets LGPL sont recommandés pour une licence permissive. Le plugin est publié sur pub.dev (ffmpeg_kit_extended_flutter) et npm (ffmpeg-kit-extended).