Android ffmpeg全平台编译

一 前言

此文介绍了如何编译ffmpeg

先交代一下工具以及版本,这是必须项,不然会由于版本不同而脚本一样会有各种各样的问题

  1. ffmpeg 3.2.5
  2. ndk r14b
  3. macOS操作系统

那么此文有什么用

  1. 编译ffmpeg全android cpu版本 静态库(.a) 或者 动态库(.so)
  2. 集成h264软编码
  3. 将ffmpeg的各种so合并打包成一个

ok 在正式开始之前,先介绍下原文,此文是在原文基础上略加修改的,原文是编译出全平台的so档,包括aac/h264编码

https://github.com/mabeijianxi/FFmpeg4Android

二 编译

如果没有编译需要,直接拿android_more目录下的合成的lib档就好

如果想自己编译,请按照以下步骤

  1. 下载源码
  2. 将ffmpeg-3.2.5目录下的所有sh文件中 ndk目录指向自己的目录
  3. 编译之前,删掉android_more目录下的所有资料,确保生成的资料不是本文已经编译好的
  4. 打开命令行,cd到ffmpeg-3.2.5目录,输入./zed_build_all_more.sh

等待15-20分钟后,会在android_more目录下产生编译好的文件,其中lib目录下的.a是ffmpeg各种静态档,so是这些.a的合成动态档,开发者按需拿取

三 调试

1. 如何知道ffmpeg脚本的编译项是什么意思

打开命令行,cd到ffmpeg-3.2.5目录,输入./configure --help,会出现当前版本的ffmpeg的编译项

 

2. 如果本文最后没有出现合成后的so档

请单独运行ffmpeg-3.2.5目录下以so结尾的sh档

3. 如何编译出ffmpeg的各种.so动态档

  • 在libx264目录
    将所有sh档修改ndk目录为自己的指定目录,
    修改所有的sh脚本
    --enable-shared \
    --disable-static \
    修改为
    --disable-shared \
    --enable-static \
    编译运行
    x264_build_all.sh
    编译结束会在libx264-android产生so档(之前的是.a档)
  • 在ffmpeg-3.2.5目录
    以arm架构为例 参考zed_arm_build_ex.sh(运行此脚本产生ffmpeg的各种so动态档)与zed_arm_build_more.sh的区别,其它架构可以仿照arm架构的来写
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值