en un clic
upgrade-ffmpeg
将新编译的 FFmpeg 库升级到 SkyPlayer 项目中
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
将新编译的 FFmpeg 库升级到 SkyPlayer 项目中
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
| name | upgrade-ffmpeg |
| version | 0.3.0 |
| description | 将新编译的 FFmpeg 库升级到 SkyPlayer 项目中 |
参考 ffmpeg_build_reference.md
将 android/arm64-v8a/libskyffmpeg.so 复制到 jniLibs/arm64-v8a/ 目录
如果新版 FFmpeg 链接了 C++ 库(如 Whisper.cpp),需要将 NDK 中的 libc++_shared.so 复制到 jniLibs/arm64-v8a/ 目录:
NDK_ROOT=~/Library/Android/sdk/ndk/27.0.12077973
cp "$NDK_ROOT/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so" \
skymediaplayer/src/main/jniLibs/arm64-v8a/
错误症状:如果运行时出现 dlopen failed: library "libc++_shared.so" not found 错误,说明需要添加此库。
将 ffmpeg 编译产物目录下 include/ 目录下的依赖更换到 SkyPlayer 项目 skymediaplayer/src/main/cpp/ffmpeg/include/
注意事项:
需要保留的目录(不替换):
compat/ - 兼容性头文件libpostproc/ - 后处理库(新版可能不包含)以下头文件不在 FFmpeg 安装的 include/ 目录中,但被 cmdutils.c 等文件引用,需要从 FFmpeg 源码中复制:
| 文件 | 源位置 | 目标位置 |
|---|---|---|
getenv_utf8.h | FFmpeg 源码 libavutil/ | ffmpeg/include/libavutil/ |
libm.h | FFmpeg 源码 libavutil/ | ffmpeg/include/libavutil/ |
fopen_utf8.h | FFmpeg 源码 fftools/ | ffplay/ |
将 ffmpeg 编译产物目录的 config.h 文件替换到 ffmpeg/include/ 目录下
./gradlew :skymediaplayer:assembleDebug 确保编译通过CONFIG_WHISPER、CONFIG_NETWORK 等)| 文档 | 说明 |
|---|---|
| ffmpeg_build_reference.md | FFmpeg 编译产物目录结构和替换命令 |
| gpu_acceleration.md | Whisper GPU 加速支持(位于 develop-player) |