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

Android 编译 ffmpeg7.1.1

将ffmpeg-7.1.1目录中configure文件中的:

#SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' 
#LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
#SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)' 
#SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'#替换为:
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'

编译脚本:

#!/bin/bash
NDK=/Users/xuyan/Library/Android/sdk/ndk/26.1.10909125
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64
API=26
OPENSSL=/Users/xuyan/Desktop/openssl-3.5.2/function build_android
{
echo "Compiling FFmpeg for $CPU"
./configure \--prefix=$PREFIX \--enable-shared \--enable-static \--enable-protocol=http \--enable-protocol=https \--enable-openssl \--enable-protocol=ssl \--enable-protocol=rtsp \--enable-protocol=rtmp \--enable-protocol=tcp \--enable-protocol=udp \--enable-protocol=file \--enable-protocol=tls \--enable-network \--disable-doc \--disable-programs \--disable-avdevice \--disable-avfilter \--disable-postproc \--disable-symver \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--enable-pic \--disable-gpl \--target-os=android \--arch=$ARCH \--cpu=$CPU \--cc=$CC \--cxx=$CXX \--enable-cross-compile \--sysroot=$TOOLCHAIN/sysroot \--cross-prefix=$CROSS_PREFIX \--extra-cxxflags="-fPIC -DPIC" \--extra-ldflags="-L$OPENSSL/$CPU/lib -fPIC" \--extra-cflags="-I$OPENSSL/$CPU/include -Os -fPIC -DPIC -DANDROID $OPTIMIZE_CFLAGS" \$ADDITIONALmake cleanmake -j12make installecho "The Compilation of FFmpeg for $CPU is completed"
}echo "Begining Compiling FFmpeg for $CPU without ========= neon ========"
#armv8-a
ARCH=arm64
CPU=armv8-a
CC=$TOOLCHAIN/bin/aarch64-linux-android${API}-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android${API}-clang++
PREFIX=$(pwd)/android/$CPU
CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU"
ADDITIONAL=""
build_androidecho "==================================================================="
#armv7-a
ARCH=arm
CPU=armv7-a
CC=$TOOLCHAIN/bin/armv7a-linux-androideabi${API}-clang
CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi${API}-clang++
CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU"
ADDITIONAL=""
build_android# echo "Begining Compiling FFmpeg for $CPU with ========= neon ========"
# #armv8-a
# ARCH=arm64
# CPU=armv8-a
# CC=$TOOLCHAIN/bin/aarch64-linux-android${API}-clang
# CXX=$TOOLCHAIN/bin/aarch64-linux-android${API}-clang++
# PREFIX=$(pwd)/android/$CPU-neon-hard
# CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
# OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU "
# ADDITIONAL="--enable-asm \
# 	--enable-neon \
# 	--enable-jni \
# 	--enable-mediacodec \
# 	--enable-decoder=h264_mediacodec \
# 	--enable-hwaccel=h264_mediacodec \
# 	--enable-decoder=hevc_mediacodec"
# build_android# #armv7-a
# ARCH=arm
# CPU=armv7-a
# CC=$TOOLCHAIN/bin/armv7a-linux-androideabi${API}-clang
# CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi${API}-clang++
# CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
# PREFIX=$(pwd)/android/$CPU-neon-hard
# OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "
# ADDITIONAL="--enable-asm \
# 	--enable-neon \
# 	--enable-jni \
# 	--enable-mediacodec \
# 	--enable-decoder=h264_mediacodec \
# 	--enable-hwaccel=h264_mediacodec \
# 	--enable-decoder=hevc_mediacodec"
# build_android# echo "==================================================================="
# #x86
# ARCH=x86
# CPU=x86
# CC=$TOOLCHAIN/bin/i686-linux-android${API}-clang
# CXX=$TOOLCHAIN/bin/i686-linux-android${API}-clang++
# CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
# PREFIX=$(pwd)/android/$CPU
# OPTIMIZE_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
# ADDITIONAL=""
# build_android# echo "==================================================================="
# #x86_64
# ARCH=x86_64
# CPU=x86-64
# CC=$TOOLCHAIN/bin/x86_64-linux-android${API}-clang
# CXX=$TOOLCHAIN/bin/x86_64-linux-android${API}-clang++
# CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
# PREFIX=$(pwd)/android/$CPU
# OPTIMIZE_CFLAGS="-march=$CPU -msse4.2 -mpopcnt -m64 -mtune=intel"
# ADDITIONAL=""
# build_android
http://www.dtcms.com/a/377940.html

相关文章:

  • 什么是 源网荷储一体化和多能互补(光储充微电网解决方案)
  • SpringBoot集成ElasticSearch
  • STL库——AVL树
  • 构建实时消息应用:Spring Boot + Vue 与 WebSocket 的有机融合
  • Aosp13 手机sim卡信号格显示修改
  • 小杰机器学习(five)——PyTorch、Tensor(torch库)、Tensor的基本属性、连续性、张量、随机树种子(seed)。
  • ARM 架构的异常模型(Exception Model)
  • 深度学习——基于 PyTorch 的 CBOW 模型实现自然语言处理
  • Spring Cloud Alibaba快速入门03-OpenFeign进阶用法
  • 【PyTorch】多对象分割
  • npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚
  • NodeJS 8 ,从 0 到 1:npm 包发布与更新全流程指南( 含多场景适配与踩坑总结 )
  • Debian 系统上安装与配置 MediaMTX
  • 【PyTorch训练】准确率计算(代码片段拆解)
  • 【Linux】线程池——详细讲解
  • Linux epoll 机制的核心控制函数——`epoll_ctl`
  • 粒子群优化(PSO)算法详解:从鸟群行为到强大优化工具
  • 从两分钟到毫秒级:一次真实看板接口性能优化实战(已上线)
  • Java入门级教程17——利用Java SPI机制制作验证码、利用Java RMI机制实现分布式登录验证系统
  • 【Redis】常用数据结构之List篇:从常用命令到典型使用场景
  • 掌握单元测试的利器:JUnit 注解从入门到精通
  • 【Vue2手录05】响应式原理与双向绑定 v-model
  • spring项目部署后为什么会生成 logback-spring.xml文件
  • Java 日期字符串万能解析工具类(支持多种日期格式智能转换)
  • 在VS2022的WPF仿真,为什么在XAML实时预览点击 ce.xaml页面控件,却不会自动跳转到具体代码,这样不方便我修改代码,
  • 【数组】区间和
  • Qt 基础编程核心知识点全解析:含 Hello World 实现、对象树、坐标系及开发工具使用
  • 解决推理能力瓶颈,用因果推理提升LLM智能决策
  • 【大前端】常用 Android 工具类整理
  • Gradle Task的理解和实战使用