msys2编译FFmpeg全网最详细步骤

一、前言

本文讲述使用msys2编译ffmpeg源码的方法,使用该方法不需要安装mingw。msys2是一个在windows上模拟linux环境的软件,在msys2上可以使用大多数的shell命令,它可以在一定程度上代替虚拟机,让用户可以在windows上使用shell。

二、下载安装msys2

首先我们在http://msys2.github.io/ 下载msys2。进入该网址后,可以看到如下页面:

这里由于博主的电脑是win10、64位操作系统,所以选择msys2-x86_64-20190524.exe。下载下来后双击安装。这里博主安装到D盘,因为我们安装完msys2后是要在里面安装其它的软件的,随着里面安装的软件越来越多,msys2在电脑中占用的空间会越来越大,所以不推荐安装在C盘(系统盘)。

安装过程中,我们可能会发现,进度会一直卡在中间,无法继续执行,然后“隐藏详细信息”这里显示“Updating trust database”,如下图所示。当遇到这个问题时,我们只要点击右下方的“取消”按钮,然后重新安装即可。

安装完成后,我们进入安装目录,打开msys2_shell.cmd

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

三、MSYS2更换国内源

参见《MSYS2更换国内源》

四、在msys2中安装软件(启动msys2_shell.cmd)

1. 安装yasm

重启msys2_shell.cmd后,我们在弹出的窗口中执行命令:pacman -S make yasm diffutils pkg-config

2. 安装gcc

XXX: Operation too slow. Less than 1 bytes/sec......”,我们只要再重新执行上述命令安装就可以了。在每一次重新安装gcc的过程中,下图所示的“下载大小”的值都会变小,所以我们在安装gcc失败后,多次重复安装,让“下载大小”的值越来越小,最终我们就能成功安装的。

安装完gcc后,我们可执行命令:pacman -Sl | grep "gcc"查看gcc是否安装完成

五、下载FFmpeg源码

我们进入FFmpeg官网http://ffmpeg.org/download.html#releases,下载最新版本的FFmpeg源码(FFmpeg4.2.2)。

在msys2的安装目录下新建一个文件夹“SourceCode”,将下载下来的FFmpeg源码解压,放到该文件夹下,如下图所示:

六、编译FFmpeg源码(编译出32位库)-64位库同理

通过命令提示符进入msys2的安装目录即msys64下, 执行命令: msys2_shell.cmd -mingw32

在启动的窗口中执行命令:cd /SourceCode/ffmpeg-4.2.2,进入msys2中ffmpeg源码的目录,如下图所示:

到ffmpeg-4.2.2的目录下有一个configure文件,执行configure命令生成Makefile:

prefix=/usr/local/ffmpeg可以设定为自己定义的存放路径,如prefix=C:/Users/xxx/Desktop/ffmpeg

注:上述命令不唯一,可以根据自己的需要设置其它选项。生成Makefile可能需要很长时间,需耐心等待。

以上四个步骤可以在批处理文件中一次执行

注:每条命令执行可能需要很长时间,需耐心等待

执行完后会在msys64/usr/local目录下生成ffmpeg目录,生成的库和可执行文件就在msys64/usr/local/ffmpeg/bin目录下,如下图所示:

由于用msys2生成的库有依赖,比如生成的32位库依赖于msys64\mingw32\bin下的dll库,所以我们将msys64\mingw32\bin下的所有dll都拷贝到msys64\usr\local\ffmpeg\bin下。这样我们就能使用生成的ffmpeg.exe和库了

依赖如下:

七、参考文章

windows下使用msys2编译FFmepg源码

msys2 vs2015 ffmpeg 编译

八、需要x264库需先编译x264库再编译Ffmpeg

原文 msys2编译FFmpeg全网最详细步骤_狂奔之林的博客-CSDN博客

★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。

见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

猜你喜欢

转载自blog.csdn.net/yinshipin007/article/details/131477835