在windows下使用msys2编译最新版ffmpeg 4.4.2
**操作系统:windows10 64位 ** 一、环境搭建 1. 下载msys2 官网地址: 2.安装MSYS2,可以安装到你指定的任意位置,这里直接安装在默认位置,点击 下一步,直到安装完成。 这里不要勾选立即运行,我们还要配置镜像地址,不然下载速度很慢,而且经常会下载中断 3.配置镜像地址 打开 C:msys64etc 路径下的 pacman.conf 文件,删除图中框选部分 然后添加
[mingw32] #中国科学技术大学开源软件镜像 Server = https://mirrors.ustc.edu.cn/msys2/mingw/i686/ #北京理工大学开源软件镜像 Server = https://mirror.bit.edu.cn/msys2/REPOS/MINGW/i686 #清华大学开源软件镜像 Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686 #日本北陆先端科学技术大学院大学 sourceforge 镜像 Server = https://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/i686 Server = ftp://ftp.jaist.ac.jp/pub/sourceforge/m/ms/msys2/REPOS/MINGW/i686 Include = /etc/pacman.d/mirrorlist.mingw32 [mingw64] #中国科学技术大学开源软件镜像 Server = https://mirrors.ustc.edu.cn/msys2/mingw/x86_64/ #北京理工大学开源软件镜像 Server = https://mirror.bit.edu.cn/msys2/REPOS/MINGW/x86_64 #清华大学开源软件镜像 Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64 #日本北陆先端科学技术大学院大学 sourceforge 镜像 Server = https://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/x86_64 Server = ftp://ftp.jaist.ac.jp/pub/sourceforge/m/ms/msys2/REPOS/MINGW/x86_64 Include = /etc/pacman.d/mirrorlist.mingw64 [msys] #中国科学技术大学开源软件镜像 Server = https://mirrors.ustc.edu.cn/msys2/msys/$arch #北京理工大学开源软件镜像 Server = https://mirror.bit.edu.cn/msys2/REPOS/MSYS2/$arch #清华大学开源软件镜像 Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch #日本北陆先端科学技术大学院大学 sourceforge 镜像 Server = https://jaist.dl.sourceforge.net/project/msys2/REPOS/MSYS2/$arch Server = ftp://ftp.jaist.ac.jp/pub/sourceforge/m/ms/msys2/REPOS/MSYS2/$arch Include = /etc/pacman.d/mirrorlist.msys
- 配置msys2的环境 首先打开开始菜单中的 MSYS MinGW 64-bit 输入 pacman -Syu 命令 ,更新核心组件,等待下载组件,输入字母 y 并按回车键,等待安装完成
如果这里遇到同步失败的问题,再次执行 pacman -Syu 命令,或者更换其他镜像源再次尝试 如果遇到以下警告 ,需要关闭MSYS2命令行工具,重新打开并再次执行 pacman -Syu 命令即可
安装完毕之后再执行以下命令
pacman -S gcc mingw-w64-x86_64-toolchain yasm mingw-w64-x86_64-SDL2 pacman -S make
这里直接回车就好
二、编译 ffmpeg 4.2.2 从 FFmpeg官网下载最新代码文件 点击这个最大的绿色按钮,如果想下载其他版本,也可以点击按钮下方的“More releases” 下载之后解压到任意位置 ,我的解压在 D:ffmpeg-4.2.2 路径
执行以下命令进入到 ffmpeg的解压路径
cd D:ffmpeg-4.2.2
接着执行,prefix 的参数意义是讲编译出来的文件放在 D:ffmpeg-4.2.2uildout 路径下
./configure --prefix=./buildout --enable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl
这里遇到了cmp 命令找不到的问题,是因为msys2没有cmp命令的组件,执行以下命令就可解决
pacman -S diffutils
再次执行
./configure --prefix=…/buildout --enable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl
完美通过!!最后执行
make -j4 & make install
等待漫长的编译过程,打开D:ffmpeg-4.2.2uildout 双击执行ffplay,报错了,缺少好几个dll文件 打开msys2 的安装目录 进入./mingw64/bin 找到缺少的那几个dll文件,拷贝进 D:ffmpeg-4.2.2uildout 就可以解决了
参考网址:
