
FFmpegKit adalah kumpulan alat untuk menggunakan FFmpeg 1 di Android , iOS , Linux , macOS , tvOS , Flutter dan React Native Applications.
Ini termasuk skrip untuk membangun perpustakaan asli FFmpeg , perpustakaan pembungkus untuk menjalankan perintah FFmpeg / FFprobe dalam aplikasi dan 8 paket biner prebuilt yang tersedia di GitHub, Maven Central, Cocoapoda, Pub dan NPM.
FFmpegKit untuk menjalankan perintah FFmpeg / FFprobe dalam aplikasiv4.5-dev atau lebih baru dengan sistem opsional dan pustaka eksternalLGPL 3.0 secara default, GPL v3.0 Jika pustaka berlisensi GPL diaktifkan Lihat Android untuk mempelajari lebih lanjut tentang FFmpegKit untuk Android .
Lihat Apple untuk menggunakan FFmpegKit di platform Apple ( iOS , macOS , tvOS ).
Lihat Flutter untuk mempelajari lebih lanjut tentang FFmpegKit untuk Flutter .
Lihat Linux untuk mempelajari lebih lanjut tentang FFmpegKit untuk Linux .
Lihat React Native untuk mempelajari lebih lanjut tentang FFmpegKit untuk React Native .
Gunakan android.sh , ios.sh , linux.sh , macos.sh dan tvos.sh untuk membangun FFmpegKit untuk setiap platform asli.
Semua skrip mendukung opsi tambahan untuk mengaktifkan pustaka opsional dan menonaktifkan arsitektur platform. Lihat Bangun Halaman Wiki untuk detailnya.
FFmpegKit adalah perpustakaan pembungkus yang memungkinkan Anda untuk dengan mudah menjalankan perintah FFmpeg / FFprobe dalam aplikasi. Ini menyediakan fitur tambahan di atas FFmpeg untuk memungkinkan sumber daya spesifik platform, mengontrol bagaimana perintah dijalankan dan bagaimana hasilnya ditangani.
Perpustakaan Android dari FFmpegKit memiliki API Java , Perpustakaan Apple ( iOS , macOS , tvOS ) memiliki API Objective-C , perpustakaan Flutter dilengkapi dengan API Dart , Linux Library memiliki C++ API dan React Native Library menyediakan API JavaScript dengan definisi Typescript , yang merupakan fitur dan kemampuan.
Ada delapan paket ffmpeg-kit yang berbeda yang didistribusikan pada GitHub, Maven Central, Cocoapods, Pub dan NPM. Di bawah ini Anda dapat melihat perpustakaan sistem dan pustaka eksternal mana yang diaktifkan di masing -masing.
Harap diingat bahwa beberapa bagian FFmpeg dilisensikan di bawah GPL dan hanya paket ffmpeg-kit berlisensi GPL termasuk mereka.
| Min | Min-gpl | https | https-gpl | audio | video | penuh | full-gpl | |
|---|---|---|---|---|---|---|---|---|
| perpustakaan eksternal | - | vid.stab x264 x265 xvidcore | GMP Gnutls | GMP Gnutls vid.stab x264 x265 xvidcore | cacat libilbc Libvorbis OpenCore-AMR karya bersinar Soxr speex Twolame vo-amrwbenc | dav1d fontConfig Freetype fribidi Kvazaar Libass libiconv libtheora libvpx libwebp tajam Zimg | dav1d fontConfig Freetype fribidi GMP Gnutls Kvazaar cacat Libass libiconv libilbc libtheora Libvorbis libvpx libwebp libxml2 OpenCore-AMR karya bersinar tajam Soxr speex Twolame vo-amrwbenc Zimg | dav1d fontConfig Freetype fribidi GMP Gnutls Kvazaar cacat Libass libiconv libilbc libtheora Libvorbis libvpx libwebp libxml2 OpenCore-AMR karya bersinar tajam Soxr speex Twolame vid.stab vo-amrwbenc x264 x265 xvidcore Zimg |
| Perpustakaan Sistem Android | Zlib Mediacodec | |||||||
| pustaka sistem iOS | bzip2 AUDIOLBOX Avfoundation ICONV VideoToolBox Zlib | |||||||
| Perpustakaan Sistem MacOS | bzip2 AUDIOLBOX Avfoundation Gambar inti ICONV OpenCl OpenGL VideoToolBox Zlib | |||||||
| Perpustakaan Sistem TVOS | bzip2 AUDIOLBOX ICONV VideoToolBox Zlib | |||||||
AVFoundation tidak tersedia di tvOSVideoToolbox tidak tersedia pada rilis LTS iOS dan tvOSzimg didukung sejak v4.5.1 Binari FFmpegKit yang dihasilkan menggunakan nomor versi jurusan dan minor yang sama dengan proyek FFmpeg hulu. Angka ketiga dan terakhir dalam string versi, jika ada, khusus untuk FFmpegKit . Ini menunjukkan rilis yang berbeda dari cabang rilis FFmpeg yang sama.
Bagian dev dalam string versi menunjukkan bahwa kode sumber FFmpeg dikloning dari cabang master FFmpeg dan jumlah versi yang tepat dari FFmpeg diperoleh dengan menggunakan perintah git describe --tags .
| Platform | Versi FFMPEGKIT | Versi FFMPEG | Tanggal rilis |
|---|---|---|---|
| Berdebar | 6.0.3 | 6.0 | 19 Sep 2023 |
| Bereaksi asli | 6.0.2 | 6.0 | 19 Sep 2023 |
| Berdebar | 6.0.2 | 6.0 | 03 Sep 2023 |
| Bereaksi asli | 6.0.1 | 6.0 | 03 Sep 2023 |
| Berdebar | 6.0.1 | 6.0 | 03 Sep 2023 |
| Bereaksi asli | 6.0.0 | 6.0 | 27 Agustus 2023 |
| Berdebar | 6.0.0 | 6.0 | 27 Agustus 2023 |
| Android Apel | 6.0 | 6.0 | 21 Agustus 2023 |
| Bereaksi asli | 5.1.0 | 5.1.2 | 02 Okt 2022 |
| Berdebar | 5.1.0 | 5.1.2 | 02 Okt 2022 |
| Android Apel | 5.1 | 5.1.2 | 29 Sep 2022 |
| Bereaksi asli | 4.5.2 | 4.5-dev-3393 | 25 Mei 2022 |
| Berdebar | 4.5.1 | 4.5-dev-3393 | 02 Jan 2022 |
| Bereaksi asli | 4.5.1 | 4.5-dev-3393 | 02 Jan 2022 |
| Android | 4.5.1 | 4.5-dev-3393 | 01 Jan 2022 |
| Apel | 4.5.1 | 4.5-dev-3393 | 30 Desember 2021 |
| Berdebar | 4.5.0 | 4.5-dev-2008 | 05 Okt 2021 |
| Bereaksi asli | 4.5.0 | 4.5-dev-2008 | 01 Okt 2021 |
| Android Apel | 4.5 | 4.5-dev-2008 | 18 Sep 2021 |
| Android Apel | 4.4 | 4.4-dev-3015 | 03 Mar 2021 |
Binari FFmpegKit diterbitkan dalam dua varian rilis: Main Release dan LTS Release .
Rilis utama mencakup fungsionalitas lengkap perpustakaan dan mendukung fitur SDK/API terbaru.
Rilis LTS disesuaikan untuk mendukung berbagai perangkat. Mereka dibangun menggunakan versi API/SDK yang lebih lama, sehingga beberapa fitur tidak tersedia.
Tabel ini menunjukkan perbedaan antara dua varian.
| Rilis utama | Rilis LTS | |
|---|---|---|
| Level API Android | 24 | 16 |
| Akses kamera Android | Ya | - |
| Arsitektur Android | ARM-V7A-NEON ARM64-V8A x86 x86-64 | ARM-V7A ARM-V7A-NEON ARM64-V8A x86 x86-64 |
| ios min SDK | 12.1 | 10 |
| iOS VideoToolBox | Ya | - |
| iOS avfoundation | Ya | - |
| Arsitektur iOS | ARM64 ARM64-Simulator ARM64-MAC-Katalis x86-64 X86-64-Mac-Katalis | ARMV7 ARM64 I386 x86-64 |
| format bundel iOS | Xcframeworks | Kerangka kerja |
| Versi Min Catalyst Mac | 14.0 | - |
| Macos Min SDK | 10.15 | 10.12 |
| Avfoundation MacOS | Ya | - |
| Arsitektur MacOS | ARM64 x86-64 | x86-64 |
| Format Bundel MacOS | Xcframeworks | Kerangka kerja |
| TVOS Min SDK | 11.0 | 10.0 |
| TVOS VideoToolBox | Ya | - |
| Arsitektur TVOS | ARM64 x86-64 ARM64-Simulator | ARM64 x86-64 |
| Format Bundel TVOS | Xcframeworks | Kerangka kerja |
Dokumentasi yang lebih rinci tersedia di bawah Wiki.
Anda dapat melihat bagaimana FFmpegKit digunakan di dalam aplikasi dengan menjalankan aplikasi uji yang dibuat di bawah proyek uji FFMPEGKIT.
Semua aplikasi identik dan mendukung eksekusi perintah, pengkodean video, mengakses URL HTTPS, pengkodean audio, subtitle pembakaran, stabilisasi video, operasi pipa dan eksekusi perintah bersamaan.
Perpustakaan FFmpegKit saja dilisensikan di bawah LGPL v3.0 .
Bundel FFmpegKit ( .aar Archives, frameworks , xcframeworks ), yang mencakup perpustakaan FFmpegKit dan FFmpeg , juga dilisensikan di bawah LGPL v3.0 . Namun, jika kode sumber dibangun menggunakan bendera opsional --enable-gpl atau binari prebuilt dengan -gpl postfix digunakan, maka bundel FFmpegKit menjadi tunduk pada GPL v3.0 . Karena, FFmpeg dilisensikan di bawah GPL v3.0 dalam bundel tersebut. Dan itu membuat seluruh bundel secara efektif tunduk pada GPL v3.0 .
FFmpegKit Bangun skrip selalu mengkonfigurasi FFmpeg dengan opsi --enable-version3 . Dan tidak pernah mengaktifkan perpustakaan yang tidak bebas. Dengan demikian, pustaka FFmpeg yang dibuat oleh FFmpegKit dilisensikan di bawah LGPL v3.0 secara default. Hanya ketika --enable-gpl disediakan mereka menjadi sasaran GPL v3.0 . Begitulah Binari Prebuilt dengan -gpl Postfix dikompilasi.
Lihat lisensi untuk melihat lisensi semua perpustakaan. Merek Dagang mencantumkan merek dagang yang digunakan dalam dokumentasi FFmpegKit .
Tidak dijelaskan dengan jelas dalam dokumentasi mereka, tetapi diyakini bahwa FFmpeg , kvazaar , x264 dan x265 termasuk algoritma yang tunduk pada paten perangkat lunak. Jika Anda tinggal di negara di mana algoritma perangkat lunak dapat dipatenkan maka Anda mungkin perlu membayar biaya royalti kepada pemegang paten. Kami bukan pengacara, jadi kami sarankan Anda mencari nasihat hukum terlebih dahulu. Lihat FFMPEG Paten Mini-FAQ.
openh264 dengan jelas menyatakan bahwa ia menggunakan algoritma yang dipatenkan. Oleh karena itu, jika Anda membangun ffmpeg-kit dengan openh264 dan mendistribusikan perpustakaan itu, maka Anda harus membayar biaya lisensi MPEG LA. Lihat halaman FAQ OpenH264 untuk detailnya.
1 FFmpeg adalah merek dagang dari Fabrice Bellard. FFmpegKit adalah proyek independen dan tidak berafiliasi dengan pemegang merek dagang FFmpeg .
Lihat Panduan Kontribusi kami.