当前位置: 首页 > article >正文

cmake 编译ffmpeg的Android 的 so文件的cmake内容

  1. 确保你的开发环境已经设置好,包括安卓NDK和相应版本的FFmpeg源码。

  2. 下载并配置FFmpeg源码。

  3. git clone https://git.ffmpeg.org/ffmpeg.git
    
    cd ffmpeg
  4. 使用NDK-build或者cmake来编译FFmpeg。

5. 在ffmpeg路径下,新建build.sh , 下载MYSYS,安装好后,cd 到build.sh 所在路径。build.sh  中内容如下: 编译版本支持 :

armeabi-v7a', 'arm64-v8a',  'x86_64'

调整的自己的环境路径。


#ndk工具链路径 -可配置
#FFmpeg源码路径  修改成为自己的路劲
SRC_DIR=E:/ffmpeg/ffmpeg
DST_DIR=E:/ffmpeg/ffmpeg/build_an


#NDK路径
NDK=D:/Android/SDK/ndk/28.0.12433566/toolchains/llvm/prebuilt/windows-x86_64
API=30
 
cd $SRC_DIR
 
function build_onearch
{
    echo ">> configure $CPU start"
    ./configure \
      --enable-cross-compile \
      --enable-postproc   \
      --enable-gpl    \
      --target-os=android  \
      --prefix=$DST_DIR/$ANDROID_ABI  \
      --cross-prefix=$CROSS_PREFIX  \
      --cc=$CC \
      --cxx=$CXX \
      --strip=$NDK/bin/llvm-strip \
      --nm=$NDK/bin/llvm-nm \
      --arch=$ARCH \
      --sysroot=$NDK/sysroot \
      --enable-shared --disable-static \
      --enable-small --disable-programs --disable-doc \
      --enable-asm --enable-neon \
      --enable-jni --enable-mediacodec \
      --disable-vulkan  #fatal error: 'vulkan_beta.h' file not found
     --cpu=$CPU  \
    echo "<< configure $CPU finish"
    make clean
    make
    make install
}

 #编x86-64动态库
ANDROID_ABI=x86-64
CPU=x86_64
ARCH=x86_64 
CROSS_PREFIX=$NDK/bin/x86_64-linux/x64
CC=${CROSS_PREFIX}clang
CXX=${CROSS_PREFIX}clang++
build_onearch


 #编arm64-v8a动态库
ANDROID_ABI=arm64-v8a
ARCH=arm64
CPU=armv8-a
CROSS_PREFIX=$NDK/bin/aarch64-linux-android$API-
CC=${CROSS_PREFIX}clang
CXX=${CROSS_PREFIX}clang++
build_onearch

 #编armeabi-v7a动态库
ANDROID_ABI=armeabi-v7a
ARCH=arm
CPU=armv7-a
CROSS_PREFIX=$NDK/bin/armv7a-linux-androideabi$API-
CC=${CROSS_PREFIX}clang
CXX=${CROSS_PREFIX}clang++
build_onearch


http://www.kler.cn/a/499922.html

相关文章:

  • 基于 JavaEE 的影视创作论坛
  • flutter web 路由问题
  • 湘潭大学人机交互复习
  • 深度解析:语言模型的推理能力与强化学习优化
  • 人工智能与物联网:智慧城市的未来
  • 25/1/11 嵌入式笔记<esp32> 初入esp32
  • C语言二级考试
  • “负载均衡”出站的功能、原理与场景案例
  • 投机解码论文阅读:Falcon
  • C#语言的语法糖
  • 【算法与数据结构】—— 回文问题
  • Unity 的 Vector3 与 Babylon.js 的 Vector3:使用上的异同
  • 前端学习-事件监听以及案例(二十四)
  • fastadmin插件wanlshop使用方法
  • C++语言的文件操作
  • 《探秘开源多模态神经网络模型:AI 新时代的万能钥匙》
  • Virtualbox7.1.4安装Proxmox
  • React(二)——Admin主页/Orders页面/Category页面
  • Flutter项目适配鸿蒙
  • 微前端介绍
  • 索引页与B+树的关系
  • halcon三维点云数据处理(十)locate_cylinder_3d
  • VS Code的设置功能以及多层级的设置方式与解密