Window10下编译最新版FFmpeg的方法步骤

平时比较多在Mac下开发,编译ffmpeg相对比较简单。最近放假在Window下玩玩,听说Window编译ffmpeg比较麻烦,自己就折腾一下看看。其实站在巨人肩上使用集成环境,也是非常简单的。网上大部分帖子乱七八糟的。。。最后自己思考模仿Linux环境折腾一个晚上,然后总结一下步骤,其实很简单,这里总结记录一下,以便方便自己回顾和需要的人。

准备环境,需要的环境是MinGW+MSYS,不需要依赖任何vs工具。


MinGW和MSYS工具是在同一个下载页面的,下载链接如下:

​https://sourceforge.net/projects/mingw-w64/files/External binary packages (Win64 hosted)/MSYS (32-bit)/​

在下载页面选择下载[MSYS-20111123.zip](​​https://sourceforge.net/projects/mingw-w64/files/External​​​ binary packages (Win64 hosted)/MSYS (32-bit)/MSYS-20111123.zip/download) 和 ​​x86_64-posix-seh​​ 离线安装包。我这里以64位为准。


解压配置MinGW环境


第一步: 先解压x86_64-xxx离线包,得到mingw64目录, 这个目录就类似于Linux小环境,里面有gcc,g++等编译链接工具.

第二步: 然后再解压MSYS-20111123.zip得到msys目录,并且将msys目录拷贝到第一步mingw64目录下.

第三步: 将mingw64/bin目录添加到Path环境变量. 到此为止类Linux环境准备完毕.


为FFmpeg编译准备yasm工具和get-config工具


  1. 如果ffmpeg编译需要开启汇编优化,是需要yasm工具支持的,默认是开启的,所以我们需要准备yasm工具. 如果你不想准备yasm工具,可以在./configure配置时使用--disable-x86asm关闭汇编优化.

1-1. 其实准备很简单,下载页面http://www.tortall.net/projects/yasm/releases/ 下选择对应版本yasm-1.3.0-win64.exe下载,然后重命名为yasm.exe放在mingw64/bin目录下即可. 一定要重命名为yasm.exe才能识别.

  1. 准备get-config工具, 这个工具是编译依赖查询工具,不准备好像也没啥问题,既然提示了最好也准备一下

2-1. 使用http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip下载并解压得到pkg-config.exe复制放在mingw64/bin目录下即可.

2-2. 然后使用http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip下载并解压得到libglib-2.0-0.dll(或者所有dll库,多不碍事)也复制放在mingw64/bin目录下,这样get-config工具就准备完毕. 到此为止编译ffmpeg环境就准备好了.


下载最新版ffmpeg源代码


下载链接:​​https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gz​

将下载好的压缩包解压并放在mingw64\msys\home, 这个home目录就相当于Linux下的home目录.

同时可以创建一个out目录作为ffmpeg编译输出目录,通过--prefix配置输出目录.


启动msys命令行窗口,配置编译ffmpeg命令


双击mingw64\msys\msys.bat打开msys命令行窗口,这个窗口类似于Linux环境的窗口.

cd切换到/home/ffmpeg-4.3.1目录下执行configure, make, make install编译三部曲即可.

第一步: ./configure --arch=x86_64 --enable-shared --prefix=/home/out //64位配置--arch=x86_64

第二步: make

第三步: make install

上面只是最简单的配置, 执行这三步,即可生成exe文件,dll动态库,h头文件等.

注意:是没有生成ffplayer.exe的,ffplayer.exe依赖SDL库,想要ffplayer.exe还得先安装配置SDL环境.


以下是目录结构截图:

win10下搭建最新版FFmpeg编译环境参考这篇文章就够了_linux环境

win10下搭建最新版FFmpeg编译环境参考这篇文章就够了_linux环境_02

win10下搭建最新版FFmpeg编译环境参考这篇文章就够了_linux环境_03

如果觉得上面说的啰嗦或者配置麻烦,可以直接下载我集成好的压缩包,解压并添加mingw64/bin到Path环境变量,然后双击mingw64\msys\msys.bat打开msys命令行窗口即可开始编译工作。