msys2 编译 FFmpeg
- FFmpeg
- 2020-09-24
- 16热度
- 0评论
1、下载 msys2
官网:https://www.msys2.org,进入该网址后,可以看到如下页面:

2、安装 msys2
这里由于博主的电脑是win10、64位操作系统,所以选择 msys2-x86_64-20200903.exe,下载下来后双击安装。
这里安装到默认路径,但是不推荐安装在C盘,因为我们安装完 msys2 后是要在里面安装其它的软件的,随着里面安装的软件越来越多,msys2 在电脑中占用的空间会越来越大。
安装过程中,我们可能会发现,进度会一直卡在中间,无法继续执行,然后“隐藏详细信息”这里显示“Updating trust database”,如下图所示。当遇到这个问题时,我们只要点击右下方的“取消”按钮,然后重新安装即可。

3、msys2 更换国内源
进入 msys64\etc\pacman.d 文件夹,分别在 mirrorlist.mingw32、mirrorlist.mingw64、mirrorlist.msys 三个文件开头添加 中科大的源(其他国内源也可):
mirrorlist.mingw32:Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
mirrorlist.mingw64:Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
mirrorlist.msys:Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/

4、更改字符集,否则可能会出现中文乱码的问题
进入安装目录,打开 msys2_shell.cmd,在弹出的窗口上右击, 选择 Options,按照如下设置更改字符集,更改完成后,点击“Save按钮”,这里要注意更改完成后得要重新启动 msys2_shell.cmd,设置才能生效。

5、在 msys2 中安装软件(启动 msys2_shell.cmd)
重启 msys2_shell.cmd 后,我们在弹出的窗口中执行以下命令:
a、安装 yasm
pacman -S make yasm diffutils pkg-config
b、安装 gcc
Windows:pacman -S mingw-w64-x86_64-gcc
Linux:pacman -S mingw-w64-i686-gcc
查看gcc是否安装完成:pacman -Sl | grep "gcc"
如果报错:“错误:无法从 XXX: Operation too slow. Less than 1 bytes/sec......”,我们只要再重新执行上述命令安装就可以了。在每一次重新安装 gcc 的过程中,“下载大小”的值都会变小,所以我们在安装gcc失败后,多次重复安装,让“下载大小”的值越来越小,最终我们就能成功安装的。
6、下载 FFmpeg 源码
官网:http://ffmpeg.org/download.html#releases,下载最新版本的FFmpeg源码(FFmpeg 4.2.4)。
在 msys2 的安装目录下新建一个文件夹 SourceCode(名称随便),将下载下来的 FFmpeg 源码解压,放到该文件夹下,如下图所示:

7、编译FFmpeg源码,这里编译64位库(32位库同理)
进入 msys2 的安装目录,即 msys64 文件夹下,双击执行 mingw64.exe,在启动的窗口中依次执行以下命令:
a、cd /SourceCode/ffmpeg-4.2.4
b、make clean
c、./configure --enable-shared --arch=x86_64 --prefix=/SourceCode/ddd //执行 configure 命令生成 Makefile
说明:
--arch=x86_64:64位库
--arch=x86_32:32位库
prefix=/SourceCode/ddd:自定义的存放路径
注:上述命令不唯一,可以根据自己的需要设置其它选项。
d、make
e、make install
注:以上四个步骤可以在批处理文件中一次执行,每条命令执行可能需要很长时间,需耐心等待。
全部执行完成后会在 msys64/SourceCode/ddd/bin 目录下生成库和可执行文件,如下图所示:

注:由于用 msys2 生成的库有依赖,比如生成的64位库依赖于msys64\mingw64\bin下的 zlib1.dll、libiconv-2.dll、libwinpthread-1.dll 三个dll库,所以我们将这三个dll拷贝到 msys64/SourceCode/ddd/bin 下。这样我们就能使用生成的ffmpeg.exe和库了。
8、需要x264库需先编译 x264库 再编译 ffmpeg
参考文章
windows下使用msys2编译FFmepg源码
msys2 vs2015 ffmpeg 编译

鲁ICP备19063141号
鲁公网安备 37010302000824号