Repository files navigation

FFmpegKit GitHub releaseMaven CentralCocoaPodsBuild Status

FFmpeg Kit for applications.

1. Features

  • Scripts to build FFmpeg libraries
  • FFmpegKit wrapper library to run FFmpeg/FFprobe commands in applications
  • Supports Android, iOS, macOS and tvOS
  • Based on FFmpeg v4.4-dev with optional system and external libraries
  • 8 prebuilt binary packages available at Github, Maven Central and CocoaPods.
  • Licensed under LGPL 3.0, or GPL v3.0 if GPL licensed libraries are enabled

2. Android

See Android to learn more about FFmpegKit for Android.

3. iOS, macOS, tvOS

See Apple to use FFmpegKit on Apple platforms (iOS, macOS, tvOS).

4. Build Scripts

Use android.sh, ios.sh, macos.sh and tvos.sh to build FFmpegKit for each platform.

All scripts support additional options to enable optional libraries and disable platform architectures.

5. FFmpegKit Library

FFmpegKit is a wrapper library that allows you to easily run FFmpeg/FFprobe commands in applications. It provides additional features on top of FFmpeg to enable platform specific resources, control how commands are executed and how the results are handled.

Android library has a Java API and Apple libraries (iOS, macOS, tvOS) have an Objective-C API, which are identical in terms of features and capabilities.

6. Binary Packages

There are eight different ffmpeg-kit packages distributed on Github, Maven Central and CocoaPods. Below you can see which system libraries and external libraries are enabled in each one of them.

Please remember that some parts of FFmpeg are licensed under the GPL and only GPL licensed ffmpeg-kit packages include them.

minmin-gplhttpshttps-gplaudiovideofullfull-gpl
external libraries-vid.stab
x264
x265
xvidcore
gmp
gnutls
gmp
gnutls
vid.stab
x264
x265
xvidcore
lame
libilbc
libvorbis
opencore-amr
opus
shine
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
kvazaar
libass
libiconv
libtheora
libvpx
libwebp
snappy
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vid.stab
vo-amrwbenc
x264
x265
xvidcore
android system librarieszlib
MediaCodec
ios system librariesbzip2
AudioToolbox
AVFoundation
iconv
VideoToolbox
zlib
macos system librariesbzip2
AudioToolbox
AVFoundation
Core Image
iconv
OpenCL
OpenGL
VideoToolbox
zlib
tvos system librariesbzip2
AudioToolbox
iconv
VideoToolbox
zlib
  • AVFoundation is not available on tvOS, VideoToolbox is not available on tvOS LTS releases

7. Versions

FFmpegKit binaries generated use the same major and minor version numbers as the upstream FFmpeg project. The exact version number is obtained using git describe --tags. dev part in FFmpeg version number indicates that FFmpeg source is cloned from the FFmpegmaster branch.

FFmpegKit VersionFFmpeg VersionRelease Date
4.44.4-dev-3015Mar 03, 2021
4.4.LTS4.4-dev-3015Mar 03, 2021

8. LTS Releases

FFmpegKit binaries are published in two release variants: Main Release and LTS Release.

  • Main releases include complete functionality of the library and support the latest SDK/API features.

  • LTS releases are customized to support a wider range of devices. They are built using older API/SDK versions, so some features are not available on them.

This table shows the differences between two variants.

Main ReleaseLTS Release
Android API Level2416
Android Camera AccessYes-
Android Architecturesarm-v7a-neon
arm64-v8a
x86
x86-64
arm-v7a
arm-v7a-neon
arm64-v8a
x86
x86-64
Xcode Compatibility11.0 or later7.3.1 or later
iOS SDK12.19.3
iOS AVFoundationYes-
iOS Architecturesarm64
arm64-simulator
arm64-mac-catalyst
x86-64
x86-64-mac-catalyst
armv7
arm64
i386
x86-64
macOS SDK10.1510.11
macOS AVFoundationYes-
macOS Architecturesarm64
x86-64
x86-64
tvOS SDK10.29.2
tvOS Architecturesarm64
x86-64
arm64-simulator
arm64
x86-64

9. Test Applications

You can see how FFmpegKit is used inside an application by running test applications created under FFmpegKit Test project.

All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio, burning subtitles, video stabilisation, pipe operations, concurrent command execution.

10. License

FFmpegKit is licensed under the LGPL v3.0. However, if source code is built using the optional --enable-gpl flag or prebuilt binaries with -gpl postfix are used, then FFmpegKit is subject to the GPL v3.0 license.

11. Patents

It is not clearly explained in their documentation, but it is believed that FFmpeg, kvazaar, x264 and x265 include algorithms which are subject to software patents. If you live in a country where software algorithms are patentable then you'll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend that you seek legal advice first. See FFmpeg Patent Mini-FAQ.

openh264 clearly states that it uses patented algorithms. Therefore, if you build ffmpeg-kit with openh264 and distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to OpenH264 FAQ page for the details.

12. Contributing

Feel free to submit issues or pull requests.

Please note that main includes only the latest released source code. Changes planned for the next release are developed under the development branch. Therefore, if you want to create a pull request, please open it against the development.

13. See Also

About

FFmpeg Kit for applications. Supports Android, iOS, macOS and tvOS. Supersedes MobileFFmpeg.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

