以下步骤在 Ubuntu 16.04.2 LTS 下完成

第一步:到 ffmpeg 官网 下载 ffmpeg-2.6.9.tar.gz 包到 study/目录并解压,然后给文件夹读写权限。这里选择 2.6.9 版本,因为目前这个版本比较稳定

> mkdir study/ > cd study> wget ffmpeg.org/releases/ffmpeg-2.6.9.tar.gz> tar -xvf ffmpeg-2.6.9.tar.gz> sudo chmod -R 777 ffmpeg-2.6.9

第二步:进入ffmpeg-2.6.9 文件夹,然后新建 build_android.sh 文件

> cd ffmpeg-2.6.9> touch build_android.sh

文件中添加如下内容:

#!/bin/bashmake cleanexport NDK=/home/user/IDE/sdk/ndk-bundleexport SYSROOT=$NDK/platforms/android-9/arch-arm/export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64export CPU=armexport PREFIX=$(pwd)/android/$CPUexport ADDI_CFLAGS="-marm"./configure --target-os=linux \--prefix=$PREFIX --arch=arm \--disable-doc \--enable-shared \--disable-static \--disable-yasm \--disable-symver \--enable-gpl \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-ffserver \--disable-doc \--disable-symver \--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \--enable-cross-compile \--sysroot=$SYSROOT \--extra-cflags="-Os -fpic $ADDI_CFLAGS" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAGmake cleanmakemake install

其中以下三个地方需要修改

export NDK=你的 NDK 所在路径
export SYSROOT=你的NDK中的平台
export TOOLCHAIN=你的 NDK 工具链交叉编译环境

一般情况下,只要配置好 NDK 路径即可,SYSROOTTOOLCHAIN可以不做修改,如果需要修改,请根据自己的 NDK 路径情况进行修改。其他配置参数不用改动

第三步:给 build_android.sh 添加可执行权限,并运行该脚本

> sudo chmod +x build_android.sh> sudo ./build_android.sh

运行完成后,会在 ffmpeg-2.6.9 文件夹下生成 android 目录,里面的内容如下:

arm├── include│   ├── libavcodec│   ├── libavdevice│   ├── libavfilter│   ├── libavformat│   ├── libavutil│   ├── libpostproc│   ├── libswresample│   └── libswscale└── lib    ├── libavcodec-56.so    ├── libavdevice-56.so    ├── libavfilter-5.so    ├── libavformat-56.so    ├── libavutil-54.so    ├── libpostproc-53.so    ├── libswresample-1.so    ├── libswscale-3.so

其中 include 目录下存放 ffmpeg 八大模块的头文件,lib 则存在放着编译后生成的带版本号的 .so 库文件。这些文件后续在使用 android NDK 进行 ffmpeg 视频转码编程中需要用到。

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android之智能问答机器人
  6. 3000套IOS android源码分享 7.2G UI素材
  7. Android(安卓)2.3新增API - DownloadManager
  8. Android(安卓)stutdio2.2 启动模拟器出现“/dev/kvm is not foun
  9. Android(安卓)Input设备debug技巧

随机推荐

  1. 学习JavaScript承诺只需要一些方向
  2. 带有换行符的文本区域的数据
  3. 根据下拉菜单的选择更改div的内容
  4. 正则表达式匹配所有字符到某个标记
  5. javascript中的属性类型
  6. [javascript 实践篇]——那些你不知道的
  7. 如何测试从实时网站提取数据的AJAX应用程
  8. Objective-C方法/函数调用。 (来自javascr
  9. Javascript函数的4种调用方法详解
  10. React.js中的setState vs replaceState