使用 NDK r9 编译ffmpeg
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 找到如下几行:
- 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)'
上面几行会导致libavcodec.so.<version> (e.g. libavcodec.so.55),不会被android承认 ,修改为;
- SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
- LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
- SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
- SLIB_INSTALL_LINKS='$(SLIBNAME)'
4. 复制下面的代码到文本中 并命名为 build_android.sh,注意这个文件应该保存到 ffmpeg-xxx/configure 同一个文件夹下
- #!/bin/bash
- NDK=$HOME/Desktop/adt/android-ndk-r9
- SYSROOT=$NDK/platforms/android-9/arch-arm/
- TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
- function build_one
- {
- ./configure \
- --prefix=$PREFIX \
- --enable-shared \
- --disable-static \
- --disable-doc \
- --disable-ffmpeg \
- --disable-ffplay \
- --disable-ffprobe \
- --disable-ffserver \
- --disable-avdevice \
- --disable-doc \
- --disable-symver \
- --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
- --target-os=linux \
- --arch=arm \
- --enable-cross-compile \
- --sysroot=$SYSROOT \
- --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
- --extra-ldflags="$ADDI_LDFLAGS" \
- $ADDITIONAL_CONFIGURE_FLAG
- make clean
- make
- make install
- }
- CPU=arm
- PREFIX=$(pwd)/android/$CPU
- ADDI_CFLAGS="-marm"
- build_one
注意修改 NDK=$HOME/Desktop/adt/android-ndk-r9d 这行
5. 执行
- sudo chmod +x build_android.sh
- ./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相关推荐
- NDK Clang 编译 FFmpeg 4.4.1 + fdk-aac 2.0.2 + x264 20191217
现在编译 FFmpeg 已经全面采用 Clang 了,gcc 被高版本 NDK 废弃,所以从网上搜索出来的编译脚本既有使用低版本 NDK 编译 FFmpeg 的,也有采用高版本 NDK 编译的.采用低 ...
- 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 ...
- 最新的ndkr20编译c_使用NDK(r20)编译FFmpeg
前两天在论坛上看到一个问题,大意是怎么在UBUNTU下使用NDK-r20编译FFmpeg.我第一反应是不该用r20,因为我在很早前用过没有gcc版本的NDK,发现有很多问题不能编译,就立马回复了个使用 ...
- NDK R20编译Ffmpeg集成Android命令
本次编译环境为windows,linux和mac大同小异(windows都异类了,其他环境编译没啥问题) 下载好MINGW,咋个配置的,百度吧,忘了. 下载好NDK文件,我是R20版本的:在从ffmp ...
- ffmpeg android ndk编译,关于使用Android NDK编译ffmpeg
由于项目需求,前两天在在ios项目中使用ffmpeg,写下了"关于ios中编译ffmpeg0.9.2库",然后有朋友在咨询,如何编译最新版的ffmpeg,其实最新版的编译也差不多, ...
- Android NDK开发之旅29 云服务器Ubuntu下搭建NDK环境,并编译FFmpeg
###前言 因为在Linux环境下编译FFmpeg生成库和头文件下比较方便,所以接下来主要操作在Linux环境下进行.但是对于Android NDK 开发新手来说,自己电脑配置Ubuntu Linux ...
- 用android ndk编译ffmpeg,AndroidNDK交叉编译FFMPEG
1. 简介 在进行安卓音视频开发时,利用安卓NDK工具交叉编译FFmpeg,生成可供安卓平台调用的FFmpeg库是最基础的工作.本篇文章介绍了利用NDK进行FFmpeg编译的具体过程,以及如何在Lin ...
- Windows下用ndk编译ffmpeg
Windows下用ndk编译ffmpeg 第一步:创建一个android工程,然后将ffmpeg整体放到jni下,并创建Android.mk和Application.mk Android.mk: ...
- NDK编译FFmpeg
@TOCFFmpeg的编译 FFmpeg 有六个常用的功能模块: libavformat:多媒体文件或协议的封装和解封装库: libavcodec:音视频编解码库: libavfilter:音视频.字 ...
最新文章
- c语言uint赋值给int,如何在C#中将uint转换为int?
- iOS开发初探篇——UITabBarController
- 利用自己的祖源成分结果画祖源成分饼图
- 旋转式直流无刷Maxon电机与copley驱动器调试
- 专题开发十三:JEECG微云高速开发平台-附录
- UINO优锘:DCV产品发展历程
- javaFx(7)文本阅读器
- 阿里云虚拟机 php $_SESSION 失效问题
- 网页占满整个屏幕_html如何让body占满整个屏幕
- 单片机定时器计数原理
- NoSQL 在腾讯应用实践
- linux日志查看/项目日志查看/监控日志
- kettle(pdi)数据库连接中的密码的加密与解密
- 数学计算机教学课题,《运用信息技术,优化数学课堂教学》课题方案.doc
- python适合做游戏的背景音乐是什么_适合做游戏的背景音乐
- pip安装第三方库,报错 Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection brok
- NewstartHA 配置技巧
- echarts实现多个y轴
- 设计一个程序,在顺序表中采用分块查找发查找关键字。
- 【案例练习】12—50 个从今天就可以开始做起来的小型Web项目