使用NDK编译ffmpeg
来源:互联网 发布:mac怎么下载ed2k 编辑:程序博客网 时间:2024/05/16 16:09
测试编译平台为linux,首先去ffmpeg官网下载linux版本ffmpeg并解压缩,本人编译版本为2.6.9。需要下载linux版本ndk并解压缩,版本为r10e。
修改修改下载目录中的configure文件
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
替换为
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'SLIB_INSTALL_LINKS='$(SLIBNAME)'
下面附上我改好的configure文件,直接覆盖原文件即可:点击下载
编写shell脚本直接生成类库
#!/bin/bashmake cleanexport NDK=/usr/ndk/android-ndk-r10eexport SYSROOT=$NDK/platforms/android-9/arch-arm/export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64export CPU=armexport PREFIX=$(pwd)/android/$CPUexport ADDI_CFLAGS="-marm"./configure --target-os=linux \--prefix=$PREFIX --arch=arm \--disable-doc \--enable-shared \--disable-static \--disable-yasm \--disable-symver \--enable-gpl \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-ffserver \--disable-doc \--disable-symver \--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \--enable-cross-compile \--sysroot=$SYSROOT \--extra-cflags="-Os -fpic $ADDI_CFLAGS" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAGmake cleanmakemake install
下面附上我写好的shell脚本文件点击下载
注意:shell脚本的名字为sh
编译生成
把shell脚本放入ffmpeg目录里面,也就是和configure文件在同一个目录,直接运行脚本就会生成我们需要的库文件,运行命令 ./脚本名称。
注意:我们的ffmpeg的文件可能没有权限运行,使用 chmod 777 -R ffmpeg使ffmpeg文件加下的所有文件获得最高权限
编译成功后会出现一个android文件夹,包含的是arm平台的动态库,我们只需要取出ffmpeg八大模块对应大版本库就行了
你会发现android目录下还有一个include文件夹,那是我们生成的头文件。
易错点
有时候我们传入shell脚本并不能运行,可能我们的文件格式不对,需要使用dos2unix把格式转换(linux下)。
shell脚本的NDK变量代表我们下载NDK并解压后的目录
阅读全文
0 0
- 使用NDK编译ffmpeg
- 使用Android NDK编译ffmpeg
- ffmpeg使用NDK r9编译
- 使用 NDK r9 编译ffmpeg
- 使用 NDK r9 编译ffmpeg
- 使用 NDK r9 编译ffmpeg
- 使用NDK编译ffmpeg库
- 使用 NDK r9 编译ffmpeg
- 使用ndk 编译 编译ffmpeg 并使用
- ubuntu中使用android ndk编译ffmpeg.
- 关于使用Android NDK编译ffmpeg
- window下使用ndk编译 ffmpeg库
- MAC下使用ndk编译ffmpeg
- android ndk 编译 ffmpeg
- 用NDK编译FFmpeg
- adroid ndk, ffmpeg编译
- 用NDK编译FFmpeg
- 用NDK编译FFmpeg
- JS判断浏览器语言及终端类型(android/ios)
- RMI的简单解读和具体实现Demo
- Spring Boot + Mybatis + Ehcache架构基本配置
- WinPcap编程技术博客转载
- html5的本地存储
- 使用NDK编译ffmpeg
- Lucene学习总结之九:Lucene的查询对象(2)
- 路由跟踪工具0trace
- Fragment中实现dispatchKeyEvent事件
- 指数哥伦布编码
- linux下错误的捕获:errno和strerror的使用
- springmvc中一个Action中,写多个类似的业务控制方法+在业务控制方法中写入普通变量收集参数+限定某个业务控制方法。只允许GET或POST请求方式访问
- java二分查找
- IT学生解惑真经