相关文章推荐
精彩文章免费看

在MacOS上编译ExoPlayer的FFmpeg扩展

没有前言 就是视频没声音 然后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

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

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

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

  • 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个类
    把它放到这里

     
    推荐文章