NDK r21b 编译FFmpeg 、x264 提供Android集成

       在现今这个阶段,越来越多的app会涉及到音视频,那么学会使用ffmpeg和x264就很有必要了。本篇文章将讲解如何把ffmpeg、x264编译成动态库和静态库。

    1. 编译环境

       Linux/Ubuntu/Centis都行。在windows环境下可以安装虚拟机或者购买一个云主机,作者在阿里云购买的一个Ubuntu主机。

    2. 准备工作

      linux ndk下载:https://developer.android.google.cn/ndk/downloads

      FFmpeg 下载:http://ffmpeg.org/download.html

      x264 下载:https://www.videolan.org/developers/x264.html

     将下载好的文件解压

     3. 编写脚本

      3.1 编译FFmpeg 

       1. 在解压后的ffmpeg目录新建build.sh文件,编辑build.sh,代码如下:

#!/bin/bash   export NDK=/home/study/android-ndk-r21bexport PREBUILD=$NDK/toolchains/llvm/prebuiltexport CROSS_PREFIX=${PREBUILD}/linux-x86_64/bin/arm-linux-androideabi-export CC=$PREBUILD/linux-x86_64/bin/armv7a-linux-androideabi21-clangexport NM=$CROSS_PREFIXnmexport AR=$CROSS_PREFIXarexport PREFIX=./android/armeabi-v7afunction build_so    {     ./configure \--prefix=$PREFIX \--cc=$CC \--nm=$NM \--ar=$AR \--enable-small \--disable-programs \--disable-avdevice \--disable-encoders \--disable-muxers \--disable-filters \--cross-prefix=$CROSS_PREFIX \--target-os=android \--arch=arm \--disable-shared \--enable-static \--enable-cross-compile    }make cleanbuild_somake -j4make install

   2. 修改权限  chmod +x build.sh

   3. 执行 ./build.sh

   4. 编译完成之后会在当前目录生成android/armeabi-v7a文件,里面的内容就是编译ffmpeg生成的静态库和头文件。

  3.2 编译x264

       1. 在解压后的ffmpeg目录新建build.sh文件,编辑build.sh,代码如下:

#!/bin/bashexport NDK=/home/study/android-ndk-r21bexport TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64export API=21function build_one{./configure \    --prefix=$PREFIX \--disable-cli \    --enable-static \    --enable-pic \    --host=$my_host \--cross-prefix=$CROSS_PREFIX \    --sysroot=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot \make cleanmake -j8make install}#arm64-v8aPREFIX=./android/arm64-v8amy_host=aarch64-linux-androidexport TARGET=aarch64-linux-androidexport CC=$TOOLCHAIN/bin/$TARGET$API-clangexport CXX=$TOOLCHAIN/bin/$TARGET$API-clang++CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-build_one#armeabi-v7aPREFIX=./android/armeabi-v7amy_host=armv7a-linux-androidexport TARGET=armv7a-linux-androideabiexport CC=$TOOLCHAIN/bin/$TARGET$API-clangexport CXX=$TOOLCHAIN/bin/$TARGET$API-clang++CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-build_one

   2. 修改权限  chmod +x build.sh

   3. 执行 ./build.sh

   4. 编译完成之后会在当前目录生成android/armeabi-v7a 和 android/arm64-v8a文件,里面的内容就是编译ffmpeg生成的静态库和头文件。

更多相关文章

  1. Android(安卓)内核编译
  2. Ubuntu上编译Android内核源码
  3. android的DALVIK虚拟机简介
  4. R cannot be resolved to a variable
  5. 游走Android系列之APK文件的反编译、修改和重新编译打包
  6. Android(安卓)root 原理
  7. Android:自定义View三个方法的意义
  8. Android(安卓)系统移植与调试(一)Android编译环境编译服务器搭建
  9. 又议android中的manifest清单文件

随机推荐

  1. Android的FUSE方案
  2. SettingActivity学习笔记
  3. Android的WiFi子系统架构
  4. Android Skia编程系列(一):Hello Skia
  5. 如何自学 Android 编程?
  6. android 图片剪裁 ,从android自带图库提取
  7. Android资源文件夹及资源文件的详细介绍
  8. 做纯粹的 Android
  9. 19 个 Android 开发工具
  10. Android定时任务的实现方式