FFmpegKit GitHub releaseMaven CentralCocoaPodsBuild Status

FFmpeg Kit for applications.

1. Features

  • Scripts to build FFmpeg libraries
  • FFmpegKit wrapper library to run FFmpeg/FFprobe commands in applications
  • Supports Android, iOS, macOS and tvOS
  • Based on FFmpeg v4.4-dev with optional system and external libraries
  • 8 prebuilt binary packages available at Github, Maven Central and CocoaPods.
  • Licensed under LGPL 3.0, or GPL v3.0 if GPL licensed libraries are enabled

2. Android

See Android to learn more about FFmpegKit for Android.

3. iOS, macOS, tvOS

See Apple to use FFmpegKit on Apple platforms (iOS, macOS, tvOS).

4. Build Scripts

Use android.sh, ios.sh, macos.sh and tvos.sh to build FFmpegKit for each platform.

All scripts support additional options to enable optional libraries and disable platform architectures.

5. FFmpegKit Library

FFmpegKit is a wrapper library that allows you to easily run FFmpeg/FFprobe commands in applications. It provides additional features on top of FFmpeg to enable platform specific resources, control how commands are executed and how the results are handled.

Android library has a Java API and Apple libraries (iOS, macOS, tvOS) have an Objective-C API, which are identical in terms of features and capabilities.

6. Binary Packages

There are eight different ffmpeg-kit packages distributed on Github, Maven Central and CocoaPods. Below you can see which system libraries and external libraries are enabled in each one of them.

Please remember that some parts of FFmpeg are licensed under the GPL and only GPL licensed ffmpeg-kit packages include them.

minmin-gplhttpshttps-gplaudiovideofullfull-gpl
external libraries-vid.stab
x264
x265
xvidcore
gmp
gnutls
gmp
gnutls
vid.stab
x264
x265
xvidcore
lame
libilbc
libvorbis
opencore-amr
opus
shine
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
kvazaar
libass
libiconv
libtheora
libvpx
libwebp
snappy
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vid.stab
vo-amrwbenc
x264
x265
xvidcore
android system librarieszlib
MediaCodec
ios system librariesbzip2
AudioToolbox
AVFoundation
iconv
VideoToolbox
zlib
macos system librariesbzip2
AudioToolbox
AVFoundation
Core Image
iconv
OpenCL
OpenGL
VideoToolbox
zlib
tvos system librariesbzip2
AudioToolbox
iconv
VideoToolbox
zlib
  • AVFoundation is not available on tvOS, VideoToolbox is not available on tvOS LTS releases

7. Versions

FFmpegKit binaries generated use the same major and minor version numbers as the upstream FFmpeg project. The exact version number is obtained using git describe --tags. dev part in FFmpeg version number indicates that FFmpeg source is cloned from the FFmpegmaster branch.

FFmpegKit VersionFFmpeg VersionRelease Date
4.44.4-dev-3015Mar 03, 2021
4.4.LTS4.4-dev-3015Mar 03, 2021

8. LTS Releases

FFmpegKit binaries are published in two release variants: Main Release and LTS Release.

  • Main releases include complete functionality of the library and support the latest SDK/API features.

  • LTS releases are customized to support a wider range of devices. They are built using older API/SDK versions, so some features are not available on them.

This table shows the differences between two variants.

Main ReleaseLTS Release
Android API Level2416
Android Camera AccessYes-
Android Architecturesarm-v7a-neon
arm64-v8a
x86
x86-64
arm-v7a
arm-v7a-neon
arm64-v8a
x86
x86-64
Xcode Compatibility11.0 or later7.3.1 or later
iOS SDK12.19.3
iOS AVFoundationYes-
iOS Architecturesarm64
arm64-simulator
arm64-mac-catalyst
x86-64
x86-64-mac-catalyst
armv7
arm64
i386
x86-64
macOS SDK10.1510.11
macOS AVFoundationYes-
macOS Architecturesarm64
x86-64
x86-64
tvOS SDK10.29.2
tvOS Architecturesarm64
x86-64
arm64-simulator
arm64
x86-64

9. Test Applications

You can see how FFmpegKit is used inside an application by running test applications created under FFmpegKit Test project.

All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio, burning subtitles, video stabilisation, pipe operations, concurrent command execution.

10. License

FFmpegKit is licensed under the LGPL v3.0. However, if source code is built using the optional --enable-gpl flag or prebuilt binaries with -gpl postfix are used, then FFmpegKit is subject to the GPL v3.0 license.

11. Patents

It is not clearly explained in their documentation, but it is believed that FFmpeg, kvazaar, x264 and x265 include algorithms which are subject to software patents. If you live in a country where software algorithms are patentable then you'll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend that you seek legal advice first. See FFmpeg Patent Mini-FAQ.

openh264 clearly states that it uses patented algorithms. Therefore, if you build ffmpeg-kit with openh264 and distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to OpenH264 FAQ page for the details.

12. Contributing

Feel free to submit issues or pull requests.

Please note that main includes only the latest released source code. Changes planned for the next release are developed under the development branch. Therefore, if you want to create a pull request, please open it against the development.

13. See Also

About

FFmpeg Kit for applications. Supports Android, iOS, macOS and tvOS. Supersedes MobileFFmpeg.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FFmpegKit GitHub releaseMaven CentralCocoaPodsBuild Status

