使用 NDK r9 编译ffmpeg
2014-05-13 15:15
316 查看
1. 环境 ubuntu 我的是12.04 ndk r9d 64位
2. 下载ffmpeg http://www.ffmpeg.org/download.html 找到
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:
Download bzip2 tarball 下载
下载之后 解压到 $NDK/sources 文件夹下面,这是因为编译快捷以及方便使用
3. 找到 ffmpeg-xxx/configure
找到如下几行:
Java代码
![](http://wang-peng1.iteye.com/images/icon_star.png)
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承认 ,修改为;
Java代码
![](http://wang-peng1.iteye.com/images/icon_star.png)
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
同一个文件夹下
Java代码
![](http://wang-peng1.iteye.com/images/icon_star.png)
#!/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. 执行
Java代码
![](http://wang-peng1.iteye.com/images/icon_star.png)
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
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.101 libavcodec 55. 39.101 libavformat 55. 19.104 libavdevice 55. 5.100 libavfilter 3. 90.100 libswscale 2. 5.101 libswresample 0. 17.104 libpostproc 52. 3.100
Download bzip2 tarball 下载
下载之后 解压到 $NDK/sources 文件夹下面,这是因为编译快捷以及方便使用
3. 找到 ffmpeg-xxx/configure
找到如下几行:
Java代码
![](http://wang-peng1.iteye.com/images/icon_star.png)
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承认 ,修改为;
Java代码
![](http://wang-peng1.iteye.com/images/icon_star.png)
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
同一个文件夹下
Java代码
![](http://wang-peng1.iteye.com/images/icon_star.png)
#!/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. 执行
Java代码
![](http://wang-peng1.iteye.com/images/icon_star.png)
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
相关文章推荐
- ffmpeg使用NDK r9编译
- 使用 NDK r9 编译ffmpeg
- 使用 NDK r9 编译ffmpeg
- 使用 NDK r9 编译ffmpeg
- 使用ubuntu14和ndk 编译ffmpeg在android平台的so动态库
- AndroidStudio2.2.3版本使用CMake编译NDK工程(ffmpeg)
- 在ubuntu 10下使用Android-ndk-r6b成功编译ffmpeg0.8.1
- ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
- ubuntu_16.04_LTS使用NDK编译FFMPEG_3.1.1
- MAC下使用ndk编译ffmpeg
- Ubuntu下为AndroidStudio编译并使用FFmpeg(一)ndk部分
- buntu12.10 64位 + android-ndk-r9 编译ffmpeg遇到的问题
- 在32位的Ubuntu 11.04中为Android NDK r6编译FFmpeg0.8.1版-Android中使用FFmpeg媒体库(一)
- linux下使用ndk编译ffmpeg
- Ubuntu 14.04 NDK R9 编译ffmpeg2.4
- ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
- 【Android】NDK编译ffmpeg(基于使用Ubuntu15.10)
- ubuntu_14.04_LTS使用NDK编译FFMPEG_2.7.2
- Android-NDK-r9编译ffmpeg-0.11.3