1. 环境 ubuntu 我的是12.04  ndk r9d 64位

2. 下载ffmpeg http://www.ffmpeg.org/download.html  找到

FFmpeg 2.1.3 "Fourier"

2.1.3 was released on 2014-01-15. It is the latest stable FFmpeg release from the 2.1 release branch, which was cut from master on 2013-10-28. Amongst lots of other changes, it includes all changes from ffmpeg-mt, libav master of 2013-10-27, libav 9 as of 2013-10-27.

It includes the following library versions:

  libavutil      52. 48.101libavcodec     55. 39.101libavformat    55. 19.104libavdevice    55.  5.100libavfilter     3. 90.100libswscale      2.  5.101libswresample   0. 17.104libpostproc    52.  3.100

Download bzip2 tarball  下载

下载之后 解压到 $NDK/sources   文件夹下面,这是因为编译快捷以及方便使用

3.  找到 ffmpeg-xxx/configure 找到如下几行:

Java代码  
  1. SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
  2. LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
  3. SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
  4. SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'

上面几行会导致libavcodec.so.<version> (e.g. libavcodec.so.55),不会被android承认 ,修改为;

Java代码  
  1. SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
  2. LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
  3. SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
  4. SLIB_INSTALL_LINKS='$(SLIBNAME)'

4. 复制下面的代码到文本中 并命名为 build_android.sh,注意这个文件应该保存到 ffmpeg-xxx/configure 同一个文件夹下

Java代码  
  1. #!/bin/bash
  2. NDK=$HOME/Desktop/adt/android-ndk-r9
  3. SYSROOT=$NDK/platforms/android-9/arch-arm/
  4. TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
  5. function build_one
  6. {
  7. ./configure \
  8. --prefix=$PREFIX \
  9. --enable-shared \
  10. --disable-static \
  11. --disable-doc \
  12. --disable-ffmpeg \
  13. --disable-ffplay \
  14. --disable-ffprobe \
  15. --disable-ffserver \
  16. --disable-avdevice \
  17. --disable-doc \
  18. --disable-symver \
  19. --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
  20. --target-os=linux \
  21. --arch=arm \
  22. --enable-cross-compile \
  23. --sysroot=$SYSROOT \
  24. --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
  25. --extra-ldflags="$ADDI_LDFLAGS" \
  26. $ADDITIONAL_CONFIGURE_FLAG
  27. make clean
  28. make
  29. make install
  30. }
  31. CPU=arm
  32. PREFIX=$(pwd)/android/$CPU
  33. ADDI_CFLAGS="-marm"
  34. build_one

注意修改 NDK=$HOME/Desktop/adt/android-ndk-r9d 这行

5. 执行

Java代码  
  1. sudo chmod +x build_android.sh
  2. ./build_android.sh

6.输出  $NDK/sources/ffmpeg-xxx/android,  arm/lib 和arm/include

注意 arm/lib包含了两个 library files (e.g.: libavcodec-55.so) 和 symbolic links (e.g.: libavcodec.so) 我们需要删掉 symbolic links .

转载地址:http://wang-peng1.iteye.com/blog/2004897