FFmpeg Kit for applications.

1. Features

  • Scripts to build FFmpeg libraries
  • FFmpegKit wrapper library to run FFmpeg/FFprobe commands in applications
  • Supports Android, iOS, macOS and tvOS
  • Based on FFmpeg v4.4-dev with optional system and external libraries
  • 8 prebuilt binary packages available at Github, Maven Central and CocoaPods.
  • Licensed under LGPL 3.0, or GPL v3.0 if GPL licensed libraries are enabled

2. Android

See Android to learn more about FFmpegKit for Android.

3. iOS, macOS, tvOS

See Apple to use FFmpegKit on Apple platforms (iOS, macOS, tvOS).

4. Build Scripts

Use android.sh, ios.sh, macos.sh and tvos.sh to build FFmpegKit for each platform.

All scripts support additional options to enable optional libraries and disable platform architectures.

5. FFmpegKit Library

FFmpegKit is a wrapper library that allows you to easily run FFmpeg/FFprobe commands in applications. It provides additional features on top of FFmpeg to enable platform specific resources, control how commands are executed and how the results are handled.

Android library has a Java API and Apple libraries (iOS, macOS, tvOS) have an Objective-C API, which are identical in terms of features and capabilities.

6. Binary Packages

There are eight different ffmpeg-kit packages distributed on Github, Maven Central and CocoaPods. Below you can see which system libraries and external libraries are enabled in each one of them.

Please remember that some parts of FFmpeg are licensed under the GPL and only GPL licensed ffmpeg-kit packages include them.

minmin-gplhttpshttps-gplaudiovideofullfull-gpl
external libraries-vid.stab
x264
x265
xvidcore
gmp
gnutls
gmp
gnutls
vid.stab
x264
x265
xvidcore
lame
libilbc
libvorbis
opencore-amr
opus
shine
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
kvazaar
libass
libiconv
libtheora
libvpx
libwebp
snappy
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vid.stab
vo-amrwbenc
x264
x265
xvidcore
android system librarieszlib
MediaCodec
ios system librariesbzip2
AudioToolbox
AVFoundation
iconv
VideoToolbox
zlib
macos system librariesbzip2
AudioToolbox
AVFoundation
Core Image
iconv
OpenCL
OpenGL
VideoToolbox
zlib
tvos system librariesbzip2
AudioToolbox
iconv
VideoToolbox
zlib
  • AVFoundation is not available on tvOS, VideoToolbox is not available on tvOS LTS releases

7. Versions

FFmpegKit binaries generated use the same major and minor version numbers as the upstream FFmpeg project. The exact version number is obtained using git describe --tags. dev part in FFmpeg version number indicates that FFmpeg source is cloned from the FFmpegmaster branch.

FFmpegKit VersionFFmpeg VersionRelease Date
4.44.4-dev-3015Mar 03, 2021
4.4.LTS4.4-dev-3015Mar 03, 2021

8. LTS Releases

FFmpegKit binaries are published in two release variants: Main Release and LTS Release.

  • Main releases include complete functionality of the library and support the latest SDK/API features.

  • LTS releases are customized to support a wider range of devices. They are built using older API/SDK versions, so some features are not available on them.

This table shows the differences between two variants.

Main ReleaseLTS Release
Android API Level2416
Android Camera AccessYes-
Android Architecturesarm-v7a-neon
arm64-v8a
x86
x86-64
arm-v7a
arm-v7a-neon
arm64-v8a
x86
x86-64
Xcode Compatibility11.0 or later7.3.1 or later
iOS SDK12.19.3
iOS AVFoundationYes-
iOS Architecturesarm64
arm64-simulator
arm64-mac-catalyst
x86-64
x86-64-mac-catalyst
armv7
arm64
i386
x86-64
macOS SDK10.1510.11
macOS AVFoundationYes-
macOS Architecturesarm64
x86-64
x86-64
tvOS SDK10.29.2
tvOS Architecturesarm64
x86-64
arm64-simulator
arm64
x86-64

9. Test Applications

You can see how FFmpegKit is used inside an application by running test applications created under FFmpegKit Test project.

All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio, burning subtitles, video stabilisation, pipe operations, concurrent command execution.

10. License

FFmpegKit is licensed under the LGPL v3.0. However, if source code is built using the optional --enable-gpl flag or prebuilt binaries with -gpl postfix are used, then FFmpegKit is subject to the GPL v3.0 license.

11. Patents

It is not clearly explained in their documentation, but it is believed that FFmpeg, kvazaar, x264 and x265 include algorithms which are subject to software patents. If you live in a country where software algorithms are patentable then you'll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend that you seek legal advice first. See FFmpeg Patent Mini-FAQ.

openh264 clearly states that it uses patented algorithms. Therefore, if you build ffmpeg-kit with openh264 and distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to OpenH264 FAQ page for the details.

12. Contributing

Feel free to submit issues or pull requests.

Please note that main includes only the latest released source code. Changes planned for the next release are developed under the development branch. Therefore, if you want to create a pull request, please open it against the development.

13. See Also

About

FFmpeg Kit for applications. Supports Android, iOS, macOS and tvOS. Supersedes MobileFFmpeg.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FFmpegKit GitHub releaseMaven CentralCocoaPodsBuild Status

