欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 编译Android平台使用的FFmpeg库

编译Android平台使用的FFmpeg库

2025/1/26 15:36:16 来源:https://blog.csdn.net/bogongjie/article/details/145276915  浏览:    关键词:编译Android平台使用的FFmpeg库

目录

前言

一、编译环境

二、搭建环境

1.安装MSYS2

2.更新系统包

2.1 打开MSYS2 MinGW 64-bit终端(mingw64.exe)

2.2 更新所有软件包到最新版本

2.3 安装必要的工具和库。

3. 克隆FFmpeg源码

4. 配置编译选项

5. 执行编译

总结

前言

记录学习编译android平台的ffmpeg库过程。本次介绍只是编译arm64-v8a 

一、编译环境

环境:Win10 + MSYS2

NDK版本: 25.1.8937393

FFmpeg版本:ffmpeg-7.1

二、搭建环境

1.安装MSYS2

请前往MSYS2官方网站下载并按照说明进行安装。

安装一直下一步就可以了。默认安装路径:C:\msys64

2.更新系统包

        2.1 打开MSYS2 MinGW 64-bit终端(mingw64.exe

在MINGW64 终端下windows的C盘和D盘的盘符显示的/c/ 和/d/, 可以用df -h命令查看(使用命令查看的时候,需要等待一会):

        2.2 更新所有软件包到最新版本

pacman -Syu

如果提示需要重启shell,请按指示操作,并再次运行上述命令直到不再提示更新。

        2.3 安装必要的工具和库

pacman -S base-devel mingw-w64-x86_64-toolchain git

3. 克隆FFmpeg源码

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg

在电脑上的路径:C:\msys64\home\Administrator\ffmpeg

4. 配置编译选项

在ffmpeg下面创建build_android.sh文件。文件内容如下:

/d/Android/SDK/ndk/25.1.8937393  为ndk为我电脑上的位置。其他人使用的时候可以把这个提取出来做一个变量修改一下。我懒的改😀😀

#!/bin/bash#build arm64-v8a 
export CC="/d/Android/SDK/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/bin/aarch64-linux-android21-clang"
export CXX="/d/Android/SDK/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/bin/aarch64-linux-android21-clang++"
export AR="/d/Android/SDK/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/bin/llvm-ar"
export AS="/d/Android/SDK/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/bin/llvm-as"
export NM="/d/Android/SDK/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/bin/llvm-nm"
export STRIP="/d/Android/SDK/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/bin/llvm-strip"
export RANLIB="/d/Android/SDK/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/bin/llvm-ranlib"echo "CC is set to: $CC"
echo "CXX is set to: $CXX"
echo "AR is set to: $AR"
echo "AS is set to: $AS"
echo "NM is set to: $NM"
echo "STRIP is set to: $STRIP"
echo "RANLIB is set to: $RANLIB"
$CC --version./configure \--prefix=android/arm64-v8a \--target-os=android \--arch=aarch64 \--cpu=armv8-a \--sysroot=/d/Android/SDK/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot \--enable-cross-compile \--enable-shared \--disable-static \--disable-doc \--disable-symver \--disable-programs \--disable-everything \--enable-decoder=libx264,h264,hevc,aac \--enable-parser=h264,hevc,aac \--enable-demuxer=mov \--enable-muxer=rtsp \--enable-protocol=file,rtsp,rtmp \--extra-cflags="-Os -fPIC" \--extra-ldflags="" \--cc="$CC" \--cxx="$CXX" \--strip="$STRIP"make clean
make -j$(nproc)
make install

里面有好多的echo输出,加这个是刚开始编译的时候一直失败,后来测试发现export的环境变量失败了。

configure 下面的参数还是很多的。不一一介绍了,需要的同学可以自己搜索一下。可能主要是编码和解码格式的支持,参数是--enable-decoder , --enable-parser

5. 执行编译

给脚本赋予可执行权限并运行

chmod +x build_android.sh
./build_android.sh

编译成功后,直接显示这样:

在ffmpeg目录下会生成一个android文件夹,里面有arm64-v8a

如果有需要的同学也可以直接下载哈

下载地址


总结

以上就是本次要讲的内容。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com