使用NDK编译ffmpeg库

本文介绍如何在Ubuntu14.04环境下安装Android NDK并编译FFmpeg。主要内容包括从官方网站下载Android NDK及FFmpeg源码,修改FFmpeg的configure文件以适配Android平台,创建ndk_build_config.sh脚本来配置并编译FFmpeg。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在 http://developer.android.com/tools/sdk/ndk/index.html 
   下载 android-ndk-r10e-linux-x86_64.bin 
   然后热行如下命令安装NDK,我是在ubuntu 14.04下安装的,在WIN下要装cygwin,会麻烦很多,不推荐。


它官方的安装提示如下:
  On Linux and Mac OS X (Darwin):
   1. Download the appropriate package from this page.
   2. Open a terminal window.
   3. Go to the directory to which you downloaded the package.
   4. Run chmod a+x on the downloaded package.
   5. Execute the package. For example:




   ndk$ chmod a+x android-ndk-r10e-linux-x86_64.bin
   ndk$ ./android-ndk-r10e-linux-x86_64.bin


更具体的安装与配置见《Ubuntu14.04下最新Android NDK安装》


2. 进入ffmpeg官网,http://ffmpeg.org/ 下载最新版的ffmpgeg压缩包。
   我下的是 ffmpeg-2.8.1 
(1)修改 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)'




(2)在源码目录下创建,ndk_build_config.sh
#!/bin/bash  
NDK=/home/cxx/ndk/android-ndk-r10c
SYSROOT=$NDK/platforms/android-19/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-ffserver \
    --enable-gpl\
    --enable-libx264 \
    --enable-encoder=libx264 \
    --enable-decoder=h264 \
    --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 -I../x264/android/arm/include -DANDROID "
ADDI_LDFLAGS="-L../x264/android/arm/lib"
build_one


编译运行
$ chmod a+x ndk_build_config.sh
$ ./ndk_build_config.sh
$ make 
$ make install
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北雨南萍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值