FFmpeg Kit for applications.

1. Features

  • Scripts to build FFmpeg libraries
  • FFmpegKit wrapper library to run FFmpeg/FFprobe commands in applications
  • Supports Android, iOS, macOS and tvOS
  • Based on FFmpeg v4.4-dev with optional system and external libraries
  • 8 prebuilt binary packages available at Github, Maven Central and CocoaPods.
  • Licensed under LGPL 3.0, or GPL v3.0 if GPL licensed libraries are enabled

2. Android

See Android to learn more about FFmpegKit for Android.

3. iOS, macOS, tvOS

See Apple to use FFmpegKit on Apple platforms (iOS, macOS, tvOS).

4. Build Scripts

Use android.sh, ios.sh, macos.sh and tvos.sh to build FFmpegKit for each platform.

All scripts support additional options to enable optional libraries and disable platform architectures.

5. FFmpegKit Library

FFmpegKit is a wrapper library that allows you to easily run FFmpeg/FFprobe commands in applications. It provides additional features on top of FFmpeg to enable platform specific resources, control how commands are executed and how the results are handled.

Android library has a Java API and Apple libraries (iOS, macOS, tvOS) have an Objective-C API, which are identical in terms of features and capabilities.

6. Binary Packages

There are eight different ffmpeg-kit packages distributed on Github, Maven Central and CocoaPods. Below you can see which system libraries and external libraries are enabled in each one of them.

Please remember that some parts of FFmpeg are licensed under the GPL and only GPL licensed ffmpeg-kit packages include them.

minmin-gplhttpshttps-gplaudiovideofullfull-gpl
external libraries-vid.stab
x264
x265
xvidcore
gmp
gnutls
gmp
gnutls
vid.stab
x264
x265
xvidcore
lame
libilbc
libvorbis
opencore-amr
opus
shine
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
kvazaar
libass
libiconv
libtheora
libvpx
libwebp
snappy
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vid.stab
vo-amrwbenc
x264
x265
xvidcore
android system librarieszlib
MediaCodec
ios system librariesbzip2
AudioToolbox
AVFoundation
iconv
VideoToolbox
zlib
macos system librariesbzip2
AudioToolbox
AVFoundation
Core Image
iconv
OpenCL
OpenGL
VideoToolbox
zlib
tvos system librariesbzip2
AudioToolbox
iconv
VideoToolbox
zlib
  • AVFoundation is not available on tvOS, VideoToolbox is not available on tvOS LTS releases

7. Versions

FFmpegKit binaries generated use the same major and minor version numbers as the upstream FFmpeg project. The exact version number is obtained using git describe --tags. dev part in FFmpeg version number indicates that FFmpeg source is cloned from the FFmpegmaster branch.

FFmpegKit VersionFFmpeg VersionRelease Date
4.44.4-dev-3015Mar 03, 2021
4.4.LTS4.4-dev-3015Mar 03, 2021

8. LTS Releases

FFmpegKit binaries are published in two release variants: Main Release and LTS Release.

  • Main releases include complete functionality of the library and support the latest SDK/API features.

  • LTS releases are customized to support a wider range of devices. They are built using older API/SDK versions, so some features are not available on them.

This table shows the differences between two variants.

Main ReleaseLTS Release
Android API Level2416
Android Camera AccessYes-
Android Architecturesarm-v7a-neon
arm64-v8a
x86
x86-64
arm-v7a
arm-v7a-neon
arm64-v8a
x86
x86-64
Xcode Compatibility11.0 or later7.3.1 or later
iOS SDK12.19.3
iOS AVFoundationYes-
iOS Architecturesarm64
arm64-simulator
arm64-mac-catalyst
x86-64
x86-64-mac-catalyst
armv7
arm64
i386
x86-64
macOS SDK10.1510.11
macOS AVFoundationYes-
macOS Architecturesarm64
x86-64
x86-64
tvOS SDK10.29.2
tvOS Architecturesarm64
x86-64
arm64-simulator
arm64
x86-64

9. Test Applications

You can see how FFmpegKit is used inside an application by running test applications created under FFmpegKit Test project.

All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio, burning subtitles, video stabilisation, pipe operations, concurrent command execution.

10. License

FFmpegKit is licensed under the LGPL v3.0. However, if source code is built using the optional --enable-gpl flag or prebuilt binaries with -gpl postfix are used, then FFmpegKit is subject to the GPL v3.0 license.

11. Patents

It is not clearly explained in their documentation, but it is believed that FFmpeg, kvazaar, x264 and x265 include algorithms which are subject to software patents. If you live in a country where software algorithms are patentable then you'll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend that you seek legal advice first. See FFmpeg Patent Mini-FAQ.

openh264 clearly states that it uses patented algorithms. Therefore, if you build ffmpeg-kit with openh264 and distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to OpenH264 FAQ page for the details.

12. Contributing

Feel free to submit issues or pull requests.

Please note that main includes only the latest released source code. Changes planned for the next release are developed under the development branch. Therefore, if you want to create a pull request, please open it against the development.

13. See Also

About

FFmpeg Kit for applications. Supports Android, iOS, macOS and tvOS. Supersedes MobileFFmpeg.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

