安装编译ffmpeg
安装MSYS2
msys2是一款跨平台编译套件,它模拟linux编译环境,支持整合mingw32和mingw64,能很方便的在windows上对一些开源的linux工程进行编译运行。
类似的跨平台编译套件有:msys,cygwin,mingw
优势:
相对于 cygwin 和 msys 等环境,它支持 pacman 包管理器,这意味着你可以很方便的安装所需要的软件包和开发库,而不需要自己去找源码编译
支持多种编译环境,可以很方便的整合 mingw 和 clang,自身也是基于cygwin的一个简单开发环境,可以通过 pacman 包管理器很方便的安装对应编译环境的开发库。msys2的安装目录结构如下:
为什么要安装MSYS2呢?因为ffmpeg对windows不够友好。
点击这里MSYS2进入官网,按如下步骤进行操作:
安装路径可自选:
配置
建议打开MSYS2 MINGW64进行以下所有步骤。
如果你用的默认的MSYS2 MSYS也就是我最开始的方式也没关系,请听我继续道来。
可以看到我最开始就用的MSYS2 MSYS:
执行命令pacman -S mingw-w64-x86_64-toolchain:
敲回车继续:
接下来执行命令pacman -S base-devel:
用MSYS2 MSYS的问题在于有些包搜索不到,导致有些命令用不了。
接下来可以看到我用MSYS2 MINGW64重新执行了之前的两个命令:
pacman -S mingw-w64-x86_64-toolchain
pacman -S base-devel:
重新安装过后,我们可以发现常用的linux命令都能使用了,gcc,make,ls,ar等等。
安装pkg-config
执行命令:
pacman -S mingw-w64-x86_64-pkg-config
pacman -S mingw-w64-x86_64-zlib
安装好后F:\msys2\mingw64\bin目录下应该有 pkg-config.exe文件:
如果没有,进入:https://download.gnome.org/binaries/win32/dependencies/下载,没有64位的,就下32位的。
解压后在bin目录会发现pkg-config.exe,把它解压移到F:\msys2\mingw64\bin里,每个人的路径可能不一样。
接下来安装glib_2.24.2-2_win64.zip:https://download.gnome.org/binaries/win64/glib/2.24/
解压后将 libglib-2.0-0.dll复制移到F:\msys2\mingw64\bin里,每个人的路径可能不一样。
最后将F:\msys2\mingw64\bin添加到Path环境变量,每个人的路径可能会不一样。
还可以新建系统变量PKG-CONFIG-PATH,值为F:\msys2\mingw64\lib\pkgconfig,注意每个人的路径可能会不一样。
编译ffmpeg
进入官网:https://www.ffmpeg.org/download.html#releases,点击下载:
解压后我将它放在的路径为F:\ffmpeg
接下来打开MSYS2 MINGW64进入ffmpeg源码的目录,并执行:./configure --prefix=../ffmpeg_buildout --disable-static --enable-shared --enable-version3 --disable-ffplay --enable-ffmpeg --disable-x86asm
应该会等好几分钟,我就是这样。千万不可慌张。
接下来编译,依次执行:
make -j4
make install -j4
1
2
这两步终端会输出很多东西,也需要好一会,学会等待。
至此你会发现ffmpeg同级路径会出现一个ffmpeg_builtout目录,其里面有如下目录:
并且可以找到ffmpeg.exe文件,初步断定编译成功。
接下来可以这么处理,删掉ffmpeg目录,将ffmpeg_builtout目录改名为ffmpeg,并将F:\ffmpeg\bin添加到环境变量Path里,因为ffmpeg.exe在这个路径里。
最后就可以打开终端执行ffmpeg -version查看是否安装成功啦:
至此ffmpeg编译成功。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2023-06-29 qt 代码设置继承自widget控件的背景为纯透明
2022-06-29 Qt——QString 设置固定的小数位数,去掉小数点后的0
2022-06-29 Qt——如何让combox下拉框,打开软件自动触发信号(触发项一的信号)
2022-06-29 Qt——connect连接信号和曹时注意事项