美文网首页
在MacOS上编译ExoPlayer的FFmpeg扩展

在MacOS上编译ExoPlayer的FFmpeg扩展

作者: 奈蜇 | 来源:发表于2019-11-26 16:13 被阅读0次

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

1.git源码

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

2.下载好NDK r15c
下载地址:https://dl.google.com/android/repository/android-ndk-r15c-darwin-x86_64.zip
3.写脚本

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

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

像这样: 脚本位置

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

不出意外你会看到这个 成功结果 好了编译完了

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

  1. https://github.com/google/ExoPlayer/tree/release-v2/extensions/ffmpeg

  2. https://blog.csdn.net/King1425/article/details/90410625

  3. https://medium.com/@ponychen/android-%E5%9C%A8-macos-%E4%B8%8A%E7%B7%A8%E8%AD%AF-exoplayer-%E7%9A%84-ffmpeg-library-5ca11359652

用法

别问,问就是不知道!!!略略略
好吧瞎说的
第一步: 取编译好的so文件
‎⁨MacOS10.14.5⁩ ▸ ⁨用户⁩ ▸ ⁨nlj⁩ ▸ ⁨ExoPlayer⁩ ▸ ⁨extensions⁩ ▸ ⁨ffmpeg⁩ ▸ ⁨src⁩ ▸ ⁨main⁩
这个目录下有个文件夹叫libs 里面有不同架构的so文件 (不懂的去百度)
第二步:取Java文件
还是这个目录下有个java文件夹,点到底里面有4个类
把它放到这里

快速方法 记得修复他们报的错
第三步: 官方教程
意思就是这样 ExoPlayerFactory.newSimpleInstance用法

别问什么意思 问就是你自己理解吧
好了这就完事了

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

相关文章

网友评论

      本文标题:在MacOS上编译ExoPlayer的FFmpeg扩展

      本文链接:https://www.haomeiwen.com/subject/bmqryctx.html