FFmpegKit GitHub releaseMaven CentralCocoaPodsBuild Status

FFmpeg Kit for applications.

1. Features

  • Scripts to build FFmpeg libraries
  • FFmpegKit wrapper library to run FFmpeg/FFprobe commands in applications
  • Supports Android, iOS, macOS and tvOS
  • Based on FFmpeg v4.4-dev with optional system and external libraries
  • 8 prebuilt binary packages available at Github, Maven Central and CocoaPods.
  • Licensed under LGPL 3.0, or GPL v3.0 if GPL licensed libraries are enabled

2. Android

See Android to learn more about FFmpegKit for Android.

3. iOS, macOS, tvOS

See Apple to use FFmpegKit on Apple platforms (iOS, macOS, tvOS).

4. Build Scripts

Use android.sh, ios.sh, macos.sh and tvos.sh to build FFmpegKit for each platform.

All scripts support additional options to enable optional libraries and disable platform architectures.

5. FFmpegKit Library

FFmpegKit is a wrapper library that allows you to easily run FFmpeg/FFprobe commands in applications. It provides additional features on top of FFmpeg to enable platform specific resources, control how commands are executed and how the results are handled.

Android library has a Java API and Apple libraries (iOS, macOS, tvOS) have an Objective-C API, which are identical in terms of features and capabilities.

6. Binary Packages

There are eight different ffmpeg-kit packages distributed on Github, Maven Central and CocoaPods. Below you can see which system libraries and external libraries are enabled in each one of them.

Please remember that some parts of FFmpeg are licensed under the GPL and only GPL licensed ffmpeg-kit packages include them.

minmin-gplhttpshttps-gplaudiovideofullfull-gpl
external libraries-vid.stab
x264
x265
xvidcore
gmp
gnutls
gmp
gnutls
vid.stab
x264
x265
xvidcore
lame
libilbc
libvorbis
opencore-amr
opus
shine
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
kvazaar
libass
libiconv
libtheora
libvpx
libwebp
snappy
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vid.stab
vo-amrwbenc
x264
x265
xvidcore
android system librarieszlib
MediaCodec
ios system librariesbzip2
AudioToolbox
AVFoundation
iconv
VideoToolbox
zlib
macos system librariesbzip2
AudioToolbox
AVFoundation
Core Image
iconv
OpenCL
OpenGL
VideoToolbox
zlib
tvos system librariesbzip2
AudioToolbox
iconv
VideoToolbox
zlib
  • AVFoundation is not available on tvOS, VideoToolbox is not available on tvOS LTS releases

7. Versions

FFmpegKit binaries generated use the same major and minor version numbers as the upstream FFmpeg project. The exact version number is obtained using git describe --tags. dev part in FFmpeg version number indicates that FFmpeg source is cloned from the FFmpegmaster branch.

FFmpegKit VersionFFmpeg VersionRelease Date
4.44.4-dev-3015Mar 03, 2021
4.4.LTS4.4-dev-3015Mar 03, 2021

8. LTS Releases

FFmpegKit binaries are published in two release variants: Main Release and LTS Release.

  • Main releases include complete functionality of the library and support the latest SDK/API features.

  • LTS releases are customized to support a wider range of devices. They are built using older API/SDK versions, so some features are not available on them.

This table shows the differences between two variants.

Main ReleaseLTS Release
Android API Level2416
Android Camera AccessYes-
Android Architecturesarm-v7a-neon
arm64-v8a
x86
x86-64
arm-v7a
arm-v7a-neon
arm64-v8a
x86
x86-64
Xcode Compatibility11.0 or later7.3.1 or later
iOS SDK12.19.3
iOS AVFoundationYes-
iOS Architecturesarm64
arm64-simulator
arm64-mac-catalyst
x86-64
x86-64-mac-catalyst
armv7
arm64
i386
x86-64
macOS SDK10.1510.11
macOS AVFoundationYes-
macOS Architecturesarm64
x86-64
x86-64
tvOS SDK10.29.2
tvOS Architecturesarm64
x86-64
arm64-simulator
arm64
x86-64

9. Test Applications

You can see how FFmpegKit is used inside an application by running test applications created under FFmpegKit Test project.

All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio, burning subtitles, video stabilisation, pipe operations, concurrent command execution.

10. License

FFmpegKit is licensed under the LGPL v3.0. However, if source code is built using the optional --enable-gpl flag or prebuilt binaries with -gpl postfix are used, then FFmpegKit is subject to the GPL v3.0 license.

11. Patents

It is not clearly explained in their documentation, but it is believed that FFmpeg, kvazaar, x264 and x265 include algorithms which are subject to software patents. If you live in a country where software algorithms are patentable then you'll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend that you seek legal advice first. See FFmpeg Patent Mini-FAQ.

openh264 clearly states that it uses patented algorithms. Therefore, if you build ffmpeg-kit with openh264 and distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to OpenH264 FAQ page for the details.

12. Contributing

Feel free to submit issues or pull requests.

Please note that main includes only the latest released source code. Changes planned for the next release are developed under the development branch. Therefore, if you want to create a pull request, please open it against the development.

13. See Also

About

FFmpeg Kit for applications. Supports Android, iOS, macOS and tvOS. Supersedes MobileFFmpeg.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FFmpegKit GitHub releaseMaven CentralCocoaPodsBuild Status

