From fc2d30f1b4bdbc0b2a6441d39d432d718e18518f Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Thu, 5 Mar 2026 10:59:19 +0530 Subject: [PATCH 01/12] Change FFMPEG build configuration from shared to static --- android.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android.sh b/android.sh index 39018fe..3f7e495 100644 --- a/android.sh +++ b/android.sh @@ -21,7 +21,7 @@ ENABLED_CONFIG="\ --enable-decoder=h264,hevc,vp8,vp9,libdav1d,flv,vp6f,adpcm_swf,mpeg4,wmv3,mpeg1video,mpeg2video,mpeg2audio,msmpeg4v2,msmpeg4v3,theora,amrnb,amrwb,dvvideo,h263,mjpeg,png,jpeg,bmp,webp,mp3,aac,ac3,eac3,flac,opus,vorbis,pcm_s16le,pcm_s24le,alac,wma,ass,ssa,mov_text,subrip,webvtt,dvbsub,dvdsub,pgssub \ --enable-parser=* \ --enable-bsf=* \ - --enable-shared " + --enable-static " ### Disable FFMPEG BUILD MODULES #### @@ -35,7 +35,7 @@ DISABLED_CONFIG="\ --disable-libxml2 \ --disable-avdevice \ --disable-network \ - --disable-static \ + --disable-shared \ --disable-debug \ --disable-ffplay \ --disable-ffprobe \ From c34dbc6870d8ba34f1fcd47fbc41782aba246198 Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Thu, 5 Mar 2026 11:36:50 +0530 Subject: [PATCH 02/12] Update android.sh --- android.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/android.sh b/android.sh index 3f7e495..589b812 100644 --- a/android.sh +++ b/android.sh @@ -105,8 +105,8 @@ pkg-config = 'pkg-config' needs_exe_wrapper = true [built-in options] -c_args = ['-fpic'] -cpp_args = ['-fpic'] +c_args = ['-fPIC'] +cpp_args = ['-fPIC'] c_link_args = ['-Wl,-z,max-page-size=16384'] [host_machine] @@ -157,8 +157,8 @@ configure_ffmpeg(){ --cxx="$CLANGXX" \ --sysroot="$SYSROOT" \ --prefix="$PREFIX" \ - --extra-cflags="-fpic -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D__BIONIC_NO_PAGE_SIZE_MACRO -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security $EXTRA_CFLAGS -I$PREFIX/include " \ - --extra-cxxflags="-fpic -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D__BIONIC_NO_PAGE_SIZE_MACRO -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti $EXTRA_CXXFLAGS -I$PREFIX/include " \ + --extra-cflags="-fPIC -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D__BIONIC_NO_PAGE_SIZE_MACRO -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security $EXTRA_CFLAGS -I$PREFIX/include " \ + --extra-cxxflags="-fPIC -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D__BIONIC_NO_PAGE_SIZE_MACRO -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti $EXTRA_CXXFLAGS -I$PREFIX/include " \ --extra-ldflags=" -Wl,-z,max-page-size=16384 -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -L$SYSROOT/usr/lib/$TARGET_ARCH-linux-android/$ANDROID_API_LEVEL -L$PREFIX/lib" \ --enable-pic \ ${ENABLED_CONFIG} \ From 6347dec325e95bcc7b197b9b520fc420703b17a4 Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Thu, 5 Mar 2026 12:44:22 +0530 Subject: [PATCH 03/12] Disable assembly optimizations in android.sh --- android.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/android.sh b/android.sh index 589b812..14ff35f 100644 --- a/android.sh +++ b/android.sh @@ -190,7 +190,7 @@ for ARCH in "${ARCH_LIST[@]}"; do EXTRA_CXXFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" EXTRA_CONFIG="\ - --enable-asm \ + --disable-asm \ --enable-neon " ;; "armv7-a"|"armeabi-v7a"|"armv7a") @@ -207,7 +207,7 @@ for ARCH in "${ARCH_LIST[@]}"; do --disable-armv5te \ --disable-armv6 \ --disable-armv6t2 \ - --enable-asm \ + --disable-asm \ --enable-neon " ;; "x86-64"|"x86_64") @@ -221,7 +221,7 @@ for ARCH in "${ARCH_LIST[@]}"; do EXTRA_CXXFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" EXTRA_CONFIG="\ - --enable-asm " + --disable-asm " ;; "x86"|"i686") echo -e "\e[1;32m$ARCH Libraries\e[0m" From f8c8c70c8d744f805ce1c7d40606429a27c5eac3 Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Mon, 9 Mar 2026 12:09:25 +0530 Subject: [PATCH 04/12] Increase optimization level to O3 for build flags --- android.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/android.sh b/android.sh index 14ff35f..feb0fde 100644 --- a/android.sh +++ b/android.sh @@ -186,8 +186,8 @@ for ARCH in "${ARCH_LIST[@]}"; do TARGET_ABI="aarch64" PREFIX="${FFMPEG_BUILD_DIR}/$ANDROID_API_LEVEL/arm64-v8a" CROSS_PREFIX="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/$TARGET_ABI-linux-android${ANDROID_API_LEVEL}-" - EXTRA_CFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" - EXTRA_CXXFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CXXFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" EXTRA_CONFIG="\ --disable-asm \ @@ -200,8 +200,8 @@ for ARCH in "${ARCH_LIST[@]}"; do TARGET_ABI="armv7a" PREFIX="${FFMPEG_BUILD_DIR}/$ANDROID_API_LEVEL/armeabi-v7a" CROSS_PREFIX="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/$TARGET_ABI-linux-androideabi${ANDROID_API_LEVEL}-" - EXTRA_CFLAGS="-O2 -march=$TARGET_CPU -mfpu=neon -fomit-frame-pointer" - EXTRA_CXXFLAGS="-O2 -march=$TARGET_CPU -mfpu=neon -fomit-frame-pointer" + EXTRA_CFLAGS="-O3 -march=$TARGET_CPU -mfpu=neon -fomit-frame-pointer" + EXTRA_CXXFLAGS="-O3 -march=$TARGET_CPU -mfpu=neon -fomit-frame-pointer" EXTRA_CONFIG="\ --disable-armv5te \ @@ -217,8 +217,8 @@ for ARCH in "${ARCH_LIST[@]}"; do TARGET_ABI="x86_64" PREFIX="${FFMPEG_BUILD_DIR}/$ANDROID_API_LEVEL/x86_64" CROSS_PREFIX="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/$TARGET_ABI-linux-android${ANDROID_API_LEVEL}-" - EXTRA_CFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" - EXTRA_CXXFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CXXFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" EXTRA_CONFIG="\ --disable-asm " @@ -230,8 +230,8 @@ for ARCH in "${ARCH_LIST[@]}"; do TARGET_ABI="i686" PREFIX="${FFMPEG_BUILD_DIR}/$ANDROID_API_LEVEL/x86" CROSS_PREFIX="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/$TARGET_ABI-linux-android${ANDROID_API_LEVEL}-" - EXTRA_CFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" - EXTRA_CXXFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CXXFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" EXTRA_CONFIG="\ --disable-asm " ;; From 5dbc6d80a32b63444f697f7ee52742e369830de1 Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Mon, 9 Mar 2026 17:21:11 +0530 Subject: [PATCH 05/12] Add utvideo encoder to android.sh --- android.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android.sh b/android.sh index feb0fde..cf1f474 100644 --- a/android.sh +++ b/android.sh @@ -17,8 +17,8 @@ ENABLED_CONFIG="\ --enable-libdav1d \ --enable-muxer=wav,mp4,matroska,webm,mp3,adts,flac,ogg,opus,mpegts,hls,dash,segment \ --enable-demuxer=* \ - --enable-encoder=mjpeg \ - --enable-decoder=h264,hevc,vp8,vp9,libdav1d,flv,vp6f,adpcm_swf,mpeg4,wmv3,mpeg1video,mpeg2video,mpeg2audio,msmpeg4v2,msmpeg4v3,theora,amrnb,amrwb,dvvideo,h263,mjpeg,png,jpeg,bmp,webp,mp3,aac,ac3,eac3,flac,opus,vorbis,pcm_s16le,pcm_s24le,alac,wma,ass,ssa,mov_text,subrip,webvtt,dvbsub,dvdsub,pgssub \ + --enable-encoder=mjpeg,utvideo \ + --enable-decoder=h264,hevc,vp8,vp9,libdav1d,flv,vp6f,adpcm_swf,mpeg4,wmv3,mpeg1video,mpeg2video,mpeg2audio,msmpeg4v2,msmpeg4v3,theora,amrnb,amrwb,dvvideo,h263,mjpeg,png,jpeg,bmp,webp,mp3,aac,ac3,eac3,flac,opus,vorbis,pcm_s16le,pcm_s24le,alac,wma,ass,ssa,mov_text,subrip,webvtt,dvbsub,dvdsub,pgssub,utvideo \ --enable-parser=* \ --enable-bsf=* \ --enable-static " From b25d7357f33447330826acb6c636e8808316dc94 Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Thu, 16 Apr 2026 09:10:23 +0530 Subject: [PATCH 06/12] Add truehd decoder to android.sh --- android.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android.sh b/android.sh index cf1f474..0d2415c 100644 --- a/android.sh +++ b/android.sh @@ -18,7 +18,7 @@ ENABLED_CONFIG="\ --enable-muxer=wav,mp4,matroska,webm,mp3,adts,flac,ogg,opus,mpegts,hls,dash,segment \ --enable-demuxer=* \ --enable-encoder=mjpeg,utvideo \ - --enable-decoder=h264,hevc,vp8,vp9,libdav1d,flv,vp6f,adpcm_swf,mpeg4,wmv3,mpeg1video,mpeg2video,mpeg2audio,msmpeg4v2,msmpeg4v3,theora,amrnb,amrwb,dvvideo,h263,mjpeg,png,jpeg,bmp,webp,mp3,aac,ac3,eac3,flac,opus,vorbis,pcm_s16le,pcm_s24le,alac,wma,ass,ssa,mov_text,subrip,webvtt,dvbsub,dvdsub,pgssub,utvideo \ + --enable-decoder=h264,hevc,vp8,vp9,libdav1d,flv,vp6f,adpcm_swf,mpeg4,wmv3,mpeg1video,mpeg2video,mpeg2audio,msmpeg4v2,msmpeg4v3,theora,truehd,amrnb,amrwb,dvvideo,h263,mjpeg,png,jpeg,bmp,webp,mp3,aac,ac3,eac3,flac,opus,vorbis,pcm_s16le,pcm_s24le,alac,wma,ass,ssa,mov_text,subrip,webvtt,dvbsub,dvdsub,pgssub,utvideo \ --enable-parser=* \ --enable-bsf=* \ --enable-static " From fc5a6c77a16cf01d53ad93c98f6f6ae603065219 Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Thu, 16 Apr 2026 10:02:54 +0530 Subject: [PATCH 07/12] Add shared library creation for FFMPEG Add command to create shared library for FFMPEG --- android.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/android.sh b/android.sh index 0d2415c..557e2bc 100644 --- a/android.sh +++ b/android.sh @@ -172,6 +172,10 @@ configure_ffmpeg(){ make clean make -j2 make install -j2 + + gcc -shared -o libffmpeg.so \ + $(find libavcodec libavformat libavutil libswresample libswscale -name "*.o") \ + -lm -lz -lpthread -ldl } From 7744434343b233e970fedbb8d0228d2804e0f926 Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Thu, 16 Apr 2026 10:21:18 +0530 Subject: [PATCH 08/12] Fix command to compile shared library with gcc --- android.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android.sh b/android.sh index 557e2bc..0a79a7d 100644 --- a/android.sh +++ b/android.sh @@ -173,7 +173,7 @@ configure_ffmpeg(){ make -j2 make install -j2 - gcc -shared -o libffmpeg.so \ + ${CLANG} -shared -o libffmpeg.so \ $(find libavcodec libavformat libavutil libswresample libswscale -name "*.o") \ -lm -lz -lpthread -ldl From 1be551231cf2d77faa0a038dbb02ce7b045a3b37 Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Thu, 16 Apr 2026 10:27:40 +0530 Subject: [PATCH 09/12] Fix linking options in android.sh script --- android.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android.sh b/android.sh index 0a79a7d..362ae2b 100644 --- a/android.sh +++ b/android.sh @@ -175,7 +175,7 @@ configure_ffmpeg(){ ${CLANG} -shared -o libffmpeg.so \ $(find libavcodec libavformat libavutil libswresample libswscale -name "*.o") \ - -lm -lz -lpthread -ldl + -lm -lz -ldl } From 79f962b0e60e27634fd6ac7170975e9becbdb820 Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Thu, 16 Apr 2026 11:00:47 +0530 Subject: [PATCH 10/12] Update output path for libffmpeg.so --- android.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android.sh b/android.sh index 362ae2b..dc1795e 100644 --- a/android.sh +++ b/android.sh @@ -173,7 +173,7 @@ configure_ffmpeg(){ make -j2 make install -j2 - ${CLANG} -shared -o libffmpeg.so \ + ${CLANG} -shared -o ${PREFIX}/lib/libffmpeg.so \ $(find libavcodec libavformat libavutil libswresample libswscale -name "*.o") \ -lm -lz -ldl From ecf1e2785a2953fc7f38260bbeb49c3dd2b5ae0d Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Fri, 8 May 2026 18:42:10 +0530 Subject: [PATCH 11/12] Update android.sh to enable file protocol Replace enable-bsf option with enable-protocol option in android.sh. --- android.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android.sh b/android.sh index dc1795e..29c1075 100644 --- a/android.sh +++ b/android.sh @@ -20,7 +20,7 @@ ENABLED_CONFIG="\ --enable-encoder=mjpeg,utvideo \ --enable-decoder=h264,hevc,vp8,vp9,libdav1d,flv,vp6f,adpcm_swf,mpeg4,wmv3,mpeg1video,mpeg2video,mpeg2audio,msmpeg4v2,msmpeg4v3,theora,truehd,amrnb,amrwb,dvvideo,h263,mjpeg,png,jpeg,bmp,webp,mp3,aac,ac3,eac3,flac,opus,vorbis,pcm_s16le,pcm_s24le,alac,wma,ass,ssa,mov_text,subrip,webvtt,dvbsub,dvdsub,pgssub,utvideo \ --enable-parser=* \ - --enable-bsf=* \ + --enable-protocol=file \ --enable-static " From 6774949d6f4377158330bb31cd771b9aba9b8b22 Mon Sep 17 00:00:00 2001 From: Umirtech <44390455+umirtech@users.noreply.github.com> Date: Sat, 9 May 2026 08:08:13 +0530 Subject: [PATCH 12/12] Enable bitstream filters in android.sh --- android.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/android.sh b/android.sh index 29c1075..f621a8f 100644 --- a/android.sh +++ b/android.sh @@ -20,6 +20,7 @@ ENABLED_CONFIG="\ --enable-encoder=mjpeg,utvideo \ --enable-decoder=h264,hevc,vp8,vp9,libdav1d,flv,vp6f,adpcm_swf,mpeg4,wmv3,mpeg1video,mpeg2video,mpeg2audio,msmpeg4v2,msmpeg4v3,theora,truehd,amrnb,amrwb,dvvideo,h263,mjpeg,png,jpeg,bmp,webp,mp3,aac,ac3,eac3,flac,opus,vorbis,pcm_s16le,pcm_s24le,alac,wma,ass,ssa,mov_text,subrip,webvtt,dvbsub,dvdsub,pgssub,utvideo \ --enable-parser=* \ + --enable-bsf=* \ --enable-protocol=file \ --enable-static "