Sobre el proyecto
ffmpeg-kit-extended es un plugin integral de Flutter y React Native que envuelve las API de FFmpeg, FFprobe y FFplay 9.0.1 para plataformas móviles y de escritorio. Utiliza Dart FFI para enlazarse directamente con las bibliotecas nativas de FFmpeg, ofreciendo manipulación de medios de alto rendimiento, recuperación de información y reproducción de audio/video en Android, iOS, macOS, Linux y Windows.
Las capacidades principales incluyen:
- Reproducción de video multiplataforma con una API de superficie unificada (Android Surface, iOS/macOS CVPixelBuffer/Metal, Linux OpenGL, Windows)
- Ejecución de comandos asincrónica y en paralelo sin bloquear el hilo de la interfaz de usuario
- Transmisión en tiempo real de la posición y las dimensiones del video para la monitorización de reproducción en vivo
- Gestión completa del ciclo de vida de las sesiones (iniciar, cancelar, enumerar sesiones)
- Callbacks detallados para registros, estadísticas y eventos de finalización
- API de introspección de paquetes para consultar la versión, la fecha de compilación y los muxers, demuxers, codificadores, decodificadores y filtros disponibles
- Compatibilidad con carga y configuración personalizadas de bibliotecas nativas
- Compilaciones personalizadas desplegables mediante el repositorio complementario ffmpeg-kit-builders
Las compilaciones preincluidas se ofrecen en cinco niveles: base (solo núcleo), audio, video, video_hw (video acelerado por hardware) y full (todas las bibliotecas compatibles con la plataforma). El paquete full incluye bibliotecas de IA como libopenvino, libtensorflow, libonnxruntime, libtorch, whisper y pocketsphinx en plataformas de escritorio. Se admite una amplia variedad de bibliotecas externas en códecs (libx264, libx265, libvpx, libaom, libdav1d, etc.), transmisión (libsrt, librist, librtmp), aceleración por hardware (Vulkan, OpenCL, CUDA, VAAPI, VideoToolbox, MediaFoundation) y marcos específicos de plataforma (AVFoundation, MediaCodec, JNI).
Matriz de compatibilidad de plataformas:
- Android (API 26+): armv7, arm64, x86_64; Flutter y React Native
- iOS 13+ / tvOS 13+: arm64; Flutter y React Native (tvOS con Flutter no compatible)
- macOS 13+: arm64, x86_64; Flutter y React Native
- Linux (glibc 2.28+): x86_64; solo Flutter
- Windows 8+: x86_64; Flutter y React Native
El tamaño de los paquetes varía según la plataforma y el nivel (por ejemplo, Android base ~30-38 MB, full ~113-170 MB; iOS base ~50-55 MB, full ~112-147 MB). Las bibliotecas con licencia GPL están marcadas; se recomiendan los paquetes LGPL para una licencia permisiva.
El plugin está publicado en pub.dev (ffmpeg_kit_extended_flutter) y npm (ffmpeg-kit-extended).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.