MobileFFmpeg v4.4
Feature release based on FFmpeg v4.4.x.
Features
- Includes
FFmpeg v4.4-dev-416
- Adds async API methods to support executing
FFmpeg
commands asynchronously- Generates a new execution id for async executions, synchronous executions uses the id 0
- Ability to list all ongoing executions
- Cancel a specific async execution
- Log and statistics callbacks/delegates updated to include execution id
- Applies execution specific log levels concept. All executions have their own log level, this log level is isolated from other concurrent executions
- Introduces
Config.ignoreSignal()
API method to disable handling of signals. This is necessary to ignoreSIGXCPU
signal on Unity and other platforms that use Mono framework - Uses
Google
cpu_features
library instead ofNDK
's deprecatedcpufeatures
library onAndroid
- Updates
FFprobe.getMediaInformation()
implementation to use JSON parsing, which comes with more flexibleMediaInformation
andStreamInformation
classes - Adds
FFprobe.getMediaInformationFromCommand()
API method to extract media information from a customffprobe
command - Removes internal log line limit on
Android
- Adds an API method on
Android
to allow setting environment variables,Config.setEnvironmentVariable()
- Does not store
ffmpeg
andcpu-features
source code under the repository, downloads them before the build - Removes
avfoundation
device iniOS
LTS releases - Removes
coreimage
references iniOS/tvOS
build scripts and documentation, it is not supported underiOS/tvOS
- New versions of
chromaprint
,freetype
,kvazaar
,libjpeg-turbo
,libvorbis
,nettle
,openh264
,wavpack
,x264
andx265
- Adds support for encoding
amr-wb
viavo-amrwbenc
external librarylibopencore-amrwb
library dropped, sinceffmpeg
already includes a nativeamr-wb
decoder
- Fixes #214, #258, #331, #381, #394, #417, #418, #438, #443, #446, #447, #462, #472, #466, #480, #508 and #511
Thanks to everyone who contributed to this release, special thanks to Alex Cohn, who added support for Google
cpu_features
library and provided input in many issues
Note that this release is not fully backward compatible with previous releases.
- A new version of LogCallback and LogDelegate is introduced with
executionId
Supports the following device specifications
-
Android
- Android 7.0 (API level 24) or later
arm-v7a-neon
,arm64-v8a
,x86
andx86-64
architectures
-
iOS
- Xcode v10.1 / iOS SDK 12.1 or later
arm64
,x86-64
andx86-64-mac-catalyst
architectures
-
tvOS
- Xcode v7.3.1 / tvOS SDK 9.2 or later
arm64
andx86-64
architectures
Packages
-
min: Includes only ffmpeg
-
min-gpl: Includes ffmpeg with all GPL licensed external libraries enabled (libvid.stab, x264, x265, xvidcore) except rubberband
-
https: Includes ffmpeg with gmp and gnutls enabled
-
https-gpl: Includes ffmpeg with gmp, gnutls and all GPL licensed external libraries enabled (libvid.stab, x264, x265, xvidcore) except rubberband
-
audio: Includes ffmpeg with audio libraries enabled (lame, libilbc, libvorbis, opencore-amr, opus, shine, soxr, speex, twolame, vo-amrwbenc, wavpack)
-
video: Includes ffmpeg with video libraries without GPL license enabled (fontconfig, freetype, fribidi, kvazaar, libaom, libass, libiconv, libtheora, libvpx, libwebp, snappy)
-
full: Includes ffmpeg with all external libraries without GPL license enabled (excluding chromaprint, openh264, sdl and tesseract)
-
full-gpl: Includes ffmpeg with all external libraries, with or without GPL license, enabled (excluding chromaprint, openh264, sdl, tesseract and rubberband)
External Libraries
- cpu-features v0.4.1.1
- fontconfig v2.13.92
- freetype v2.10.2
- fribidi v1.0.9
- gmp v6.2.0
- gnutls v3.6.13
- kvazaar v2.0.0
- lame v3.100
- libaom v1.0.0-errata1-avif-110
- libass v0.14.0
- libiconv v1.16
- libilbc v2.0.2
- libtheora v1.1.1
- (**) libvid.stab v1.1.0
- libvorbis v1.3.7
- libvpx v1.8.2
- libwebp v1.1.0
- libxml2 v2.9.10
- opencore-amr v0.1.5
- opus v1.3.1
- shine v3.1.1
- snappy v1.1.8
- soxr v0.1.3
- speex v1.2.0
- twolame v0.4
- vo-amrwbenc v0.1.3
- wavpack v5.3.0
- (**) x264 v20200630-stable
- (**) x265 v3.4
- (**) xvidcore v1.3.7
(**): Libraries with GPL license