win10 WSL(Ubuntu)编译ffmpeg for Android
时间: 2024-05-06 13:17:44 浏览: 239
在WSL(Ubuntu)中编译ffmpeg for Android的步骤如下:
1. 安装必要的依赖项
在Ubuntu中打开终端,执行以下命令安装必要的依赖项:
```
sudo apt-get update
sudo apt-get install build-essential git autoconf automake libtool pkg-config zlib1g-dev cmake mercurial texinfo
```
2. 下载NDK
下载并解压Android NDK,可以从官网下载最新版:https://developer.android.com/ndk/downloads/
假设你将NDK解压到了 /opt/android-ndk-r21d 目录下。
3. 安装交叉编译工具链
执行以下命令安装交叉编译工具链:
```
cd /opt/android-ndk-r21d/build/tools/
./make_standalone_toolchain.py --arch arm64 --api 21 --stl=libc++ --install-dir /opt/android-toolchain-arm64
```
这里选择了 arm64 架构,API级别为 21,STL库为 libc++,安装目录为 /opt/android-toolchain-arm64。
4. 下载ffmpeg源码
执行以下命令下载ffmpeg源码:
```
git clone https://git.ffmpeg.org/ffmpeg.git
cd ffmpeg
```
5. 配置交叉编译环境
执行以下命令配置交叉编译环境:
```
export PATH=$PATH:/opt/android-toolchain-arm64/bin
export CC=aarch64-linux-android21-clang
export CXX=aarch64-linux-android21-clang++
export AR=aarch64-linux-android-ar
export AS=aarch64-linux-android-as
export LD=aarch64-linux-android-ld
export RANLIB=aarch64-linux-android-ranlib
export STRIP=aarch64-linux-android-strip
```
6. 配置ffmpeg编译选项
执行以下命令配置ffmpeg编译选项:
```
./configure \
--target-os=android \
--prefix=/opt/ffmpeg-android/arm64-v8a \
--enable-cross-compile \
--enable-pic \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-decoder=hevc_mediacodec \
--disable-static \
--enable-shared \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-postproc \
--disable-avdevice \
--disable-symver \
--disable-debug \
--disable-network \
--disable-everything \
--arch=aarch64 \
--cpu=armv8-a \
--cc=aarch64-linux-android21-clang \
--cxx=aarch64-linux-android21-clang++ \
--cross-prefix=aarch64-linux-android- \
--sysroot=/opt/android-toolchain-arm64/sysroot
```
这里开启了 mediacodec 硬解码支持,只支持 H.264 和 HEVC 硬解码,其他配置选项根据需要自行调整。
7. 编译ffmpeg
执行以下命令编译ffmpeg:
```
make -j4
sudo make install
```
这里使用了 4 核进行编译,可以根据实际情况进行调整。
8. 完成
编译完成后,ffmpeg库文件将会被安装到 /opt/ffmpeg-android/arm64-v8a 目录下。可以将这个目录打包成一个.aar库文件,用于Android Studio项目中的使用。
阅读全文