码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • android api 34 编译ffmpeg with libfdk-aac


    • 利用ffmpeg-android-maker编译,地址Javernaut/ffmpeg-android-maker: Contains a script that assembles FFmpeg library for Android (github.com)
    • libfdk-aac编译脚本
    1. #!/bin/bash
    2. NDK=$ANDROID_NDK_HOME # 这里需要替换成你本地的 NDK 路径
    3. HOST_TAG=linux-x86_64
    4. TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_TAG
    5. ANDROID_LIB_PATH="$(pwd)/android"
    6. API=34
    7. function build_android
    8. {
    9. echo "Build fdk-aac for android $CPU"
    10. ./configure \
    11. --host=$HOST \
    12. --enable-shared \
    13. --enable-static \
    14. --prefix="$ANDROID_LIB_PATH/$CPU" \
    15. CPPFLAGS="-fPIC"
    16. make clean
    17. make -j8
    18. make install
    19. echo "Build fdk-aac for android $CPU completed"
    20. }
    21. # armeabi-v7a
    22. CPU=armv7-a
    23. HOST=arm-linux-android
    24. export AR=$TOOLCHAIN/bin/llvm-ar
    25. export AS=$TOOLCHAIN/bin/llvm-as
    26. export LD=$TOOLCHAIN/bin/ld
    27. export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
    28. export STRIP=$TOOLCHAIN/bin/llvm-strip
    29. export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang
    30. export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++
    31. #export LD=${CC}
    32. build_android
    33. # arm64-v8a
    34. CPU=armv8-a
    35. HOST=aarch64-linux-android
    36. export AR=$TOOLCHAIN/bin/llvm-ar
    37. export AS=$TOOLCHAIN/bin/llvm-as
    38. export LD=$TOOLCHAIN/bin/ld
    39. export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
    40. export STRIP=$TOOLCHAIN/bin/llvm-strip
    41. export CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang
    42. export CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++
    43. #export LD=${CC}
    44. build_android
    • 修改ffmpeg-android-maker/scripts/ffmpeg/build.sh 中 configure部分内容,这里添加了disable-doc,否则会报cc1错误
    1. ./configure \
    2. --prefix=${BUILD_DIR_FFMPEG}/${ANDROID_ABI} \
    3. --enable-cross-compile \
    4. --target-os=android \
    5. --arch=${TARGET_TRIPLE_MACHINE_ARCH} \
    6. --sysroot=${SYSROOT_PATH} \
    7. --cc=${FAM_CC} \
    8. --cxx=${FAM_CXX} \
    9. --ld=${FAM_LD} \
    10. --ar=${FAM_AR} \
    11. --as=${FAM_CC} \
    12. --nm=${FAM_NM} \
    13. --ranlib=${FAM_RANLIB} \
    14. --strip=${FAM_STRIP} \
    15. --extra-cflags="-O3 -fPIC $DEP_CFLAGS" \
    16. --extra-ldflags="$DEP_LD_FLAGS" \
    17. --enable-shared \
    18. --disable-static \
    19. --disable-vulkan \
    20. --enable-nonfree \
    21. --enable-libfdk-aac \
    22. --disable-doc \
    23. --pkg-config=${PKG_CONFIG_EXECUTABLE} \
    24. ${EXTRA_BUILD_CONFIGURATION_FLAGS} \
    25. $ADDITIONAL_COMPONENTS || exit 1
    • export PKG_CONFIG_PATH=${FDK_PKG_CONFIG_PATH}:${PKG_CONFIG_PATH},即fdk-aac生成的pkgconfig路径
    • ./ffmpeg-android-maker.sh -abis=arm64 -android=34
  • 相关阅读:
    1016 Phone Bills(25)
    高企认定对研发费用的要求是什么?
    基于Simulink融合IMU传感器数据(附源码)
    Android音视频开发:AudioRecord录制音频
    动态背景下目标跟踪算法的实现及源代码
    C++:stl_List的介绍与模拟实现
    基于docker搭建apache和mariadb服务器,实现一个dz页面完美访问
    紫光展锐荣评“5G技术创新力企业”,5G赋能千行百业
    springboot的配置文件(properties和yml/yaml)
    kubernetes 初始化
  • 原文地址:https://blog.csdn.net/binzhongbi757/article/details/136731410
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号