Show HN:跨平台 Flutter 和 React Native 插件 – FFmpeg-Kit-Extended
1 分•作者: akashskypatel•大约 2 小时前
功能齐全的 React-Native 和 Flutter 插件,可让您执行 FFmpeg、FFprobe 和 FFplay 命令,而无需部署这些可执行文件。以原生性能级别获得 FFmpeg 的全部强大功能。支持 100 多个外部库,并为每个平台分发的 24 种不同二进制文件提供预捆绑的预设分发,包含各种功能,并能够部署自定义构建。
核心功能:
- 跨平台支持:适用于 Android、iOS、macOS、tvOS、Linux 和 Windows。
- Android:通过原生表面渲染提供完整的视频播放支持。
- x86:由于其遗留状态,不支持 x86 架构。
- iOS 和 macOS:通过 CVPixelBuffer 和 Metal 集成实现高性能视频播放。
- iOS:同时支持物理设备和模拟器。由于其遗留状态,不支持 x86_64 架构。
- FFmpeg、FFprobe 和 FFplay:最新的 8.1.2 API 支持媒体处理、信息检索以及音频/视频播放。
- 视频播放:通过统一的表面 API 实现完整的跨平台视频播放。
- 实时流:用于实时播放监控的位置和视频尺寸流。
- 异步执行:在不阻塞 UI 线程的情况下运行耗时任务。
- 并行执行:并行运行多个任务。
- 回调支持:提供详细的日志、统计信息和会话完成钩子。
- 会话管理:完全控制执行生命周期(开始、取消、列表)。
- 可扩展:设计用于允许加载和配置自定义原生库。
- 完整的包内省 API:获取有关包的详细信息,包括版本、构建日期以及可用的复用器、解复用器、编码器、解码器、过滤器等。
- 部署自定义构建:您可以部署 ffmpeg-kit-extended 的自定义构建。请参阅:
- 预构建分发:支持的预构建包类型有 debug、base、full、audio、video 和 video_hw。
- 支持的许可证:支持 GPL 和 LGPL 许可证。
平台支持:
- Android(和 Android TV)- Flutter 和 React-Native
- iOS(和模拟器)- Flutter 和 React-Native
- tvOS(和模拟器)- React-Native
- macOS - Flutter 和 React-Native
- Linux - Flutter
- Windows - Flutter 和 React-Native
Flutter 目前不支持 tvOS,因此 Flutter 不支持 tvOS。
React-native 目前不支持 Linux,因此 React-native 不支持 Linux。
演示:
查看原文
Full featured React-Native and Flutter plugin that lets you execute FFmpeg, FFprobe and FFplay commands without needing to deploy those executables. Get the full power of FFmpeg at native performance level. Includes support for 100+ external libraries with pre-bundled preset distributions for 24 different binaries distributed per platform with various included features plus the ability to deploy custom builds.<p><a href="https://github.com/akashskypatel/ffmpeg-kit-extended" rel="nofollow">https://github.com/akashskypatel/ffmpeg-kit-extended</a><p><a href="https://www.npmjs.com/package/ffmpeg-kit-extended" rel="nofollow">https://www.npmjs.com/package/ffmpeg-kit-extended</a><p><a href="https://pub.dev/packages/ffmpegkitextended_flutter" rel="nofollow">https://pub.dev/packages/ffmpegkitextended_flutter</a><p>Core features:<p>- Cross-Platform Support: Works on Android, iOS, macOS, tvOS, Linux and Windows.<p>-- Android: Full video playback support with native surface rendering.<p>--- x86: x86 architecture is not supported due to its legacy status.<p>-- iOS & macOS: High-performance video playback with CVPixelBuffer and Metal integration.<p>-- iOS: Supports both physical devices and simulators. x86_64 architecture is not supported due to its legacy status.<p>- FFmpeg, FFprobe & FFplay: Latest 8.1.2 API support for media manipulation, information retrieval, and audio/video playback.<p>- Video Playback: Complete cross-platform video playback with unified surface API.<p>- Real-time Streaming: Position and video dimension streams for live playback monitoring.<p>- Asynchronous Execution: Run long-running tasks without blocking the UI thread.<p>- Parallel Execution: Run multiple tasks in parallel.<p>- Callback Support: detailed hooks for logs, statistics, and session completion.<p>- Session Management: Full control over execution lifecycle (start, cancel, list).<p>- Extensible: Designed to allow custom native library loading and configuration.<p>- Full package Introspection API: Get detailed information about the package, including version, build date, and available muxers, demuxers, encoders, decoders, filters, etc.<p>- Deploy Custom Builds: You can deploy custom builds of ffmpeg-kit-extended. See: <a href="https://github.com/akashskypatel/ffmpeg-kit-builders" rel="nofollow">https://github.com/akashskypatel/ffmpeg-kit-builders</a><p>- Prebuilt Distributions: Supported pre-built bundle types are debug, base, full, audio, video, and video_hw.<p>- Supported Licenses: supports both GPL and LGPL licenses<p>Platform Support:<p>Android (and Android TV) - Flutter & React-Native<p>iOS (and Simulator) - Flutter & React-Native<p>tvOS (and Simulator) - React-Native<p>macOS - Flutter & React-Native<p>Linux - Flutter<p>Windows - Flutter & React-Native<p>Flutter currently does not natively support tvOS, so tvOS support is not available for Flutter.<p>React-native currently does not natively support Linux, so Linux support is not available for React-native.<p>Demo : <a href="https://raw.githubusercontent.com/akashskypatel/ffmpeg-kit-extended/refs/heads/master/flutter/doc/demo.gif" rel="nofollow">https://raw.githubusercontent.com/akashskypatel/ffmpeg-kit-e...</a>