exoplayer与ffmpeg_在MacOS上编译ExoPlayer的FFmpeg扩展

2023-10-19 19:40

本文主要是介绍exoplayer与ffmpeg_在MacOS上编译ExoPlayer的FFmpeg扩展,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

没有前言 就是视频没声音 然后ExoPlayer音频可以FFmpeg扩展

1.git源码

git clone https://github.com/google/ExoPlayer.git

EXOPLAYER_ROOT="$(pwd)"

FFMPEG_EXT_PATH="${EXOPLAYER_ROOT}/extensions/ffmpeg/src/main"

HOST_PLATFORM="darwin-x86_64"

NDK_PATH=/Users/nlj/android-ndk-r15c #这里填你解压出来的地址

COMMON_OPTIONS="\

--target-os=android \

--disable-static \

--enable-shared \

--disable-doc \

--disable-programs \

--disable-everything \

--disable-avdevice \

--disable-avformat \

--disable-swscale \

--disable-postproc \

--disable-avfilter \

--disable-symver \

--disable-swresample \

--enable-avresample \

--enable-decoder=vorbis \

--enable-decoder=opus \

--enable-decoder=flac \

--enable-decoder=alac \

--enable-decoder=pcm_mulaw \

--enable-decoder=pcm_alaw \

--enable-decoder=mp3 \

--enable-decoder=amrnb \

--enable-decoder=amrwb \

--enable-decoder=aac \

--enable-decoder=ac3 \

--enable-decoder=eac3 \

--enable-decoder=dca \

--enable-decoder=mlp \

--enable-decoder=truehd \

" && \

cd "${FFMPEG_EXT_PATH}/jni" && \

(git -C ffmpeg pull || git clone git://source.ffmpeg.org/ffmpeg ffmpeg) && \

cd ffmpeg && git checkout release/4.0 && \

./configure \

--libdir=android-libs/armeabi-v7a \

--arch=arm \

--cpu=armv7-a \

--cross-prefix="${NDK_PATH}/toolchains/arm-linux-androideabi-4.9/prebuilt/${HOST_PLATFORM}/bin/arm-linux-androideabi-" \

--sysroot="${NDK_PATH}/platforms/android-9/arch-arm/" \

--extra-cflags="-march=armv7-a -mfloat-abi=softfp" \

--extra-ldflags="-Wl,--fix-cortex-a8" \

--extra-ldexeflags=-pie \

${COMMON_OPTIONS} \

&& \

make -j4 && make install-libs && \

make clean && ./configure \

--libdir=android-libs/arm64-v8a \

--arch=aarch64 \

--cpu=armv8-a \

--cross-prefix="${NDK_PATH}/toolchains/aarch64-linux-android-4.9/prebuilt/${HOST_PLATFORM}/bin/aarch64-linux-android-" \

--sysroot="${NDK_PATH}/platforms/android-21/arch-arm64/" \

--extra-ldexeflags=-pie \

${COMMON_OPTIONS} \

&& \

make -j4 && make install-libs && \

make clean && ./configure \

--libdir=android-libs/x86 \

--arch=x86 \

--cpu=i686 \

--cross-prefix="${NDK_PATH}/toolchains/x86-4.9/prebuilt/${HOST_PLATFORM}/bin/i686-linux-android-" \

--sysroot="${NDK_PATH}/platforms/android-9/arch-x86/" \

--extra-ldexeflags=-pie \

--disable-asm \

${COMMON_OPTIONS} \

&& \

make -j4 && make install-libs && \

make clean

cd "${FFMPEG_EXT_PATH}"/jni && \

${NDK_PATH}/ndk-build APP_ABI="armeabi-v7a arm64-v8a x86" -j4

写好了请把它放到源码根目录

像这样:

a8a05bc35c40

脚本位置

4.运行脚本

打开你的终端把脚本拖过去然后回车

不出意外你会看到这个

a8a05bc35c40

成功结果好了编译完了

出意外的你可以看看这些教程:

用法

别问,问就是不知道!!!略略略

好吧瞎说的

第一步: 取编译好的so文件

‎⁨MacOS10.14.5⁩ ▸ ⁨用户⁩ ▸ ⁨nlj⁩ ▸ ⁨ExoPlayer⁩ ▸ ⁨extensions⁩ ▸ ⁨ffmpeg⁩ ▸ ⁨src⁩ ▸ ⁨main⁩

这个目录下有个文件夹叫libs 里面有不同架构的so文件 (不懂的去百度)

第二步:取Java文件

还是这个目录下有个java文件夹,点到底里面有4个类

把它放到这里

a8a05bc35c40

快速方法记得修复他们报的错

第三步:

a8a05bc35c40

官方教程

意思就是这样

a8a05bc35c40

ExoPlayerFactory.newSimpleInstance用法

别问什么意思 问就是你自己理解吧

好了这就完事了

如果你想喷我为什么不生成aar包,抱歉我嫌麻烦

这篇关于exoplayer与ffmpeg_在MacOS上编译ExoPlayer的FFmpeg扩展的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/241946

相关文章

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时