| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 二.ffmpeg 编译和配置 -> 正文阅读 |
|
[移动开发]二.ffmpeg 编译和配置 |
copy from zhujiamin
configure:FFmpeg配置文件,用于检测FFmpeg的编译环境,并根据用户配置的选项生成config.mak,config.h等文件,提供给Makefile使用 configure的整体流程可以分成以下几步:
FFmpeg的NDK编译环境已上传至SVN:http://svn.adc.com/svn_tcpm/Multi_intelligence 8+R项目的FFmpeg源码目录为vendor/oplus/multimedia/mmserver/oplusmedia/libffmpeg_utils/ffmpeg_cm_14_1/ 编译脚本:vendor/oplus/multimedia/mmserver/oplusmedia/libffmpeg_utils/ffmpeg_cm_14_1/build_ffmpeg_android.sh 1.设置ndk及其工具链路径,ndk路径默认放在编译服务器根目录,以及android api版本(使用最新的api版本29,实测编译生成的so在P/Q/R版本都能正常使用) 2.将整体编译框架写在build()函数,分别编译32位armv7-a和64位armv8-a,编译流程主要是configure、make 整个configure()函数的目的就是为了执行最后一行./configure,为了适配不同指令架构,先定义一些配置变量再保存到CONFIG_FLAGS,接下来逐一介绍编译所需的配置项 –target-os=OS compiler targets OS [$target_os] –prefix=PREFIX install in PREFIX [$prefix_default] –arch=ARCH select architecture [$arch] –sysroot=PATH root of cross-build tree –cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix] –cc=CC use C compiler CC [
c
c
d
e
f
a
u
l
t
]
?
?
c
x
x
=
C
X
X
u
s
e
C
c
o
m
p
i
l
e
r
C
X
X
[
cc_default] --cxx=CXX use C compiler CXX [
ccd?efault]??cxx=CXXuseCcompilerCXX[cxx_default] –extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS] –extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS] –extra-libs=ELIBS add ELIBS [] enable和disable配置项: 启用:交叉编译、编译动态库、位置无关代码、neon优化、汇编优化(–enable-asm,一定要打开,大幅度提升解码速度)、dav1d解码库 禁用:编译静态库、ffmpeg、ffplay、ffprobe等工具,avdevice、avfilter、devices、filters、doc、symver、network、encoders、muxers等与OPPO播放框架无关的内容, FFmpeg内置的demuxer、decoder默认是全部打开的,无需再enable 切记不要配置–enable-gpl,打开GPL需要将代码开源,因此依赖GPL协议的配置项也不能使用,如x264、x265、xavs2等 –enable-debug=LEVEL set the debug level [] 四、执行编译 执行./build_ffmpeg_android.sh,so编译到–prefix指定的路径 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:31:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |