Linux环境下编译FFmpeg
2018-02-28 本文已影响0人
Pro47x
记录一下自己的学习过程
1.首先创建一个Linux虚拟机,我用的是阿里云服务器ubuntu;
2.进入Linux根目录,创建NDK文件夹,使用wget命令下载NDK,使用 unzip android-ndk-r14b-linux-x86_64.zip 解压ndk压缩包;
3.配置NDK环境变量,使用 vim ~/.bashrc 命令打开bashrc文件,在尾部增加
export NDKROOT=/usr/ndk/android-ndk-r14b
export PATH=$NDKROOT:$PATH
并使用 source~/.bashrc 更新环境变量;
4.进入Linux根目录,创建FFmpeg文件夹,使用wget命令下载FFmpeg,使用 tar -xzf 命令解压;
5.创建一个sh脚本
#!/bin/bash
make clean
export NDK=/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
6.修改FFmpeg目录下的configure文件,把其中原来的改成如下
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
6.运行脚本即可编译FFmpeg了,然后把目录下生成的android文件夹中的so和头文件导入到android studio即可。