このプロジェクトについて

ffmpeg-kit-extendedは、モバイルおよびデスクトッププラットフォーム向けにFFmpeg、FFprobe、FFplay 9.0.1 APIをラップする包括的なFlutterおよびReact Nativeプラグインである。Dart FFIを使用してネイティブFFmpegライブラリに直接バインドし、Android、iOS、macOS、Linux、Windows全体で高性能なメディア操作、情報取得、音声・動画再生を実現する。 主な機能には以下が含まれる: - 統一されたサーフェスAPIによるクロスプラットフォーム動画再生(Android Surface、iOS/macOS CVPixelBuffer/Metal、Linux OpenGL、Windows) - UIスレッドをブロックしない非同期および並列コマンド実行 - ライブ再生監視のための位置および動画サイズのリアルタイムストリーミング - 完全なセッションライフサイクル管理(セッションの開始、キャンセル、一覧表示) - ログ、統計、完了イベントの詳細コールバック - バージョン、ビルド日付、利用可能なmuxer、demuxer、エンコーダー、デコーダー、フィルターを照会するパッケージイントロスペクションAPI - カスタムネイティブライブラリの読み込みと設定のサポート - 関連リポジトリであるffmpeg-kit-buildersを介したデプロイ可能なカスタムビルド 事前バンドルされたビルドは5つのティアで提供される: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)で公開されている。