FFmpeg Kit for applications.

1. Features

  • Scripts to build FFmpeg libraries
  • FFmpegKit wrapper library to run FFmpeg/FFprobe commands in applications
  • Supports Android, iOS, macOS and tvOS
  • Based on FFmpeg v4.4-dev with optional system and external libraries
  • 8 prebuilt binary packages available at Github, Maven Central and CocoaPods.
  • Licensed under LGPL 3.0, or GPL v3.0 if GPL licensed libraries are enabled

2. Android

See Android to learn more about FFmpegKit for Android.

3. iOS, macOS, tvOS

See Apple to use FFmpegKit on Apple platforms (iOS, macOS, tvOS).

4. Build Scripts

Use android.sh, ios.sh, macos.sh and tvos.sh to build FFmpegKit for each platform.

All scripts support additional options to enable optional libraries and disable platform architectures.

5. FFmpegKit Library

FFmpegKit is a wrapper library that allows you to easily run FFmpeg/FFprobe commands in applications. It provides additional features on top of FFmpeg to enable platform specific resources, control how commands are executed and how the results are handled.

Android library has a Java API and Apple libraries (iOS, macOS, tvOS) have an Objective-C API, which are identical in terms of features and capabilities.

6. Binary Packages

There are eight different ffmpeg-kit packages distributed on Github, Maven Central and CocoaPods. Below you can see which system libraries and external libraries are enabled in each one of them.

Please remember that some parts of FFmpeg are licensed under the GPL and only GPL licensed ffmpeg-kit packages include them.

minmin-gplhttpshttps-gplaudiovideofullfull-gpl
external libraries-vid.stab
x264
x265
xvidcore
gmp
gnutls
gmp
gnutls
vid.stab
x264
x265
xvidcore
lame
libilbc
libvorbis
opencore-amr
opus
shine
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
kvazaar
libass
libiconv
libtheora
libvpx
libwebp
snappy
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vid.stab
vo-amrwbenc
x264
x265
xvidcore
android system librarieszlib
MediaCodec
ios system librariesbzip2
AudioToolbox
AVFoundation
iconv
VideoToolbox
zlib
macos system librariesbzip2
AudioToolbox
AVFoundation
Core Image
iconv
OpenCL
OpenGL
VideoToolbox
zlib
tvos system librariesbzip2
AudioToolbox
iconv
VideoToolbox
zlib
  • AVFoundation is not available on tvOS, VideoToolbox is not available on tvOS LTS releases

7. Versions

FFmpegKit binaries generated use the same major and minor version numbers as the upstream FFmpeg project. The exact version number is obtained using git describe --tags. dev part in FFmpeg version number indicates that FFmpeg source is cloned from the FFmpegmaster branch.

FFmpegKit VersionFFmpeg VersionRelease Date
4.44.4-dev-3015Mar 03, 2021
4.4.LTS4.4-dev-3015Mar 03, 2021

8. LTS Releases

FFmpegKit binaries are published in two release variants: Main Release and LTS Release.

  • Main releases include complete functionality of the library and support the latest SDK/API features.

  • LTS releases are customized to support a wider range of devices. They are built using older API/SDK versions, so some features are not available on them.

This table shows the differences between two variants.

Main ReleaseLTS Release
Android API Level2416
Android Camera AccessYes-
Android Architecturesarm-v7a-neon
arm64-v8a
x86
x86-64
arm-v7a
arm-v7a-neon
arm64-v8a
x86
x86-64
Xcode Compatibility11.0 or later7.3.1 or later
iOS SDK12.19.3
iOS AVFoundationYes-
iOS Architecturesarm64
arm64-simulator
arm64-mac-catalyst
x86-64
x86-64-mac-catalyst
armv7
arm64
i386
x86-64
macOS SDK10.1510.11
macOS AVFoundationYes-
macOS Architecturesarm64
x86-64
x86-64
tvOS SDK10.29.2
tvOS Architecturesarm64
x86-64
arm64-simulator
arm64
x86-64

9. Test Applications

You can see how FFmpegKit is used inside an application by running test applications created under FFmpegKit Test project.

All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio, burning subtitles, video stabilisation, pipe operations, concurrent command execution.

10. License

FFmpegKit is licensed under the LGPL v3.0. However, if source code is built using the optional --enable-gpl flag or prebuilt binaries with -gpl postfix are used, then FFmpegKit is subject to the GPL v3.0 license.

11. Patents

It is not clearly explained in their documentation, but it is believed that FFmpeg, kvazaar, x264 and x265 include algorithms which are subject to software patents. If you live in a country where software algorithms are patentable then you'll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend that you seek legal advice first. See FFmpeg Patent Mini-FAQ.

openh264 clearly states that it uses patented algorithms. Therefore, if you build ffmpeg-kit with openh264 and distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to OpenH264 FAQ page for the details.

12. Contributing

Feel free to submit issues or pull requests.

Please note that main includes only the latest released source code. Changes planned for the next release are developed under the development branch. Therefore, if you want to create a pull request, please open it against the development.

13. See Also

About

FFmpeg Kit for applications. Supports Android, iOS, macOS and tvOS. Supersedes MobileFFmpeg.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FFmpegKit GitHub releaseMaven CentralCocoaPodsBuild Status

