美文网首页
FFmpeg音频播放器(2)-编译动态库

FFmpeg音频播放器(2)-编译动态库

作者: 星星y | 来源:发表于2019-01-22 10:13 被阅读0次

    FFmpeg音频播放器(1)-简介
    FFmpeg音频播放器(2)-编译动态库
    FFmpeg音频播放器(3)-将FFmpeg加入到Android中
    FFmpeg音频播放器(4)-将mp3解码成pcm
    FFmpeg音频播放器(5)-单输入filter(volume,atempo)
    FFmpeg音频播放器(6)-多输入filter(amix)
    FFmpeg音频播放器(7)-使用OpenSLES播放音频
    FFmpeg音频播放器(8)-创建FFmpeg播放器
    FFmpeg音频播放器(9)-播放控制
    本章主要介绍了FFmpeg动态库so的编译

    下载NDK和FFmpeg源码

    不要用Android Studio默认的NDK库,不然编译时会出现一些兼容错误,就用ndk-r15c(win64|linux64|mac64)版本
    FFmpeg官网下载源码,我用的时3.2.12

    解压文件,编写编译脚本

    将ndk和ffmpeg解压

    tar -zxf ffmpeg-3.2.12.tar.gz
    unzip android-ndk-r15c-darwin-x86_64.zip -d android-ndk-r15c
    

    进入ffmpeg目录,修改configure文件

    cd ffmpeg-3.2.12
    
    SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
    LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
    SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
    SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
    

    替换为

    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
    LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
    SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
    SLIB_INSTALL_LINKS='$(SLIBNAME)'
    

    编写build_android.sh脚本

    #!/bin/sh
    NDK=/Users/xxx/Desktop/soft/android-ndk-r15c
    SYSROOT=$NDK/platforms/android-21/arch-arm
    TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
    function build_one
    {
    ./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --disable-static \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --disable-avdevice \
    --disable-doc \
    --disable-symver \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=arm \
    --enable-cross-compile \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG
    make clean
    make
    make install
    }
    CPU=arm
    PREFIX=$(pwd)/android/$CPU
    ADDI_CFLAGS="-marm"
    build_one
    

    添加执行权限,执行sh脚本

    chmod +x build_android.sh
    
    ./build_android.sh
    

    整个编译过程10分钟左右(mbp i5配置),编译完成后,可以在android目录看到相关so文件和头文件


    so文件目录

    相关文章

      网友评论

          本文标题:FFmpeg音频播放器(2)-编译动态库

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