Sobre o projeto
ffmpeg-kit-extended é um plugin abrangente para Flutter e React Native que encapsula as APIs FFmpeg, FFprobe e FFplay 9.0.1 para plataformas móveis e desktop. Ele usa Dart FFI para vincular diretamente às bibliotecas nativas do FFmpeg, entregando manipulação de mídia de alto desempenho, recuperação de informações e reprodução de áudio/vídeo em Android, iOS, macOS, Linux e Windows.
Principais recursos incluem:
- Reprodução de vídeo multiplataforma com API de superfície unificada (Android Surface, iOS/macOS CVPixelBuffer/Metal, Linux OpenGL, Windows)
- Execução de comandos assíncrona e paralela sem bloquear a thread da interface
- Transmissão em tempo real de posição e dimensões de vídeo para monitoramento de reprodução ao vivo
- Gerenciamento completo do ciclo de vida da sessão (iniciar, cancelar, listar sessões)
- Callbacks detalhados para logs, estatísticas e eventos de conclusão
- API de introspecção de pacotes para consultar versão, data de compilação e muxers, demuxers, codificadores, decodificadores e filtros disponíveis
- Suporte para carregamento e configuração personalizada de bibliotecas nativas
- Builds personalizados implantáveis via repositório complementar ffmpeg-kit-builders
Builds pré-empacotados são oferecidos em cinco níveis: base (apenas núcleo), áudio, vídeo, vídeo_hw (vídeo acelerado por hardware) e completo (todas as bibliotecas compatíveis com a plataforma). O pacote completo inclui bibliotecas de IA como libopenvino, libtensorflow, libonnxruntime, libtorch, whisper e pocketsphinx em plataformas desktop. Uma ampla gama de bibliotecas externas é suportada em codecs (libx264, libx265, libvpx, libaom, libdav1d, etc.), streaming (libsrt, librist, librtmp), aceleração de hardware (Vulkan, OpenCL, CUDA, VAAPI, VideoToolbox, MediaFoundation) e estruturas específicas de plataforma (AVFoundation, MediaCodec, JNI).
Matriz de suporte de plataforma:
- Android (API 26+): armv7, arm64, x86_64; Flutter e React Native
- iOS 13+ / tvOS 13+: arm64; Flutter e React Native (tvOS Flutter não suportado)
- macOS 13+: arm64, x86_64; Flutter e React Native
- Linux (glibc 2.28+): x86_64; apenas Flutter
- Windows 8+: x86_64; Flutter e React Native
Os tamanhos dos pacotes variam por plataforma e nível (ex.: Android base ~30-38 MB, completo ~113-170 MB; iOS base ~50-55 MB, completo ~112-147 MB). Bibliotecas licenciadas sob GPL são sinalizadas; pacotes LGPL são recomendados para licenciamento permissivo.
O plugin é publicado no pub.dev (ffmpeg_kit_extended_flutter) e npm (ffmpeg-kit-extended).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.