linux下ffmpeg编译成so文件,Linux环境编译ffmpeg生成.so库

ffmpeg官网

编译错误:

make: *** No rule to make target '/tests/Makefile'.  Stop.

Unknown option "--disable-ffserver".

See ./configure --help for available options.

出现这个错误的原因可能是ffmpeg版本过高或者NDK版本过高

我的环境:

NDK(android-ndk-r14b-linux-x86_64.zip)

FFmpeg(ffmpeg-3.3.tar.gz)

先下载安装NDK

NDK归档历史版本下载

下载android-ndk-r14b-linux-x86_64.zip 然后解压  命令:unzip  android-ndk-r14b-linux-x86_64.zip  如果未安装工具软件先安装压缩工具

可以下载再放入到指定文件夹 或者直接下载

mkdir ndk_build//新建文件夹

cd ndk_build//进入到文件夹

wget +linux版本的下载链接地址//下载ndk

unzip + 压缩文件//解压

配置ndk(进入环境配置后在最后添加配置路径  ESC键退出编辑 然后保存退出  ,记得执行环境变量)

vim ~/.bashrc//进入环境变量配置

//以下代码添加到文末

export NDKROOT=/home/ndk_build/android-ndk-r14b//配置你的安装路径

export PATH=$NDKROOT:$PATH//配置路径

:wq!//先按Esc键然后输入wq!保存退出

source ~/.bashrc//执行环境变量

ndk-build//查看是否安装成功,只要不是显示ndk-build not found,则表示安装成功

命令下载ffmpeg版本  建议不要太高  4.1.1我没有编译成功

wget http://ffmpeg.org/releases/ffmpeg-3.3.tar.gz

tar -xzf ffmpeg-3.3.tar.gz

编写编译(.sh)脚本

创建编译脚本

在ffmpeg 跟目录下创建android_build.sh(名称随意):

然后编辑该脚本

touch android_build.sh//创建脚本文件

vim android_build.sh

然后复制一下代码使用Shift+Insert键粘贴到脚本中,然后只修改配置NDK路径,注意检查文件copy是否全

#!/bin/bash

make clean

export NDK=/home/ndk_build/android-ndk-r14b

export SYSROOT=$NDK/platforms/android-9/arch-arm/

export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

export CPU=arm

export PREFIX=$(pwd)/android/$CPU

export 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_FLAG

make clean

make

make install

先按Esc键然后输入wq!保存退出 然后执行下面代码

chmod +x android_build.sh

然后修改configure,如果你不修改的话,编译出来过后的.so文件后面会有一串数字,无法使用,所以得修改他的命名规则

将该文件中的如下四行:(输入/SLIBNAME快速搜索定位)

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)'

先按Esc键然后输入wq!保存退出

最好编译.sh文件

./android_build.sh

fb06d3ec5c148eb850d379f9795c8a05.png

然后等待编译完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值