使用 NDK r9 编译ffmpeg相关推荐

  1. NDK Clang 编译 FFmpeg 4.4.1 + fdk-aac 2.0.2 + x264 20191217

    现在编译 FFmpeg 已经全面采用 Clang 了,gcc 被高版本 NDK 废弃,所以从网上搜索出来的编译脚本既有使用低版本 NDK 编译 FFmpeg 的,也有采用高版本 NDK 编译的.采用低 ...

  2. android ndk x86 arm,NDK r21编译FFmpeg 4.2.2(x86、x86_64、armv7、armv8)

    1.编译FFmpeg 准备Ununtu.ndk r21(linux).FFmpeg. 准备编译脚本,这里有两个,其中一个是专门针对armv7的. armv7 #!/bin/bash API=21 #a ...

  3. 最新的ndkr20编译c_使用NDK(r20)编译FFmpeg

    前两天在论坛上看到一个问题,大意是怎么在UBUNTU下使用NDK-r20编译FFmpeg.我第一反应是不该用r20,因为我在很早前用过没有gcc版本的NDK,发现有很多问题不能编译,就立马回复了个使用 ...

  4. NDK R20编译Ffmpeg集成Android命令

    本次编译环境为windows,linux和mac大同小异(windows都异类了,其他环境编译没啥问题) 下载好MINGW,咋个配置的,百度吧,忘了. 下载好NDK文件,我是R20版本的:在从ffmp ...

  5. ffmpeg android ndk编译,关于使用Android NDK编译ffmpeg

    由于项目需求,前两天在在ios项目中使用ffmpeg,写下了"关于ios中编译ffmpeg0.9.2库",然后有朋友在咨询,如何编译最新版的ffmpeg,其实最新版的编译也差不多, ...

  6. Android NDK开发之旅29 云服务器Ubuntu下搭建NDK环境,并编译FFmpeg

    ###前言 因为在Linux环境下编译FFmpeg生成库和头文件下比较方便,所以接下来主要操作在Linux环境下进行.但是对于Android NDK 开发新手来说,自己电脑配置Ubuntu Linux ...

  7. 用android ndk编译ffmpeg,AndroidNDK交叉编译FFMPEG

    1. 简介 在进行安卓音视频开发时,利用安卓NDK工具交叉编译FFmpeg,生成可供安卓平台调用的FFmpeg库是最基础的工作.本篇文章介绍了利用NDK进行FFmpeg编译的具体过程,以及如何在Lin ...

  8. Windows下用ndk编译ffmpeg

    Windows下用ndk编译ffmpeg   第一步:创建一个android工程,然后将ffmpeg整体放到jni下,并创建Android.mk和Application.mk Android.mk: ...

  9. NDK编译FFmpeg

    @TOCFFmpeg的编译 FFmpeg 有六个常用的功能模块: libavformat:多媒体文件或协议的封装和解封装库: libavcodec:音视频编解码库: libavfilter:音视频.字 ...

最新文章

  1. c语言uint赋值给int,如何在C#中将uint转换为int?
  2. iOS开发初探篇——UITabBarController
  3. 利用自己的祖源成分结果画祖源成分饼图
  4. 旋转式直流无刷Maxon电机与copley驱动器调试
  5. 专题开发十三:JEECG微云高速开发平台-附录
  6. UINO优锘:DCV产品发展历程
  7. javaFx(7)文本阅读器
  8. 阿里云虚拟机 php $_SESSION 失效问题
  9. 网页占满整个屏幕_html如何让body占满整个屏幕
  10. 单片机定时器计数原理
  11. NoSQL 在腾讯应用实践
  12. linux日志查看/项目日志查看/监控日志
  13. kettle(pdi)数据库连接中的密码的加密与解密
  14. 数学计算机教学课题,《运用信息技术,优化数学课堂教学》课题方案.doc
  15. python适合做游戏的背景音乐是什么_适合做游戏的背景音乐
  16. pip安装第三方库,报错 Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection brok
  17. NewstartHA 配置技巧
  18. echarts实现多个y轴
  19. 设计一个程序,在顺序表中采用分块查找发查找关键字。
  20. 【案例练习】12—50 个从今天就可以开始做起来的小型Web项目

热门文章

  1. 混乱(转载,同龄人)
  2. Thymeleaf的th标签的应用
  3. Thinkserver RD550 RAID及系统安装
  4. JAVA公路车几何图_按图索骥——教你读懂车架几何
  5. bzoj3155 Preprefix sum 线段树
  6. 【BZOJ 3155】Preprefix sum(树状数组)
  7. 动手学深度学习——深度学习介绍及软件安装
  8. OpenCV修改图片像素值增加、减少
  9. 算盘算筹计算机论文,算筹 算盘与计算机.doc
  10. 使用Keras和迁移学习从人脸图像中预测体重指数BMI