美文网首页程序员
编译Android平台可用的ffmpeg源码

编译Android平台可用的ffmpeg源码

作者: 凌烟醉卧 | 来源:发表于2019-09-30 10:18 被阅读0次

    这篇文章的目的是使用NDK编译ffmpeg源码,将编译成功的库文件在Android平台使用开发音视频。

    我这里使用的是xShell链接阿里云的服务器,当然你也可以使用自己的Linux操作平台,我这里使用的是Ubantu。

    然后下载NDK,根据自己的平台可以下载最新版本或者旧版本,我这里使用的是版本17的NDK,完成后解压。

    然后下载ffmpeg源码,下载并解压。

    最终如下所示


    新建一个build.sh文件,放在ffmpeg-4.0.2目录下,里面执行的是shell语句:
    shell语法可以查看shell脚本记录

    #!/bin/bash
    
    CPU=arm-linux-androideabi
    
    TOOLCHAIN=$NDK_ROOT/toolchains/$CPU-4.9/prebuilt/linux-x86_64
    FLAGS="-isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security  -O0 -fPIC"
    INCLUDES=" -isystem $NDK_ROOT/sources/android/support/include"
    
    PREFIX=`pwd`/android/armeabi-v7a_lsn11
    
    ./configure \
    --prefix=$PREFIX \
    --enable-small \
    --disable-programs \
    --disable-avdevice \
    --disable-encoders \
    --disable-muxers \
    --disable-filters \
    --enable-cross-compile \
    --cross-prefix=$TOOLCHAIN/bin/$CPU- \
    --disable-shared \
    --enable-static \
    --sysroot=$NDK_ROOT/platforms/android-21/arch-arm \
    --extra-cflags="$FLAGS $INCLUDES" \
    --extra-cflags="-isysroot $NDK_ROOT/sysroot/" \
    --arch=arm \
    --target-os=android 
    

    注意

    • FLAGS和INCLUDES是从AndroidStudio可以获得,复制过来可能编译会报错,把报错的代码删除即可:
    externalNativeBuild/xxx/build.ninja
    
    • build.sh中的NDK路径如何设置?
      定位到android-ndk-r17c目录下,执行pwd


    然后设置NDK的环境变量即可:

    export NDK=/root/softffmpeg/android-ndk-r17c
    

    查看NDK的路径:


    • 如果执行build.sh没有权限,则需要执行:
    chmod +x build.sh 
    

    build.sh的作用是执行configure,生成Makefile文件,下面是成功执行的结果:


    接着执行

    make
    make install
    

    执行成功会在当前目录下生成一个android目录,里面就是所需的静态库和头文件。


    通过执行

    tree lib/
    

    可以看到静态库的树形结构

    相关文章

      网友评论

        本文标题:编译Android平台可用的ffmpeg源码

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