
FFmpegKit - это коллекция инструментов для использования FFmpeg 1 в Android , iOS , Linux , macOS , tvOS , Flutter и React Native приложения.
Он включает в себя сценарии для создания нативных библиотек FFmpeg , библиотеки обертки для запуска команд FFmpeg / FFprobe в приложениях и 8 предварительно построенных двоичных пакетов, доступных в Github, Maven Central, Cocoapods, Pub и NPM.
FFmpegKit для запуска команд FFmpeg / FFprobe в приложенияхv4.5-dev или позже с дополнительной системой и внешними библиотекамиLGPL 3.0 по умолчанию, GPL v3.0 если лицензированные библиотеки GPL включены Смотрите Android, чтобы узнать больше о FFmpegKit для Android .
См. Apple, чтобы использовать FFmpegKit на Apple Platforms ( iOS , macOS , tvOS ).
Смотрите Flutter, чтобы узнать больше о FFmpegKit для Flutter .
Смотрите Linux, чтобы узнать больше о FFmpegKit для Linux .
См. React Native, чтобы узнать больше о FFmpegKit для React Native .
Используйте android.sh , ios.sh , linux.sh , macos.sh и tvos.sh чтобы создать FFmpegKit для каждой нативной платформы.
Все сценарии поддерживают дополнительные параметры для включения дополнительных библиотек и отключения архитектур платформы. Смотрите страницу «Создание вики» для деталей.
FFmpegKit - это библиотека обертки, которая позволяет легко запускать команды FFmpeg / FFprobe в приложениях. Он предоставляет дополнительные функции поверх FFmpeg , чтобы включить конкретные ресурсы платформы, управлять тем, как выполняются команды и как обрабатываются результаты.
Библиотека Android в FFmpegKit имеет Java API, Apple Bibraries ( iOS , macOS , tvOS ) имеет API Objective-C , библиотека Flutter поставляется с API Dart , Linux Library имеет API C++ , а React Native обеспечивает API JavaScript с определениями Typescript , которые идентичны функциям и возможностям.
Существует восемь различных пакетов ffmpeg-kit , распределенных на GitHub, Maven Central, Cocoapods, Pub и NPM. Ниже вы можете увидеть, какие системные библиотеки и внешние библиотеки включены в каждом из них.
Пожалуйста, помните, что некоторые части FFmpeg лицензированы в соответствии с GPL , и только лицензированные GPL ffmpeg-kit пакеты включают их.
| мин | мин-гпл | https | https-gpl | аудио | видео | полный | Полный GPL | |
|---|---|---|---|---|---|---|---|---|
| Внешние библиотеки | - | Vid.Stab x264 x265 xvidcore | GMP Gnutls | GMP Gnutls Vid.Stab x264 x265 xvidcore | хромой Libilbc Либворбис OpenCore-Amr опус светить Soxr Speex TWOLAME vo-amrwbenc | Dav1d FontConfig Freetype Фрибиди Квазар либасс Либиконв Либтеора libvpx libwebp заново Zimg | Dav1d FontConfig Freetype Фрибиди GMP Gnutls Квазар хромой либасс Либиконв Libilbc Либтеора Либворбис libvpx libwebp libxml2 OpenCore-Amr опус светить заново Soxr Speex TWOLAME vo-amrwbenc Zimg | Dav1d FontConfig Freetype Фрибиди GMP Gnutls Квазар хромой либасс Либиконв Libilbc Либтеора Либворбис libvpx libwebp libxml2 OpenCore-Amr опус светить заново Soxr Speex TWOLAME Vid.Stab vo-amrwbenc x264 x265 xvidcore Zimg |
| Библиотеки системы Android | Злиб MediaCodec | |||||||
| Системные библиотеки iOS | Bzip2 Audiotoolbox AvFoundation ICONV VideoToolbox Злиб | |||||||
| Системные библиотеки MacOS | Bzip2 Audiotoolbox AvFoundation Основное изображение ICONV Opencl Открытый VideoToolbox Злиб | |||||||
| Системные библиотеки TVOS | Bzip2 Audiotoolbox ICONV VideoToolbox Злиб | |||||||
AVFoundation не доступна на tvOSVideoToolbox недоступен в выпусках LTS iOS и tvOSzimg поддерживается с v4.5.1 Созданные двоичные файлы FFmpegKit используют те же самые основные и незначительные номера версий, что и вверх по течению проекта FFmpeg . Третий и последний номер в строке версии, если существует, специфичен для FFmpegKit . Он показывает разные выпуски из одной и той же ветви выпуска FFmpeg .
Часть dev в строке версии указывает, что исходный код FFmpeg клонируется из master ветви FFmpeg , а точное число версий FFmpeg получается с использованием команды git describe --tags .
| Платформы | Ffmpegkit версия | FFMPEG версия | Дата выпуска |
|---|---|---|---|
| Разветвление | 6.0.3 | 6,0 | 19 сентября 2023 года |
| Реагировать на родной | 6.0.2 | 6,0 | 19 сентября 2023 года |
| Разветвление | 6.0.2 | 6,0 | 03 сентября 2023 года |
| Реагировать на родной | 6.0.1 | 6,0 | 03 сентября 2023 года |
| Разветвление | 6.0.1 | 6,0 | 03 сентября 2023 года |
| Реагировать на родной | 6.0.0 | 6,0 | 27 августа 2023 года |
| Разветвление | 6.0.0 | 6,0 | 27 августа 2023 года |
| Android Яблоко | 6,0 | 6,0 | 21 августа 2023 года |
| Реагировать на родной | 5.1.0 | 5.1.2 | 02 октября 2022 года |
| Разветвление | 5.1.0 | 5.1.2 | 02 октября 2022 года |
| Android Яблоко | 5.1 | 5.1.2 | 29 сентября 2022 года |
| Реагировать на родной | 4.5.2 | 4.5-DEV-3393 | 25 мая 2022 года |
| Разветвление | 4.5.1 | 4.5-DEV-3393 | 02 января 2022 года |
| Реагировать на родной | 4.5.1 | 4.5-DEV-3393 | 02 января 2022 года |
| Android | 4.5.1 | 4.5-DEV-3393 | 01 января 2022 года |
| Яблоко | 4.5.1 | 4.5-DEV-3393 | 30 декабря 2021 года |
| Разветвление | 4.5.0 | 4,5-дев-2008 | 05 октября 2021 года |
| Реагировать на родной | 4.5.0 | 4,5-дев-2008 | 01 октября 2021 года |
| Android Яблоко | 4.5 | 4,5-дев-2008 | 18 сентября 2021 года |
| Android Яблоко | 4.4 | 4.4-DEV-3015 | 03 марта 2021 года |
Двоирные файлы FFmpegKit опубликованы в двух вариантах релиза: Main Release и LTS Release .
Основные выпуски включают в себя полную функциональность библиотеки и поддержку последних функций SDK/API.
Выпуски LTS настроены для поддержки более широкого диапазона устройств. Они построены с использованием более старых версий API/SDK, поэтому некоторые функции не доступны на них.
Эта таблица показывает различия между двумя вариантами.
| Основной релиз | Выпуск LTS | |
|---|---|---|
| API API -уровень Android | 24 | 16 |
| Доступ к камере Android | Да | - |
| Android Architectures | 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 avfoundation | Да | - |
| Архитектуры iOS | ARM64 ARM64-Simulator ARM64-MAC-Катализатор x86-64 x86-64-mac-катализатор | ARMV7 ARM64 I386 x86-64 |
| Формат пакета iOS | Xcframeworks | Рамки |
| Mac Catalyst Min версия | 14.0 | - |
| macos min sdk | 10.15 | 10.12 |
| MacOS AvFoundation | Да | - |
| MacOS Architectures | ARM64 x86-64 | x86-64 |
| MacOS Bundle Format | Xcframeworks | Рамки |
| TVOS MIN SDK | 11.0 | 10.0 |
| TVOS VideoToolbox | Да | - |
| TVOS Architectures | ARM64 x86-64 ARM64-Simulator | ARM64 x86-64 |
| Формат пучка TVOS | Xcframeworks | Рамки |
Более подробная документация доступна под вики.
Вы можете увидеть, как FFmpegKit используется внутри приложения, запустив тестовые приложения, созданные в рамках тестового проекта FFMPegkit.
Все приложения идентичны и поддерживают выполнение команд, кодирование видео, доступ к URL -адресам HTTPS, кодирование аудио, сжигание субтитров, стабилизацию видео, операции труб и одновременное выполнение команды.
Только библиотека FFmpegKit лицензирована в рамках LGPL v3.0 .
Счетчики FFmpegKit ( .aar Archives, frameworks , xcframeworks ), которые включают в себя как FFmpegKit , так и библиотеки FFmpeg , также лицензированы в рамках LGPL v3.0 . Однако, если исходный код построен с использованием дополнительного флага --enable-gpl или предварительно построенных двоичных файлов с помощью -gpl Postfix, то пучки FFmpegKit становятся предметом GPL v3.0 . Потому что FFmpeg лицензирован в GPL v3.0 в этих пучках. И это делает весь пакет эффективно подвергаться GPL v3.0 .
Сценарии FFmpegKit Build всегда настраивают FFmpeg с опцией --enable-version3 . И никогда не включать не свободные библиотеки. Таким образом, библиотеки FFmpeg , созданные FFmpegKit , по умолчанию лицензированы в рамках LGPL v3.0 . Только когда --enable-gpl , они становятся предметом GPL v3.0 . Вот как скомпилируются предварительно построенные двоичные файлы с постфиксом -gpl .
Обратитесь к лицензиям, чтобы увидеть лицензии всех библиотек. Товарные знаки перечисляют товарные знаки, используемые в документации FFmpegKit .
Это не четко объяснено в их документации, но считается, что FFmpeg , kvazaar , x264 и x265 включают алгоритмы, которые подлежат патентам программного обеспечения. Если вы живете в стране, где алгоритмы программного обеспечения являются патентоспособными, вам, вероятно, необходимо заплатить плату за роялти владельцам патентов. Мы не юристы, поэтому мы рекомендуем вам сначала обратиться за юридической консультацией. См. FFMPEG Patent Mini-Faq.
openh264 четко заявляет, что использует запатентованные алгоритмы. Поэтому, если вы создаете ffmpeg-kit с openh264 и распространяете эту библиотеку, то вы будете оплачивать плату за лицензирование MPEG LA. Обратитесь к странице FAQ OpenH264 для получения подробной информации.
1 FFmpeg - товарная марка Fabrice Bellard. FFmpegKit является независимым проектом, не связанным с обладателем товарной марки FFmpeg .
Смотрите наше руководство.