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

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Java编译错误java.lang.NoSuchFieldError的解决方案详析

《Java编译错误java.lang.NoSuchFieldError的解决方案详析》java.lang.NoSuchFieldError是Java中的一种运行时错误,:本文主要介绍Java编译错... 目录前言解决方案1. 统一JDK版本环境2. 优化maven-compiler-plugin配置3. 清

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

macOS彻底卸载Python的超完整指南(推荐!)

《macOS彻底卸载Python的超完整指南(推荐!)》随着python解释器的不断更新升级和项目开发需要,有时候会需要升级或者降级系统中的python的版本,系统中留存的Pytho版本如果没有卸载干... 目录MACOS 彻底卸载 python 的完整指南重要警告卸载前检查卸载方法(按安装方式)1. 卸载

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

基于Java和FFmpeg实现视频压缩和剪辑功能

《基于Java和FFmpeg实现视频压缩和剪辑功能》在视频处理开发中,压缩和剪辑是常见的需求,本文将介绍如何使用Java结合FFmpeg实现视频压缩和剪辑功能,同时去除数据库操作,仅专注于视频处理,需... 目录引言1. 环境准备1.1 项目依赖1.2 安装 FFmpeg2. 视频压缩功能实现2.1 主要功

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本