diff --git a/README.md b/README.md index 02f3d5f23..9604982af 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # MobileFFmpeg -Source code and scripts to build FFmpeg for Android and IOS platform +Source code and scripts to build FFmpeg for Android and IOS platform; prebuilt libraries for both platforms ### 1. Features - Builds both Android and IOS @@ -52,6 +52,8 @@ Cross-compile instructions for all of them can be found under scripts inside `bu - snappy - speex - wavpack +- x264 +- xvidcore External libraries and their dependencies are explained in the [External Libraries](https://github.com/tanersener/mobile-ffmpeg/wiki/External-Libraries) page. diff --git a/docs/index.md b/docs/index.md index 53a7db726..7b893b962 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,15 +1,16 @@ --- layout: default --- -MobileFFmpeg aims to provide FFmpeg on both mobile platforms with support for shared libraries without GPL restrictions. +MobileFFmpeg aims to provide FFmpeg on both mobile platforms with support for shared libraries including LGPL and GPL building options. ### 1. Features -- Builds both Android and IOS -- Supports 18 external libraries and 10 architectures in total +- Includes build scripts and prebuilt libraries for both Android and IOS +- Supports 21 external libraries, 2 GPL libraries and 10 architectures in total - Exposes FFmpeg capabilities both directly from FFmpeg libraries and through MobileFFmpeg wrapper library +- Includes cross-compile instructions for 32 open-source libraries including FFmpeg - Creates Android archive with .aar extension - Creates IOS dynamic universal (fat) library - Creates IOS dynamic framework for IOS 8 or later -- Licensed under LGPL 3.0 +- Licensed under LGPL 3.0, can be customized to support GPL v3.0 ### 2. Architectures - Android arm-v7a @@ -24,29 +25,34 @@ MobileFFmpeg aims to provide FFmpeg on both mobile platforms with support for sh - IOS x86_64 ### 3. FFmpeg Support -Latest release (v1.0) of this project contains FFmpeg version 3.4.2 with support for the following external libraries. +Latest release (v1.1) of this project contains FFmpeg version 3.4.2 with support for the following external libraries. - fontconfig - freetype - fribidi - gmp - gnutls - kvazaar -- libiconv - lame - libass +- libiconv +- libilbc - libtheora - libvorbis - libvpx - libwebp - libxml2 - opencore-amr +- opus - shine +- snappy - speex - wavpack +- x264 +- xvidcore ### 4. Using #### 4.1 Android -Import `mobile-ffmpeg-1.0.aar` into your project and use the following source code. +Import `mobile-ffmpeg-1.1.aar` into your project and use the following source code. ``` import com.arthenica.mobileffmpeg.FFmpeg; @@ -81,7 +87,7 @@ Then run the following Objective-C source code. 1. Use your package manager (apt, yum, dnf, brew, etc.) to install the following packages. ``` - autoconf automake libtool pkg-config gcc cmake gperf yasm texinfo + autoconf automake libtool pkg-config curl cmake gcc gperf texinfo yasm nasm ``` 2. Android builds require these additional packages. @@ -93,7 +99,7 @@ Then run the following Objective-C source code. - **IOS SDK 7.0.x** or later - **Xcode 8.x** or later - **Command Line Tools** - - **curl** and **lipo** utilities + - **lipo** utility #### 5.2 Build Scripts Use `android.sh` and `ios.sh` to build MobileFFmpeg for each platform. @@ -108,20 +114,18 @@ export ANDROID_NDK_ROOT= ``` ./ios.sh ``` +#### 5.3 GPL Support +From `v1.1` onwards it is possible to enable to GPL libraries `x264` and `xvidcore` from top level build scripts. +Their source code is not included in the repository and downloaded when enabled. -### 6. API - -Below you can find documentation for all APIs exposed. - -[Android API](https://tanersener.github.io/mobile-ffmpeg/android/javadoc) - -[Android Native API](https://tanersener.github.io/mobile-ffmpeg/ios/html) +### 6. Documentation -[IOS API](https://tanersener.github.io/mobile-ffmpeg/android/doc/html) +A more detailed documentation is available at [Wiki](https://github.com/tanersener/mobile-ffmpeg/wiki). ### 7. License -This project is licensed under the LGPL v3.0. +This project is licensed under the LGPL v3.0. However, if source code is built using optional `--enable-gpl` flag or +prebuilt binaries with `-gpl` postfix are used then MobileFFmpeg is subject to the GPL v3.0 license. Source code of FFmpeg and external libraries is included in compliance with their individual licenses. diff --git a/ios.sh b/ios.sh index ad32544bd..6eb7b5c31 100755 --- a/ios.sh +++ b/ios.sh @@ -606,7 +606,7 @@ if [[ ! -z ${TARGET_ARCH_LIST} ]]; then else # LGPLv3.0 - cp ${BASEDIR}/LICENSE ${FRAMEWORK_PATH} >> ${BASEDIR}/build.log + cp ${BASEDIR}/LICENSE.LGPLv3 ${FRAMEWORK_PATH}/LICENSE >> ${BASEDIR}/build.log fi build_info_plist "${FRAMEWORK_PATH}/Info.plist" "mobileffmpeg" "com.arthenica.mobileffmpeg.MobileFFmpeg" "${MOBILE_FFMPEG_VERSION}" "${MOBILE_FFMPEG_VERSION}" @@ -641,7 +641,7 @@ if [[ ! -z ${TARGET_ARCH_LIST} ]]; then else # LGPLv3.0 - cp ${BASEDIR}/LICENSE ${FFMPEG_LIB_FRAMEWORK_PATH} >> ${BASEDIR}/build.log + cp ${BASEDIR}/LICENSE.LGPLv3 ${FFMPEG_LIB_FRAMEWORK_PATH}/LICENSE >> ${BASEDIR}/build.log fi build_info_plist "${FFMPEG_LIB_FRAMEWORK_PATH}/Info.plist" "${FFMPEG_LIB}" "com.arthenica.mobileffmpeg.FFmpeg${FFMPEG_LIB}" "${FFMPEG_LIB_VERSION}" "${FFMPEG_LIB_VERSION}"