[FFMPEG-Android利用ndk(r21)编译最新版本ffmpeg4.3.1]()

前言

​ 需要用手机播放rtsp流媒体的直播源,俗话说的好,只要是音视频相关的,都离不开FFmpeg,但是FFmpeg是由C/C++编写的,Android的语言是Java,所以需要Java调动C++,而且打包成apk需要.so的文件,所以需要先将FFmpeg源码编译Java可以识别的.so。

配置环境

​ 系统:win10

​ 软件:VMware

​ 环境:ubuntu-18.04.4

1.准备工作

1.1创建新文件ijk

cd /usr
sudo mkdir ijk

1.2下载FFmpeg源码

cd ijk
sudo wget https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.xz

1.3下载最新ndk

sudo wget https://dl.google.com/android/repository/android-ndk-r21b-linux-x86_64.zip

1.4解压安装包

sudo tar -xvf ffmpeg-4.3.1.tar.xz
sudo unzip android-ndk-r21b-linux-x86_64.zip

2.开始编译

2.1 下载vim (如果有可以忽略)

sudo apt install vim

2.2编写脚本b.sh

cd ffmpeg-4.3.1
vim b.sh
#b.sh脚本内容
#!/bin/bash
#改为自己的NDK路径
NDK=/usr/ijk/android-ndk-r21b
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
#尽量不要太高
API=23

function build_android
{
echo "Compiling FFmpeg for $CPU"
./configure \
    --prefix=$PREFIX \
    --disable-neon \
    --disable-hwaccels \
    --disable-gpl \
    --disable-postproc \
    --enable-shared \
    --enable-jni \
    --disable-mediacodec \
    --disable-decoder=h264_mediacodec \
    --disable-static \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-avdevice \
    --disable-doc \
    --disable-symver \
    --cross-prefix=$CROSS_PREFIX \
    --target-os=android \
    --arch=$ARCH \
    --cpu=$CPU \
    --cc=$CC
    --cxx=$CXX
    --enable-cross-compile \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
echo "The Compilation of FFmpeg for $CPU is completed"
}

#armv8-a
ARCH=arm64
CPU=armv8-a
CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-march=$CPU"
build_android

2.3执行脚本

./b.sh

2.4成功

image-20200827140556187

3.报错解决。

3.1make: command not found

​ 解析:系统没有安装make。

​ 解决办法:下载make。

sudo apt-get update

标签: none

添加新评论