16kpatch/README.md
ijkplayer22.1.7171670(r22)CarGuo/FFmpeg tag ijk-n4.3-20260301-007arm64-v8a / x86_64:16K page sizearmeabi-v7a:可构建,4K page sizendk_r22_16k_commit.patch
ijkplayer 主仓改动快照(基于 9ef1d2b2 到当前工作树),覆盖构建脚本、64位16K分流、armv7a(r22)兼容、x86_64 HTTPS 修复、init 固化、README 同步等。ndk_r22_ffmpeg_n4.3_ijk.patch
n4.3..ijk-n4.3-20260301-007),包含 ijk 协议/demuxer 兼容、OpenSSL 探测兼容、导出头、async 注册崩溃修复。ndk_r22_soundtouch.patch
ijksoundtouch 的 16K 链接与 STL 兼容补丁。ndk_r22_ijkyuv.patch
ijkyuv 的 16K 链接补丁。git clone https://github.com/Bilibili/ijkplayer.git
cd ijkplayer
拷贝本目录下 4 个 patch 到任意本地目录(假设为 /path/to/16kpatch)
在 ijkplayer 根目录应用主补丁
git apply --check /path/to/16kpatch/ndk_r22_16k_commit.patch
git apply /path/to/16kpatch/ndk_r22_16k_commit.patch
cd ijkmedia/ijksoundtouch
git apply --check /path/to/16kpatch/ndk_r22_soundtouch.patch
git apply /path/to/16kpatch/ndk_r22_soundtouch.patch
cd ../ijkyuv
git apply --check /path/to/16kpatch/ndk_r22_ijkyuv.patch
git apply /path/to/16kpatch/ndk_r22_ijkyuv.patch
ijk-n4.3-20260301-007 tag 可跳过)cd /path/to/FFmpeg
git checkout -B codex/n4.3-ijk-arm64 n4.3
git apply --check /path/to/16kpatch/ndk_r22_ffmpeg_n4.3_ijk.patch
git apply /path/to/16kpatch/ndk_r22_ffmpeg_n4.3_ijk.patch
cd ../../
./init-android-openssl.sh
./init-android.sh
cd android/contrib
./compile-openssl.sh x86_64
./compile-openssl.sh arm64
./compile-ffmpeg.sh arm64
./compile-ffmpeg.sh x86_64
./compile-ffmpeg.sh armv7a
cd ..
./compile-ijk.sh arm64
./compile-ijk.sh x86_64
./compile-ijk.sh armv7a
arm64-v8a 与 x86_64 下 libijkffmpeg.so/libijksdl.so/libijkplayer.so 的 PT_LOAD Align 为 0x4000armeabi-v7a 下 libijkffmpeg.so/libijksdl.so/libijkplayer.so 的 PT_LOAD Align 为 0x1000libijkffmpeg.so 包含 __stack_chk_fail@LIBCarm64-v8a。armeabi-v7a 主要用于 32 位设备兼容;若目标机型存在 HEVC 软解崩溃风险,建议优先硬解或降低 armv7a 解码能力。x86_64 若需要 HTTPS,必须保证先完成 ./compile-openssl.sh x86_64,再执行 ./compile-ffmpeg.sh x86_64。config.h 导致 CONFIG_HTTPS_PROTOCOL=0。git apply --check 可能失败;请先清理冲突或基于干净分支应用。