使用适用于Android的ffmpeg编译x265并接收错误

使用适用于Android的ffmpeg编译x265并接收错误,android,ffmpeg,compilation,hevc,Android,Ffmpeg,Compilation,Hevc,正在尝试编译x265以与arm64-v8a一起使用。在成功构建x265本身之后,当ffmpeg即将编译时,我收到以下错误: require_pkg_config libx265 x265 x265.h x265_api_get check_pkg_config libx265 x265 x265.h x265_api_get test_pkg_config libx265 x265 x265.h x265_api_get /root/ffmpeg_android/ffmpeg-android-1

正在尝试编译x265以与arm64-v8a一起使用。在成功构建x265本身之后,当ffmpeg即将编译时,我收到以下错误:

require_pkg_config libx265 x265 x265.h x265_api_get
check_pkg_config libx265 x265 x265.h x265_api_get
test_pkg_config libx265 x265 x265.h x265_api_get
/root/ffmpeg_android/ffmpeg-android-1.6.3/ffmpeg-pkg-config --exists --print-errors x265
check_func_headers x265.h x265_api_get -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib -lx265
test_ld cc -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib -lx265
test_cc -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib
BEGIN /tmp/ffconf.xKyjnplW/test.c
    1   #include <x265.h>
    2   #include <stdint.h>
    3   long check_x265_api_get(void) { return (long) x265_api_get; }
    4   int main(void) { int ret = 0;
    5    ret |= ((intptr_t)check_x265_api_get) & 0xFFFF;
    6   return ret; }
END /tmp/ffconf.xKyjnplW/test.c
/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/bin/aarch64-linux-android-clang -DANDROID -fpic -fpie -march=armv8-a --sysroot=/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/sysroot -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -DANDROID -fpic -fpie -march=armv8-a -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/vpx/android/arm64-v8a/include -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x264/android/arm64-v8a/include/x264 -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/lame/android/arm64-v8a/include -DANDROID -fpic -fpie -march=armv8-a --static -mcpu=cortex-a57 -std=c11 -fPIE -fomit-frame-pointer -fPIC -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib -c -o /tmp/ffconf.xKyjnplW/test.o /tmp/ffconf.xKyjnplW/test.c
clang60: warning: argument unused during compilation: '-L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib' [-Wunused-command-line-argument]
/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/bin/aarch64-linux-android-clang -Wl,-z,defs -Wl,--unresolved-symbols=report-all -march=armv8-a -L/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/sysroot -Wl,-z,relro -Wl,-z,now -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/vpx/android/arm64-v8a/lib -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x264/android/arm64-v8a/lib -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/lame/android/arm64-v8a/lib -Wl,-z,defs -Wl,--unresolved-symbols=report-all -march=armv8-a -L/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/sysroot -Wl,-z,relro -Wl,-z,now --static --sysroot=/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/sysroot -mcpu=cortex-a57 -Wl,--as-needed -Wl,-z,noexecstack -fPIE -pie -I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265 -L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib -o /tmp/ffconf.xKyjnplW/test /tmp/ffconf.xKyjnplW/test.o -lx265 -lgcc
clang60: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument]
/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: skipping incompatible /root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib/libx265.a when searching for -lx265
/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: skipping incompatible /root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib/libx265.a when searching for -lx265
/root/ffmpeg_android/ffmpeg-android-1.6.3/toolchain-android/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: cannot find -lx265
clang60: error: linker command failed with exit code 1 (use -v to see invocation)
ERROR: x265 not found using pkg-config
require\u pkg\u config libx265 x265 x265.h x265\u api\u get
检查\u pkg\u config libx265 x265 x265.h x265\u api\u get
test_pkg_config libx265 x265 x265.h x265_api_get
/root/ffmpeg_android/ffmpeg-android-1.6.3/ffmpeg-pkg-config--存在--打印错误x265
检查_func_headers x265.h x265_api_get-I/root/ffmpeg-android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265-L/root/ffmpeg_-android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib-lx265
test_ld cc-I/root/ffmpeg_-android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265-L/root/ffmpeg_-android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib-lx265
test_cc-I/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265-L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib
BEGIN/tmp/ffconf.xKyjnplW/test.c
1#包括
2#包括
3长检查获取(无效){返回(长)x265获取}
4 int main(void){int ret=0;
5 ret |=((intptr_t)checkx265_api_get)&0xFFFF;
6返回ret;}
END/tmp/ffconf.xKyjnplW/test.c
/root/ffmpeg\u-android/ffmpeg-android-1.6.3/toolchain-android/bin/aarch64-linux-android-clang-DANDROID-fpic-fpie-march=armv8-a--sysroot=/root/ffmpeg-android-1.6.3/toolchain-android/sysroot-D\u ISOC99\u SOURCE-D\u文件偏移量=64-D\u大文件源-dstrod=avpriv\u strtod-DPIC-DANDROID-fpic-fpic-march=armv8-a-I/root/ffmpeg-android/ffmpeg-android-1.6.3/jni/vpx/android/arm64-v8a/include-I/root/ffmpeg-android/ffmpeg-android-1.6.3/jni/android/arm64-v8a/include/x264-I/root/ffmpeg-android-1.6.3/ffmpeg-v8a/jni/x265-I/root/ffmpeg-android-1.6.3/jni/lame/arm64-fpd-v8a-v8a-march=armv8-a--static-mcpu=cortex-a57-std=c11-fPIE-fomit帧指针-fPIC-I/root/ffmpeg-android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265-L/root/ffmpeg-android/ffmpeg-1.6.3/jni/x265/android/arm64-v8a/lib-c-o/tmp/ffconf.xKyjnplW/test.o/tmp/ffconf.xKyjnplW/test.c
clang60:警告:编译期间未使用参数:'-L/root/ffmpeg_android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib'[-Wunused命令行参数]
/root/ffmpeg_-android/ffmpeg-android-1.6.3/toolchain-android/bin/aarch64-linux-android-clang-Wl,-z,defs-Wl,--未解析符号=全部报告-三月=armv8-a-L/root/ffmpeg_-android/ffmpeg-android-1.6.3/toolchain-android/sysroot-Wl,-,-z,relro-Wl,--z,现在-L/root/ffmpegèu-android/ffmpeg-android-1.6.3/jni/vpx/android/arm64-v8a/lib-L/root/ffmpegèandroid/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib-L/root/ffmpegè-android/ffmpeg-android/ffmpeg-android/lame-1.6.3/rame/arm64-v8a/lib-Wl-def-vz,--未解析符号=报告所有-三月=armv8-a-L/root/ffmpeg_-android/ffmpeg-android-1.6.3/toolchain-android/sysroot-Wl,-z,relro-Wl,-z,现在--静态--sysroot=/root/ffmpeg_-android/ffmpeg-android-1.6.3/toolchain-android/sysroot-mcpu=cortex-a57-Wl,-根据需要-Wl,-,-,-,-,-,--z,noexecstack-fPIE-pie-I/root/ffmpeg_-android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/include/x265-L/root/ffmpeg_-android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/lib-o/tmp/ffconf.xKyjnplW/test/tmp/ffconf.xKyjnplW/test-lx265-lgcc
clang60:警告:编译期间未使用参数:'-pie'[-Wunused命令行参数]
/root/ffmpeg_-android/ffmpeg-android-1.6.3/toolchain-android/bin//lib/gcc/aarch64-linux-android/4.9.x/../../../../../../aarch64-linux-android/bin/ld:搜索-lx265时跳过不兼容的/root/ffmpeg_-android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/libx265.a
/root/ffmpeg_-android/ffmpeg-android-1.6.3/toolchain-android/bin//lib/gcc/aarch64-linux-android/4.9.x/../../../../../../aarch64-linux-android/bin/ld:搜索-lx265时跳过不兼容的/root/ffmpeg_-android/ffmpeg-android-1.6.3/jni/x265/android/arm64-v8a/libx265.a
/root/ffmpeg_-android/ffmpeg-android-1.6.3/toolchain-android/bin//lib/gcc/aarch64-linux-android/4.9.x/../../../../../../aarch64-linux-android/bin/ld:找不到-lx265
clang60:错误:链接器命令失败,退出代码为1(使用-v查看调用)
错误:使用pkg config找不到x265

我使用ffmpeg 4.1.3和x265源代码的最新版本。我使用project进行编译,在构建时没有使用x265,我已经成功了。我在Debian Buster x64上编译。

我最终使用了project中的脚本,该脚本使用了所有最新的NDK和ffmpeg以及每个最新的库,以便创建ffmpeg二进制文件。它在我的设备上运行得很好,经过一点修改,我也得到了一个静态ffmpeg。我只需要在我的应用程序中添加两个额外的本机库就可以了。它甚至使用了所有的CPU功能,因此它是手机最快的解决方案