windows msys2中编译libfdk-aac

2024-04-27 16:48
文章标签 编译 windows msys2 aac libfdk

本文主要是介绍windows msys2中编译libfdk-aac,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近,用ffmpeg在声音处理上,有些问题,由于音频编码是aac,由此怀疑到ffmpeg内部aac不精准导致,故需要链接libfdk-aac。

libfdk-aac在编译时,需要用到autoconf等工具,这在精简版的msys2中是不存在这些工具的,同时精简版的msys2里面也没有yum,apt等安装工具。
关于何为精简版msys2,读者可以参考我写的一篇博客:ffmpeg 64位静态库编译

为此,我尝试用cmake编译libfdk-aac,编译是ok的,但是将其放到msys2环境中后,ffmpeg编译不过去,最终还是只能查找msys2。

还好,本人找到了旗舰版的msys2,打开如下链接:
https://repo.msys2.org/distrib/x86_64/
本人选择的是msys2-x86_64-20210725.exe,很新的一个版本,然后进行安装。

安装完之后,里面缺少很多工具,不提autoconf之类的,gcc也没有,于是需要安装软件,msys2的优点就是提供了pacman工具,以此进行软件的升级和安装。
首先,如下图所示,打开命令行。
在这里插入图片描述
然后,输入pacman -Su,进行软件包的更新;接着输入
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
选择默认安装即可,这样,gcc,autoconf,pkgconfig等包一股脑全部下载安装。

基础包安装好之后,下面就是开始着手libfdk-aac的编译了,这里需要编译出静态库版本,并且由于最终需要的是ffmpeg是静态库(动态库的可执行文件比较占空间),ffmpeg静态库链接到vs2017中,所以此处的libfdk-aac就一定需要用vs2017的编译器进行编译。

我的msys2的安装路径为D:\msys64。
首先打开编辑D:/msys64/msys2_shell.cmd,对如下内容进行编辑。

将其中的:rem set MSYS2_PATH_TYPE=inherit“rem”注释删除掉,成为:set MSYS2_PATH_TYPE=inherit

然后:重命名C:/msys64/usr/bin/link.exe 为C:/msys64/usr/bin/link.bak, 避免和MSVC 的link.exe抵触

最后,需要进行编译器的替换,在D:/msys64/msys2_shell.cmd的头一行,进行vs2017 64编译器环境的初始化,如下所示:
在这里插入图片描述
这里D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat执行的就是vs2017 64位的编译器环境。

然后环境自此搭建完成。

编译libfdk-aac时,首先打开64位的msys2终端(上面有提到),先执行./autogen.sh进行configure文件的生成,然后用下面的语句进行配置。
./configure --prefix=/usr/local/fdk_aac/ --host=x86_64-w64-mingw32 --enable-static
接着执行make和make install即可。

最后,ffmpeg编译的配置命令也给下,以免日后忘记

./configure --arch=x86_64 --enable-nonfree --enable-libfdk-aac --disable-debug --enable-shared --disable-static --enable-gpl --enable-libx264 --extra-cflags="-I/usr/local/x264/include -I/usr/local/fdk_aac/include" --extra-ldflags="-L/usr/local/fdk_aac/lib  -L/usr/local/x264/lib -static" --pkgconfigdir=/usr/local/x264/lib/pkgconfig --prefix=/home/ffmpeg_x264_dll

2021年12月23号:实际上,还是需要先打开cmd,然后将D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat拖入cmd中运行,然后来到D:/msys64,执行
msys2_shell.cmd -mingw64
在这里插入图片描述
会弹出下面的界面,下面的界面中export下就行。
在这里插入图片描述

这篇关于windows msys2中编译libfdk-aac的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941020

相关文章

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

Windows如何添加右键新建菜单

Windows如何添加右键新建菜单 文章目录 Windows如何添加右键新建菜单实验环境缘起以新建`.md`文件为例第一步第二步第三步 总结 实验环境 Windows7 缘起 因为我习惯用 Markdown 格式写文本,每次新建一个.txt后都要手动修改为.md,真的麻烦。如何在右键新建菜单中添加.md选项呢? 网上有很多方法,这些方法我都尝试了,要么太麻烦,要么不凑效

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库,由 WebM 项目开发和维护,专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩,广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速支持以及灵活的接口设计,使其可以轻松集成到各种应用程序中。 libvpx 的安装和配置过程相对简单,用户可以从官方网站下载源代码