
FFmpegKit 、 Android 、 iOS 、 Linux 、 macOS 、 tvOS 、 Flutter 、 React NativeアプリケーションでFFmpeg 1を使用するツールのコレクションです。
FFmpegネイティブライブラリを構築するためのスクリプト、アプリケーションでFFmpeg / FFprobeコマンドを実行するラッパーライブラリ、およびGitHub、Maven Central、Cocoapods、Pub、NPMで利用可能な8つの事前に構築されたバイナリパッケージが含まれています。
FFmpegKitラッパーライブラリをアプリケーションでFFmpeg / FFprobeコマンドを実行するv4.5-dev以降に基づいて、オプションのシステムと外部ライブラリを使用してLGPL 3.0でライセンスされたデフォルトでは、 GPL v3.0が有効になっている場合はgpl v3.0 AndroidのFFmpegKitの詳細については、 Androidを参照してください。
Appleを参照して、 Appleプラットフォーム( iOS 、 macOS 、 tvOS )でFFmpegKitを使用してください。
Flutterについては、 FFmpegKitの詳細については、 Flutterをご覧ください。
Linuxの詳細については、 FFmpegKit Linuxご覧ください。
FFmpegKit詳細については、ReactネイティブのReact Nativeネイティブを参照してください。
android.sh 、 ios.sh 、 linux.sh 、 macos.sh 、 tvos.shを使用して、各ネイティブプラットフォームのFFmpegKit構築します。
すべてのスクリプトは、オプションのライブラリを有効にし、プラットフォームアーキテクチャを無効にするための追加のオプションをサポートしています。詳細については、Wikiページの構築を参照してください。
FFmpegKitは、アプリケーションでFFmpeg / FFprobeコマンドを簡単に実行できるラッパーライブラリです。 FFmpegの上に追加機能を提供して、プラットフォーム固有のリソースを有効にし、コマンドの実行方法と結果の処理方法を制御します。
FFmpegKitのAndroidライブラリにはJava API、 Appleライブラリ( iOS 、 macOS 、 tvOS )があり、 Objective-C APIがあり、 FlutterライブラリにはDart APIがあり、 LinuxライブラリにはC++ APIがあり、 React Native Libraryは、特徴と能力と同一のTypescript定義を備えたJavaScript APIを提供します。
Github、Maven Central、Cocoapods、Pub、NPMに分布する8つの異なるffmpeg-kitパッケージがあります。以下に、それぞれでどのシステムライブラリと外部ライブラリが有効になっているかを確認できます。
FFmpegの一部はGPLの下でライセンスされており、 GPLのライセンスを受けたffmpeg-kitパッケージのみが含まれていることを忘れないでください。
| 分 | min-gpl | https | https-gpl | オーディオ | ビデオ | 満杯 | full-gpl | |
|---|---|---|---|---|---|---|---|---|
| 外部ライブラリ | - | vid.stab x264 x265 xvidcore | GMP gnutls | GMP gnutls vid.stab x264 x265 xvidcore | ラメ libilbc Libvorbis Opencore-amr Opus 輝く soxr Speex Twolame vo-amrwbenc | dav1d fontconfig フリータイプ フリビディ Kvazaar リバス libiconv libtheora libvpx libwebp スナッピー zimg | dav1d fontconfig フリータイプ フリビディ GMP gnutls Kvazaar ラメ リバス libiconv libilbc libtheora Libvorbis libvpx libwebp LIBXML2 Opencore-amr Opus 輝く スナッピー soxr Speex Twolame vo-amrwbenc zimg | dav1d fontconfig フリータイプ フリビディ GMP gnutls Kvazaar ラメ リバス libiconv libilbc libtheora Libvorbis libvpx libwebp LIBXML2 Opencore-amr Opus 輝く スナッピー soxr Speex Twolame vid.stab vo-amrwbenc x264 x265 xvidcore zimg |
| Androidシステムライブラリ | Zlib MediaCodec | |||||||
| iOSシステムライブラリ | BZIP2 audiotoolbox AVFoundation ICONV videotoolbox Zlib | |||||||
| MacOSシステムライブラリ | BZIP2 audiotoolbox AVFoundation コア画像 ICONV opencl opengl videotoolbox Zlib | |||||||
| TVOSシステムライブラリ | BZIP2 audiotoolbox ICONV videotoolbox Zlib | |||||||
AVFoundation tvOSでは利用できませんVideoToolbox 、 iOSおよびtvOSのLTSリリースでは利用できませんzimgはv4.5.1以降サポートされています生成されたFFmpegKitバイナリは、アップストリームFFmpegプロジェクトと同じ主要バージョンとマイナーバージョンの数値を使用します。バージョン文字列の3番目と最後の数字は、存在する場合、 FFmpegKitに固有です。同じFFmpegリリースブランチからの異なるリリースを示しています。
バージョン文字列のdev部品は、 FFmpegソースコードがFFmpeg masterブランチからクローン化されており、 FFmpegの正確なバージョン番号がgit describe --tagsコマンドを使用して取得されることを示します。
| プラットフォーム | ffmpegkitバージョン | ffmpegバージョン | 発売日 |
|---|---|---|---|
| ひらひら | 6.0.3 | 6.0 | 2023年9月19日 |
| ネイティブの反応 | 6.0.2 | 6.0 | 2023年9月19日 |
| ひらひら | 6.0.2 | 6.0 | 2023年9月3日 |
| ネイティブの反応 | 6.0.1 | 6.0 | 2023年9月3日 |
| ひらひら | 6.0.1 | 6.0 | 2023年9月3日 |
| ネイティブの反応 | 6.0.0 | 6.0 | 2023年8月27日 |
| ひらひら | 6.0.0 | 6.0 | 2023年8月27日 |
| アンドロイド りんご | 6.0 | 6.0 | 2023年8月21日 |
| ネイティブの反応 | 5.1.0 | 5.1.2 | 2022年10月2日 |
| ひらひら | 5.1.0 | 5.1.2 | 2022年10月2日 |
| アンドロイド りんご | 5.1 | 5.1.2 | 2022年9月29日 |
| ネイティブの反応 | 4.5.2 | 4.5-DEV-3393 | 2022年5月25日 |
| ひらひら | 4.5.1 | 4.5-DEV-3393 | 2022年1月2日 |
| ネイティブの反応 | 4.5.1 | 4.5-DEV-3393 | 2022年1月2日 |
| アンドロイド | 4.5.1 | 4.5-DEV-3393 | 2022年1月1日 |
| りんご | 4.5.1 | 4.5-DEV-3393 | 2021年12月30日 |
| ひらひら | 4.5.0 | 4.5-DEV-2008 | 2021年10月5日 |
| ネイティブの反応 | 4.5.0 | 4.5-DEV-2008 | 2021年10月1日 |
| アンドロイド りんご | 4.5 | 4.5-DEV-2008 | 2021年9月18日 |
| アンドロイド りんご | 4.4 | 4.4-DEV-3015 | 2021年3月3日 |
FFmpegKitバイナリは、 Main ReleaseとLTS Release 2つのリリースバリアントで公開されています。
メインリリースには、ライブラリの完全な機能が含まれ、最新のSDK/API機能をサポートしています。
LTSリリースは、より広範なデバイスをサポートするためにカスタマイズされています。古いAPI/SDKバージョンを使用して構築されているため、一部の機能は使用できません。
この表は、2つのバリアント間の違いを示しています。
| メインリリース | LTSリリース | |
|---|---|---|
| Android APIレベル | 24 | 16 |
| Androidカメラアクセス | はい | - |
| Androidアーキテクチャ | アームV7A-NEON ARM64-V8A x86 x86-64 | ARM-V7A アームV7A-NEON ARM64-V8A x86 x86-64 |
| iOS MIN SDK | 12.1 | 10 |
| iOS VideoToolbox | はい | - |
| iOS avfoundation | はい | - |
| iOSアーキテクチャ | ARM64 ARM64シミュレータ ARM64-MAC-CATALYST x86-64 x86-64-mac atalyst | ARMV7 ARM64 I386 x86-64 |
| iOSバンドル形式 | xcframeworks | フレームワーク |
| Mac Catalyst Minバージョン | 14.0 | - |
| MacOS Min SDK | 10.15 | 10.12 |
| MacOS Avfoundation | はい | - |
| MacOSアーキテクチャ | ARM64 x86-64 | x86-64 |
| MacOSバンドル形式 | xcframeworks | フレームワーク |
| TVOS MIN SDK | 11.0 | 10.0 |
| TVOS VideoToolbox | はい | - |
| TVOSアーキテクチャ | ARM64 x86-64 ARM64シミュレータ | ARM64 x86-64 |
| TVOSバンドル形式 | xcframeworks | フレームワーク |
より詳細なドキュメントはWikiの下で入手できます。
FFMPEGKITテストプロジェクトで作成されたテストアプリケーションを実行することにより、 FFmpegKitがアプリケーション内でどのように使用されるかを確認できます。
すべてのアプリケーションは同一であり、コマンドの実行、ビデオエンコード、HTTPS URLへのアクセス、オーディオのエンコード、バーニングサブタイトル、ビデオ安定化、パイプ操作、同時コマンド実行をサポートします。
FFmpegKitライブラリのみがLGPL v3.0でライセンスされています。
FFmpegKitバンドル( .aarアーカイブ、 frameworks 、 xcframeworks )は、 FFmpegKitとFFmpegライブラリの両方を含む、 LGPL v3.0下でライセンスされています。ただし、ソースコードがオプションの--enable-gplフラグまたは-gpl Postfixを備えた事前に構築されたバイナリを使用して構築されている場合、 FFmpegKitバンドルはGPL v3.0の対象となります。なぜなら、 FFmpegはこれらのバンドルのGPL v3.0の下でライセンスされているからです。そして、それにより、バンドル全体がGPL v3.0の効果的な影響を与えます。
FFmpegKitビルドスクリプトは、常にFFmpeg --enable-version3オプションで構成します。そして、非フリーライブラリを有効にしないでください。したがって、 FFmpegKitによって作成されたFFmpegライブラリは、デフォルトでLGPL v3.0に基づいてライセンスされています。 --enable-gplが提供された場合にのみ、 GPL v3.0の対象となります。これが、 -gpl Postfixを使用した事前に構築されたバイナリがどのようにコンパイルされているかです。
ライセンスを参照して、すべてのライブラリのライセンスを確認してください。商標は、 FFmpegKitドキュメントで使用される商標をリストします。
ドキュメントでは明確に説明されていませんが、 FFmpeg 、 kvazaar 、 x264 、 x265には、ソフトウェア特許の対象となるアルゴリズムが含まれると考えられています。ソフトウェアアルゴリズムが特許性がある国に住んでいる場合は、おそらく特許権者にロイヤリティ料金を支払う必要があります。私たちは弁護士ではないので、最初に法的助言を求めることをお勧めします。 FFMPEG Patent Mini-Faqを参照してください。
openh264 、特許取得済みのアルゴリズムを使用していることを明確に述べています。したがって、 openh264を使用してffmpeg-kitを構築し、そのライブラリを配布すると、MPEG LAライセンス料を支払う必要があります。詳細については、OpenH264 FAQページを参照してください。
1 FFmpegは、ファブリスベラードの商標です。 FFmpegKitは独立したプロジェクトであり、 FFmpeg商標所有者と提携していません。
寄稿ガイドを参照してください。