这个项目能做什么
ffmpeg-kit-extended 是一款功能全面的 Flutter 和 React Native 插件,面向移动与桌面平台封装了 FFmpeg、FFprobe 和 FFplay 9.0.1 API。它使用 Dart FFI 直接绑定原生 FFmpeg 库,在 Android、iOS、macOS、Linux 和 Windows 上提供高性能的媒体处理、信息检索和音视频播放能力。
主要功能包括:
- 跨平台视频播放,提供统一的 surface API(Android Surface、iOS/macOS CVPixelBuffer/Metal、Linux OpenGL、Windows)
- 异步并行命令执行,不会阻塞 UI 线程
- 实时流式返回播放位置和视频尺寸,用于直播播放监控
- 完整的会话生命周期管理(启动、取消、列出会话)
- 针对日志、统计信息和完成事件提供详细回调
- 包内省 API,可查询版本、构建日期以及可用的 muxer、demuxer、编码器、解码器和滤镜
- 支持自定义原生库加载与配置
- 可通过配套的 ffmpeg-kit-builders 仓库部署自定义构建版本
预构建版本分为五个层级:base(仅核心)、audio、video、video_hw(硬件加速视频)和 full(所有平台兼容库)。full 包在桌面平台包含 libopenvino、libtensorflow、libonnxruntime、libtorch、whisper 和 pocketsphinx 等 AI 库。支持大量外部库,覆盖编解码器(libx264、libx265、libvpx、libaom、libdav1d 等)、流媒体(libsrt、librist、librtmp)、硬件加速(Vulkan、OpenCL、CUDA、VAAPI、VideoToolbox、MediaFoundation)以及平台专用框架(AVFoundation、MediaCodec、JNI)。
平台支持矩阵:
- Android(API 26+):armv7、arm64、x86_64;Flutter 和 React Native
- iOS 13+ / tvOS 13+:arm64;Flutter 和 React Native(tvOS 不支持 Flutter)
- macOS 13+:arm64、x86_64;Flutter 和 React Native
- Linux(glibc 2.28+):x86_64;仅 Flutter
- Windows 8+:x86_64;Flutter 和 React Native
包体积因平台和层级而异(例如 Android base 约 30-38 MB,full 约 113-170 MB;iOS base 约 50-55 MB,full 约 112-147 MB)。GPL 许可的库会被明确标记;如需宽松许可,建议使用 LGPL 包。
该插件已发布在 pub.dev(ffmpeg_kit_extended_flutter)和 npm(ffmpeg-kit-extended)上。
评论
0 评分人数达到10人后显示
登录后参与讨论。