ffmpeg 移植到 android

本文档详细介绍了如何将ffmpeg移植到Android平台,包括设置NDK环境变量、配置源代码、解决编译问题和创建Android.mk文件。通过一系列步骤,最终能够生成动态库.so文件和静态库.a文件。
摘要由CSDN通过智能技术生成

一:生成动态库(.so文件)


-->环境:

操作系统:Ubuntu9.10

ffmpeg源码版本:ffmpeg-0.6.1(可以在http://ffmpeg.org/download.html 下载源码)

androidndk版本:android-ndk-r4b-linux-x86(可以在http://androidappdocs.appspot.com/sdk/ndk/index.html 下载)

-->设置NDK环境变量:

1、用root用户登陆,打开命令窗口,输入cd/root

2、输入ls-a,会显示一个隐藏文件.bashrc

3、输入vi.bashrc,按i进入编辑模式

4、文件底部添加以下两行:
NDK_ROOT=/home/ndk
。这里指你ndk的目录路径
exportNDK_ROOT
5
、按esc退出,再按:wq保存

-->你可以测试一下有没有安装成功:
$cd $NDK_ROOT
$ ./ndk-buildNDK_PROJECT_PATH=$NDK_ROOT/samples/two-libs


-->
找到生成的文件就代表安装正常了:

1、如果提示某个文件"Permissiondenied"之类的信息时,执行chmod777 your_filename就行了

2、如果提示找不到'cc1'等信息,执行chmod-R 777 *,就能解决了

-->配置源代码:

/home/ndk/samples/创建一个FFMPEG文件夹,在里面再新建一个jni文件夹,然后把ffmpeg源码放在jni里面,所以最后ffmpeg源码的路径是:
/home/ndk/samples/FFMPEG/jni/ffmpeg

1. ffmpeg源文件夹下创建一个config.sh,内容如下:
#!/bin/bash



PREBUILT=/home/xxx/android_NDK/android-ndk-r4b/build/prebuilt/linux-x86/arm-eabi-4.4.0

PLATFORM=/home/xxx/android_NDK/android-ndk-r4b/build/platforms/android-8/arch-arm



./configure--target-os=linux \

--arch=arm\

--enable-version3\

--enable-gpl\

--enable-nonfree\

--disable-stripping\

--disable-ffmpeg\

--disable-ffplay\

--disable-ffserver\

--disable-ffprobe\

--disable-encoders\

--disable-muxers\

--disable-devices\

--disable-protocols\

--enable-protocol=file\

--enable-avfilter\

--disable-network\

--disable-mpegaudio-hp\

--disable-avdevice\

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
FFmpeg移植Android 13源代码中需要进行以下步骤: 1. 下载FFmpeg源代码,可以从官方网站或GitHub上下载最新版本的源代码。 2. 安装Android NDK,可以从官方网站下载最新版本的NDK。 3. 在NDK的目录中找到`platforms/android-13/arch-arm/usr/include`文件夹,并将FFmpeg源代码中的所有`.h`文件复制到该文件夹中。 4. 在FFmpeg源代码根目录下创建一个名为`android_build.sh`的文件,并将以下内容复制到该文件中: ``` #!/bin/bash NDK=$HOME/Android/Sdk/ndk/23.0.7599858 SYSROOT=$NDK/platforms/android-13/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/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-symver \ --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 make clean make make install } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" ADDI_LDFLAGS="" ADDITIONAL_CONFIGURE_FLAG="--enable-jni" build_one ``` 其中,`$NDK`是你的NDK目录,`$CPU`是你的CPU类型(这里是arm),`$PREFIX`是指定编译输出目录,`$ADDI_CFLAGS`是指定编译选项,`$ADDI_LDFLAGS`是指定链接选项。 5. 运行以下命令进行编译: ``` chmod +x android_build.sh ./android_build.sh ``` 编译完成后,可以在`android/arm`目录中找到编译后的FFmpeg库文件。 注意:移植FFmpegAndroid需要一定的编译知识和经验,如果你不熟悉Android开发和编译,建议先学习相关知识再进行移植
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值