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

相关文章

mac中资源库在哪? macOS资源库文件夹详解

《mac中资源库在哪?macOS资源库文件夹详解》经常使用Mac电脑的用户会发现,找不到Mac电脑的资源库,我们怎么打开资源库并使用呢?下面我们就来看看macOS资源库文件夹详解... 在 MACOS 系统中,「资源库」文件夹是用来存放操作系统和 App 设置的核心位置。虽然平时我们很少直接跟它打交道,但了

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

macOS升级后SVN升级

问题 svn: error: The subversion command line tools are no longer provided by Xcode. 解决 sudo chown -R $(whoami) /usr/local/Cellar brew install svn

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库,由 WebM 项目开发和维护,专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩,广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速支持以及灵活的接口设计,使其可以轻松集成到各种应用程序中。 libvpx 的安装和配置过程相对简单,用户可以从官方网站下载源代码