FFmpeg Kit for applications.

1. Features

  • Scripts to build FFmpeg libraries
  • FFmpegKit wrapper library to run FFmpeg/FFprobe commands in applications
  • Supports Android, iOS, macOS and tvOS
  • Based on FFmpeg v4.4-dev with optional system and external libraries
  • 8 prebuilt binary packages available at Github, Maven Central and CocoaPods.
  • Licensed under LGPL 3.0, or GPL v3.0 if GPL licensed libraries are enabled

2. Android

See Android to learn more about FFmpegKit for Android.

3. iOS, macOS, tvOS

See Apple to use FFmpegKit on Apple platforms (iOS, macOS, tvOS).

4. Build Scripts

Use android.sh, ios.sh, macos.sh and tvos.sh to build FFmpegKit for each platform.

All scripts support additional options to enable optional libraries and disable platform architectures.

5. FFmpegKit Library

FFmpegKit is a wrapper library that allows you to easily run FFmpeg/FFprobe commands in applications. It provides additional features on top of FFmpeg to enable platform specific resources, control how commands are executed and how the results are handled.

Android library has a Java API and Apple libraries (iOS, macOS, tvOS) have an Objective-C API, which are identical in terms of features and capabilities.

6. Binary Packages

There are eight different ffmpeg-kit packages distributed on Github, Maven Central and CocoaPods. Below you can see which system libraries and external libraries are enabled in each one of them.

Please remember that some parts of FFmpeg are licensed under the GPL and only GPL licensed ffmpeg-kit packages include them.

minmin-gplhttpshttps-gplaudiovideofullfull-gpl
external libraries-vid.stab
x264
x265
xvidcore
gmp
gnutls
gmp
gnutls
vid.stab
x264
x265
xvidcore
lame
libilbc
libvorbis
opencore-amr
opus
shine
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
kvazaar
libass
libiconv
libtheora
libvpx
libwebp
snappy
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vid.stab
vo-amrwbenc
x264
x265
xvidcore
android system librarieszlib
MediaCodec
ios system librariesbzip2
AudioToolbox
AVFoundation
iconv
VideoToolbox
zlib
macos system librariesbzip2
AudioToolbox
AVFoundation
Core Image
iconv
OpenCL
OpenGL
VideoToolbox
zlib
tvos system librariesbzip2
AudioToolbox
iconv
VideoToolbox
zlib
  • AVFoundation is not available on tvOS, VideoToolbox is not available on tvOS LTS releases

7. Versions

FFmpegKit binaries generated use the same major and minor version numbers as the upstream FFmpeg project. The exact version number is obtained using git describe --tags. dev part in FFmpeg version number indicates that FFmpeg source is cloned from the FFmpegmaster branch.

FFmpegKit VersionFFmpeg VersionRelease Date
4.44.4-dev-3015Mar 03, 2021
4.4.LTS4.4-dev-3015Mar 03, 2021

8. LTS Releases

FFmpegKit binaries are published in two release variants: Main Release and LTS Release.

  • Main releases include complete functionality of the library and support the latest SDK/API features.

  • LTS releases are customized to support a wider range of devices. They are built using older API/SDK versions, so some features are not available on them.

This table shows the differences between two variants.

Main ReleaseLTS Release
Android API Level2416
Android Camera AccessYes-
Android Architecturesarm-v7a-neon
arm64-v8a
x86
x86-64
arm-v7a
arm-v7a-neon
arm64-v8a
x86
x86-64
Xcode Compatibility11.0 or later7.3.1 or later
iOS SDK12.19.3
iOS AVFoundationYes-
iOS Architecturesarm64
arm64-simulator
arm64-mac-catalyst
x86-64
x86-64-mac-catalyst
armv7
arm64
i386
x86-64
macOS SDK10.1510.11
macOS AVFoundationYes-
macOS Architecturesarm64
x86-64
x86-64
tvOS SDK10.29.2
tvOS Architecturesarm64
x86-64
arm64-simulator
arm64
x86-64

9. Test Applications

You can see how FFmpegKit is used inside an application by running test applications created under FFmpegKit Test project.

All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio, burning subtitles, video stabilisation, pipe operations, concurrent command execution.

10. License

FFmpegKit is licensed under the LGPL v3.0. However, if source code is built using the optional --enable-gpl flag or prebuilt binaries with -gpl postfix are used, then FFmpegKit is subject to the GPL v3.0 license.

11. Patents

It is not clearly explained in their documentation, but it is believed that FFmpeg, kvazaar, x264 and x265 include algorithms which are subject to software patents. If you live in a country where software algorithms are patentable then you'll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend that you seek legal advice first. See FFmpeg Patent Mini-FAQ.

openh264 clearly states that it uses patented algorithms. Therefore, if you build ffmpeg-kit with openh264 and distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to OpenH264 FAQ page for the details.

12. Contributing

Feel free to submit issues or pull requests.

Please note that main includes only the latest released source code. Changes planned for the next release are developed under the development branch. Therefore, if you want to create a pull request, please open it against the development.

13. See Also

About

FFmpeg Kit for applications. Supports Android, iOS, macOS and tvOS. Supersedes MobileFFmpeg.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

