ffmpeg编译(android)

  • 懒人专用链接
    • //直接下载编译好的so库,供大家使用
      ffmpeg-android: https://github.com/tbxyxs/ffmpeg-android.git
  • 编译环境
    • ubuntu 17.10 x64
    • ndk r14b
  • 安装yasm
        sudo apt install yasm
  • ffmpeg源码git
        mkdir ffmpeg-android    cd ffmpeg-android    git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg    cd ffmpeg    git checkout -B latest n3.3.7  //注:n4.0以上的版本始终编译不过,报错,所以就降到了n3.3.7版本,n4.0过了的大佬写个贴吧
  • 编译脚本
        //将下面的脚本copy下来,保存为ffmpeg_build.sh(注意保存编码为unix编码,不要保存为windows编码类型了)    //记得手动修改下面的NDK_HOME变量,修改为你的ndk路径    ==============================赤果果的分界线=================================     #!/bin/bash        export NDK_HOME=/home/tolin/android/android-ndk-r14b    export NDK_HOST_PLATFORM=linux-x86_64        COMMON_OPTIONS="\        --prefix=android/ \        --target-os=android \        --disable-static \        --enable-shared \        --enable-small \        --disable-programs \        --disable-ffmpeg \        --disable-ffplay \        --disable-ffprobe \        --disable-doc \        --disable-symver \        --disable-asm \        "       function build_android {        ./configure \        --libdir=${PREFIX}/libs/armeabi-v7a \        --incdir=${PREFIX}/includes/armeabi-v7a \        --pkgconfigdir=${PREFIX}/pkgconfig/armeabi-v7a \        --arch=arm \        --cpu=armv7-a \        --cross-prefix="${NDK_HOME}/toolchains/arm-linux-androideabi-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/arm-linux-androideabi-" \        --sysroot="${NDK_HOME}/platforms/android-24/arch-arm/" \        --extra-cflags="-march=armv7-a -mfloat-abi=softfp -mfpu=neon" \        --extra-ldexeflags=-pie \        ${COMMON_OPTIONS}        make clean        make -j8         make install            ./configure \        --libdir=${PREFIX}/libs/arm64-v8a \        --incdir=${PREFIX}/includes/arm64-v8a \        --pkgconfigdir=${PREFIX}/pkgconfig/arm64-v8a \        --arch=aarch64 \        --cpu=armv8-a \        --cross-prefix="${NDK_HOME}/toolchains/aarch64-linux-android-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/aarch64-linux-android-" \        --sysroot="${NDK_HOME}/platforms/android-24/arch-arm64/" \        --extra-ldexeflags=-pie \        ${COMMON_OPTIONS}         make clean        make -j8         make install            ./configure \        --libdir=${PREFIX}/libs/x86 \        --incdir=${PREFIX}/includes/x86 \        --pkgconfigdir=${PREFIX}/pkgconfig/x86 \        --arch=x86 \        --cpu=i686 \        --cross-prefix="${NDK_HOME}/toolchains/x86-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/i686-linux-android-" \        --sysroot="${NDK_HOME}/platforms/android-24/arch-x86/" \        --extra-ldexeflags=-pie \        ${COMMON_OPTIONS}         make clean        make -j8         make install            ./configure \        --libdir=${PREFIX}/libs/x86_64 \        --incdir=${PREFIX}/includes/x86_64 \        --pkgconfigdir=${PREFIX}/pkgconfig/x86_64 \        --arch=x86_64 \        --cpu=x86_64 \        --cross-prefix="${NDK_HOME}/toolchains/x86_64-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/x86_64-linux-android-" \        --sysroot="${NDK_HOME}/platforms/android-24/arch-x86_64/" \        --extra-ldexeflags=-pie \        ${COMMON_OPTIONS}        make clean        make -j8         make install            };    PREFIX=$(pwd)/android/$CPU     build_android
  • 给脚本赋执行权限
        //将ffmpeg_build.sh 复制到ffmpeg/目录中,与./configure文件同级。        chmod +x ffmpeg_build.sh //赋可执行权限 
  • 执行脚本
        ./ffmpeg_build.sh  //等待编译完成吧,完成后就会在目录中出现一个android目录,里面libs目录就是我们要的结果了。

更多相关文章

  1. Android 权限清单
  2. Android Kotlin 动态申请权限
  3. Android水管工游戏的简单脚本
  4. android 权限列表
  5. Android 6.0动态权限管理
  6. ueventd.rc 处理硬件设备权限和android init 对其解析
  7. 【android】 conn.getResponseCode(); 返回-1,没报权限错,原因可能
  8. excel转Android string资源脚本
  9. Android中的权限

随机推荐

  1. Android(安卓)源码通过makefile配置文件
  2. 指尖上的Android之实战篇--说明篇(二)
  3. Android变身iOS?联想5S可别吹了
  4. android TextView 显示不全的问题解决,此
  5. Android中去掉或更改标题栏TitleBar,theme
  6. 【android】拼图实现浅谈(类似美图秀秀拼
  7. 我为什么要从一名死忠iPhone用户叛逃到An
  8. Android模拟键盘输入功能的实现
  9. Android使用后台线程提高用户体验
  10. Smart Browser Chooser 依網路速度自動切