MAC下使用ndk编译ffmpeg
来源:互联网 发布:淘宝商城cma检测 编辑:程序博客网 时间:2024/05/22 12:58
ffmpeg是c语言的库,主要作用是对音视频进行编解码等操作。是android进阶必须要掌握的一门技术。通过使用ffmpeg可以提高对android ndk的认识和熟练度。第一步当然就是编译ffmpeg编译为android可以使用的.so文件。
第一步:下载ffmpeg
第二步:修改config文件,这个文件在下载的ffmpeg文件下。
将以下内容
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)'
替换的原因是编译后的文件会在.so后面追加动态库的版本号,而这样的文件android是不能识别的。
第三步:下载好ndk,本次编译时基于ffmpeg-3.1.1 ndk-r10e的版本。
第四步:配置.sh脚本文件,以下亲测可以编译成功。
#!/bin/bash #ndk路径 NDK=/Users/zhoukai/Documents/android-ndk-r10e #版本号 SYSROOT=$NDK/platforms/android-9/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64 function build_one(){ ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffserver \ --enable-cross-compile \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" build_one make make install
等待…
最后在ffmpeg文件下回有一个android文件夹,android中有一个include文件夹里面存放的是头文件,lib下存放的就是所需要的.so库了。
最后感谢各路网站资料的支持!
阅读全文
0 0
- MAC下使用ndk编译ffmpeg
- window下使用ndk编译 ffmpeg库
- NDK下编译FFMPEG
- (转)在 Mac OS X 下使用 Android NDK r5b 编译 FFmpeg 0.8
- MAC系统下利用NDK编译可供Android使用的FFmpeg(3.2.4)库
- 使用NDK编译ffmpeg
- Mac下编译FFmpeg
- mac下编译ffmpeg
- mac下编译ffmpeg
- MAC下编译ffmpeg
- 使用NDK编译FFmpeg到Android下使用
- android ndk下编译ffmpeg
- android下ndk编译ffmpeg
- 使用Android NDK编译ffmpeg
- ffmpeg使用NDK r9编译
- 使用 NDK r9 编译ffmpeg
- 使用 NDK r9 编译ffmpeg
- 使用 NDK r9 编译ffmpeg
- 第三章、DispatcherServlet详解
- 输入某年某月某日,使用选择结构,判断这一天是这一年的第几天
- shader的三大着色器
- 吴恩达深度学习笔记之卷积神经网络(特殊应用)
- xml中引用自定义schema
- MAC下使用ndk编译ffmpeg
- 【待总结】关于初始化
- 高通代码编译报错-集合
- Kotlin-2.3-接口
- Faster RCNN解析
- 立贴为誓 好不好
- SpringMVC 后台接口,使用axios 传递参数接收不到
- 二、maven+web整合ssm框架
- python爬虫实战(一)