FFmpegKit GitHub releaseMaven CentralCocoaPodsBuild Status

FFmpeg Kit for applications.

1. Features

  • Scripts to build FFmpeg libraries
  • FFmpegKit wrapper library to run FFmpeg/FFprobe commands in applications
  • Supports Android, iOS, macOS and tvOS
  • Based on FFmpeg v4.4-dev with optional system and external libraries
  • 8 prebuilt binary packages available at Github, Maven Central and CocoaPods.
  • Licensed under LGPL 3.0, or GPL v3.0 if GPL licensed libraries are enabled

2. Android

See Android to learn more about FFmpegKit for Android.

3. iOS, macOS, tvOS

See Apple to use FFmpegKit on Apple platforms (iOS, macOS, tvOS).

4. Build Scripts

Use android.sh, ios.sh, macos.sh and tvos.sh to build FFmpegKit for each platform.

All scripts support additional options to enable optional libraries and disable platform architectures.

5. FFmpegKit Library

FFmpegKit is a wrapper library that allows you to easily run FFmpeg/FFprobe commands in applications. It provides additional features on top of FFmpeg to enable platform specific resources, control how commands are executed and how the results are handled.

Android library has a Java API and Apple libraries (iOS, macOS, tvOS) have an Objective-C API, which are identical in terms of features and capabilities.

6. Binary Packages

There are eight different ffmpeg-kit packages distributed on Github, Maven Central and CocoaPods. Below you can see which system libraries and external libraries are enabled in each one of them.

Please remember that some parts of FFmpeg are licensed under the GPL and only GPL licensed ffmpeg-kit packages include them.

minmin-gplhttpshttps-gplaudiovideofullfull-gpl
external libraries-vid.stab
x264
x265
xvidcore
gmp
gnutls
gmp
gnutls
vid.stab
x264
x265
xvidcore
lame
libilbc
libvorbis
opencore-amr
opus
shine
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
kvazaar
libass
libiconv
libtheora
libvpx
libwebp
snappy
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vo-amrwbenc
dav1d
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vid.stab
vo-amrwbenc
x264
x265
xvidcore
android system librarieszlib
MediaCodec
ios system librariesbzip2
AudioToolbox
AVFoundation
iconv
VideoToolbox
zlib
macos system librariesbzip2
AudioToolbox
AVFoundation
Core Image
iconv
OpenCL
OpenGL
VideoToolbox
zlib
tvos system librariesbzip2
AudioToolbox
iconv
VideoToolbox
zlib
  • AVFoundation is not available on tvOS, VideoToolbox is not available on tvOS LTS releases

7. Versions

FFmpegKit binaries generated use the same major and minor version numbers as the upstream FFmpeg project. The exact version number is obtained using git describe --tags. dev part in FFmpeg version number indicates that FFmpeg source is cloned from the FFmpegmaster branch.

FFmpegKit VersionFFmpeg VersionRelease Date
4.44.4-dev-3015Mar 03, 2021
4.4.LTS4.4-dev-3015Mar 03, 2021

8. LTS Releases

FFmpegKit binaries are published in two release variants: Main Release and LTS Release.

  • Main releases include complete functionality of the library and support the latest SDK/API features.

  • LTS releases are customized to support a wider range of devices. They are built using older API/SDK versions, so some features are not available on them.

This table shows the differences between two variants.

Main ReleaseLTS Release
Android API Level2416
Android Camera AccessYes-
Android Architecturesarm-v7a-neon
arm64-v8a
x86
x86-64
arm-v7a
arm-v7a-neon
arm64-v8a
x86
x86-64
Xcode Compatibility11.0 or later7.3.1 or later
iOS SDK12.19.3
iOS AVFoundationYes-
iOS Architecturesarm64
arm64-simulator
arm64-mac-catalyst
x86-64
x86-64-mac-catalyst
armv7
arm64
i386
x86-64
macOS SDK10.1510.11
macOS AVFoundationYes-
macOS Architecturesarm64
x86-64
x86-64
tvOS SDK10.29.2
tvOS Architecturesarm64
x86-64
arm64-simulator
arm64
x86-64

9. Test Applications

You can see how FFmpegKit is used inside an application by running test applications created under FFmpegKit Test project.

All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio, burning subtitles, video stabilisation, pipe operations, concurrent command execution.

10. License

FFmpegKit is licensed under the LGPL v3.0. However, if source code is built using the optional --enable-gpl flag or prebuilt binaries with -gpl postfix are used, then FFmpegKit is subject to the GPL v3.0 license.

11. Patents

It is not clearly explained in their documentation, but it is believed that FFmpeg, kvazaar, x264 and x265 include algorithms which are subject to software patents. If you live in a country where software algorithms are patentable then you'll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend that you seek legal advice first. See FFmpeg Patent Mini-FAQ.

openh264 clearly states that it uses patented algorithms. Therefore, if you build ffmpeg-kit with openh264 and distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to OpenH264 FAQ page for the details.

12. Contributing

Feel free to submit issues or pull requests.

Please note that main includes only the latest released source code. Changes planned for the next release are developed under the development branch. Therefore, if you want to create a pull request, please open it against the development.

13. See Also

About

FFmpeg Kit for applications. Supports Android, iOS, macOS and tvOS. Supersedes MobileFFmpeg.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages