gpt4 book ai didi

android - 如何使 libswscale FFMpeg 库在 android 23+ 中工作

转载 作者:行者123 更新时间:2023-12-04 23:18:44 26 4
gpt4 key购买 nike

库:https://github.com/ser-gik/smoothrescale
你好!我有一个关于如何更新这个库并使它在最新的 android sdk 中工作的问题。
我正在使用在几个 android sdk 中运行的这个库,并注意到以下内容:
在 Android 30 中,具有项目定位
compileSdkVersion 22
构建工具版本“22.0.1
targetSdkVersion 22
工作没有问题。
在 Android 30 中,具有项目定位
compileSdkVersion 23
构建工具版本“23.0.3
targetSdkVersion 23
引发错误 libswscale.so"has text relocations ( https://android.googlesource.com/platform/bionic/+/master/android-changes-for-ndk-developers.md#Text-Relocations-Enforced-for-API-level-23 )
在 Android 31 中,具有项目定位
compileSdkVersion 22
构建工具版本“22.0.1
targetSdkVersion 22
应用程序显示一个对话框“此应用程序是为旧版本构建的”并关闭。
在 Android 31 中,具有项目定位
compileSdkVersion 23
构建工具版本“23.0.3
targetSdkVersion 23
dlopen 失败:找不到库“libsmoothrescale.so”。
目标是让这个库在 Android 23 到 31 中工作,但是有几个场景我真的不知道我应该从哪里开始我的调查和学习。
我应该了解 lib 在 native 级别如何工作吗?是否可以仅使用 Android Studio 功能使这项工作?欢迎任何指导或评论。
谢谢

最佳答案

上周,我使用 NDK-r23b 为 Android 12(目标 31)编译了 ffmpeg-4.3.1 和 ffmpeg-android-maker没有问题。输出将为您提供 4 个拱门,包括 armeabi-v7a、arm64-v8a、x86、x86_64,每个拱门都有 *.so,如 libswscale.so
备注 ffmpeg-4.4.1 或 5.0 编码帧时会在我的测试中输出 vstencxxxx 错误(尚未解决)所以 暂时不要使用它们。

ffmpeg-android-maker.sh --target-abis=arm64-v8a --source-tar=4.3.1 --android-api-level=31

ffmpeg-android-maker.sh --target-abis=armeabi-v7a --source-tar=4.3.1 --android-api-level=21 # Here use lowest support
您还需要来自 ffmpeg-android-maker/output/include 的 header 替换
smoothrescale/smoothrescale/src/main/jni/ffmpeg/include/*
因为 *.so 需要使用相应的头文件。
这就是为什么你会得到像 这样的错误。 libswscale.so"具有文本重定位
.只需替换 *.so 有时不向后兼容。

关于android - 如何使 libswscale FFMpeg 库在 android 23+ 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71269734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com