
FFmpegKit是在Android , iOS , Linux , macOS , tvOS , Flutter和React Native應用程序中使用FFmpeg 1的工具集合。
它包括用於構建FFmpeg本機庫,一個包裝庫,在應用程序中運行FFmpeg / FFprobe命令的包裝庫,以及8個預先構建的二進制套件,可在Github,Maven Central,Cocoapods,cocoapods,pub和npm上提供。
FFmpegKit包裝庫在應用程序中運行FFmpeg / FFprobe命令v4.5-dev或以後使用可選系統和外部庫LGPL 3.0許可, GPL v3.0如果已啟用GPL許可庫請參閱Android,以了解有關Android的FFmpegKit更多信息。
請參閱Apple在Apple平台上使用FFmpegKit ( iOS , macOS , tvOS )。
請參閱Flutter,以了解Flutter FFmpegKit更多信息。
請參閱Linux了解有關Linux的FFmpegKit更多信息。
請參閱React Native以了解有關React Native有關FFmpegKit更多信息。
使用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 Library帶有Dart API, Linux庫具有C++ API, React Native Library提供了JavaScript API,具有帶有Typescript定義,這些定義是在功能和能力方面與之相同的。
在Github,Maven Central,Cocoapods,Pub和NPM上分佈了八個不同的ffmpeg-kit軟件包。在下面,您可以看到其中每個系統庫和外部庫都啟用了哪些系統庫和外部庫。
請記住, FFmpeg的某些部分是在GPL下許可的,只有GPL許可的ffmpeg-kit軟件包包括它們。
| 最小 | Min-GPL | https | https-gpl | 聲音的 | 影片 | 滿的 | 全GPL | |
|---|---|---|---|---|---|---|---|---|
| 外部庫 | - | vid.stab X264 x265 xvidcore | GMP Gnutls | GMP Gnutls vid.stab X264 x265 xvidcore | 瘸 libilbc libvorbis opencore-amr 作品 閃耀 soxr Speex Twolame vo-amrwbenc | dav1d fontconfig freetype Fribidi Kvazaar 利巴斯 Libiconv libtheora libvpx libwebp 活潑 Zimg | dav1d fontconfig freetype Fribidi GMP Gnutls Kvazaar 瘸 利巴斯 Libiconv libilbc libtheora libvorbis libvpx libwebp libxml2 opencore-amr 作品 閃耀 活潑 soxr Speex Twolame vo-amrwbenc Zimg | dav1d fontconfig freetype Fribidi GMP Gnutls Kvazaar 瘸 利巴斯 Libiconv libilbc libtheora libvorbis libvpx libwebp libxml2 opencore-amr 作品 閃耀 活潑 soxr Speex Twolame vid.stab vo-amrwbenc X264 x265 xvidcore Zimg |
| Android系統庫 | Zlib MediaCodec | |||||||
| iOS系統庫 | BZIP2 Audiotoolbox avfoundation ICONV 錄影帶 Zlib | |||||||
| MacOS系統庫 | BZIP2 Audiotoolbox avfoundation 核心圖像 ICONV OPENCL OpenGL 錄影帶 Zlib | |||||||
| TVOS系統庫 | BZIP2 Audiotoolbox ICONV 錄影帶 Zlib | |||||||
tvOS上沒有AVFoundationiOS和tvOS的LTS版本上不可用VideoToolboxv4.5.1以來, zimg得到了支持生成的FFmpegKit二進製文件使用與上游FFmpeg項目相同的主要版本和次要版本編號。版本字符串中的第三個也是最後一個數字(如果存在)是FFmpegKit的特定的。它顯示了來自同一FFmpeg發行分支的不同版本。
版本字符串中的dev部分指示FFmpeg源代碼是從FFmpeg master Branch克隆的,並且使用git describe --tags命令獲得了FFmpeg的確切版本編號。
| 平台 | FFMPEGKIT版本 | FFMPEG版本 | 發布日期 |
|---|---|---|---|
| 撲 | 6.0.3 | 6.0 | 2023年9月19日 |
| 反應天然 | 6.0.2 | 6.0 | 2023年9月19日 |
| 撲 | 6.0.2 | 6.0 | 9月3日,2023年 |
| 反應天然 | 6.0.1 | 6.0 | 9月3日,2023年 |
| 撲 | 6.0.1 | 6.0 | 9月3日,2023年 |
| 反應天然 | 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 | 9月29日,2022年 |
| 反應天然 | 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 | 3月3日,2021年 |
FFmpegKit二進製文件發表在兩個發行版本中: Main Release和LTS Release 。
主要版本包括庫的完整功能,並支持最新的SDK/API功能。
定制LTS版本以支持更廣泛的設備。它們是使用較舊的API/SDK版本構建的,因此某些功能在其上不可用。
該表顯示了兩個變體之間的差異。
| 主要版本 | LTS發布 | |
|---|---|---|
| Android API級別 | 24 | 16 |
| Android相機訪問 | 是的 | - |
| 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 | 是的 | - |
| iOS avoundation | 是的 | - |
| iOS體系結構 | ARM64 ARM64-Simulator ARM64-MAC催化劑 X86-64 X86-64-MAC - 催化劑 | ARMV7 ARM64 I386 X86-64 |
| iOS捆綁格式 | XCFrameWorks | 框架 |
| MAC催化劑最小版本 | 14.0 | - |
| MacOS Min SDK | 10.15 | 10.12 |
| macOS avoundation | 是的 | - |
| MacOS體系結構 | ARM64 X86-64 | X86-64 |
| MACOS捆綁格式 | XCFrameWorks | 框架 |
| TVOS Min SDK | 11.0 | 10.0 |
| TVOS錄像帶 | 是的 | - |
| TVOS架構 | ARM64 X86-64 ARM64-Simulator | 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構建腳本總是使用--enable-version3選項配置FFmpeg 。永遠不要啟用非免費庫。因此, FFmpegKit創建的FFmpeg庫默認為LGPL v3.0 。只有在提供--enable-gpl時,它們才會受到GPL v3.0約束。這就是如何編譯帶有-gpl後綴的預構建二進製文件的方式。
請參閱許可證以查看所有圖書館的許可。商標列出了FFmpegKit文檔中使用的商標。
在他們的文檔中並未清楚地解釋,但是據信FFmpeg , kvazaar , x264和x265包括遵守軟件專利的算法。如果您居住在一個可以專利的軟件算法的國家 /地區,那麼您可能需要向專利持有人支付特許權使用費。不過,我們不是律師,因此我們建議您首先尋求法律建議。參見FFMPEG專利迷你FAQ。
openh264清楚地指出,它使用了專利算法。因此,如果您使用openh264構建ffmpeg-kit並分發該庫,那麼您將支付MPEG LA許可費。有關詳細信息,請參閱OpenH264常見問題解答頁面。
1 FFmpeg是Fabrice Bellard的商標。 FFmpegKit是一個獨立的項目,不隸屬於FFmpeg商標持有人。
請參閱我們的貢獻指南。