windows平台编译ffmpeg以及ffplay 采用msys2+mingw-w64方案

本文参考自FFmpeg官网以及FFmpeg官方wiki。

网上关于Windows系统编译ffmpeg的教程有很多,但大部分都有些老旧,方法虽然可以用但是步骤繁琐,根据官网给出的几种方案,个人感觉采用msys2是最简单的编译方案了,现把编译步骤整理如下:

  1. 下载ffmpeg源码,github地址:https://github.com/FFmpeg/FFmpeg,克隆哪个版本应该都可以;
  2. 下载并安装msys2,下载地址:https://www.msys2.org;
  3. (可跳过)在安装依赖之前,我们需要修改msys2的镜像地址为国内地址,当然不修改也没啥问题,就是下载的速度比较慢,而且有时候有可能会莫名其妙的中断。关于修改msys2为国内源的方案参考自这篇博客。方法为修改msys64\etc\pacman.d 目录下三个文件:mirrorlist.mingw32 、mirrorlist.mingw64 、mirrorlist.msys中的内容为中国科学技术大学开源软件镜像。
  • mirrorlist.mingw32
##
## 32-bit Mingw-w64 repository mirrorlist
##
 
## Primary
## msys2.org
 
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = http://repo.msys2.org/mingw/i686
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
Server = http://www2.futureware.at/~nickoe/msys2-mirror/i686/
  • mirrorlist.mingw64
##
## 64-bit Mingw-w64 repository mirrorlist
##
 
## Primary
## msys2.org
 
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
Server = http://repo.msys2.org/mingw/x86_64
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
Server = http://www2.futureware.at/~nickoe/msys2-mirror/x86_64/
  • mirrorlist.msys
##
## MSYS2 repository mirrorlist
##
 
## Primary
## msys2.org
 
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
Server = http://repo.msys2.org/msys/$arch
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
  1. 下面我们就需要用pacman安装ffmpeg的依赖了。pacman是msys2 mingw-w64的包管理工具,可以简单的理解为ubuntu下的apt-get或者是centos下的yum之类。我们通过pacman安装编译ffmpeg所需要的依赖;
# normal msys2 packages
pacman -S make pkgconf diffutils

# mingw-w64 packages and toolchains
pacman -S mingw-w64-i686-nasm mingw-w64-i686-gcc mingw-w64-i686-SDL2

如果要编译64位的版本,将mingw-w64工具链中的i686替换位x86_64即可,如果要编译ffplay,则需要安装sdl2以及pkgconf依赖。

  1. 依赖安装完成之后,我们在msys2安装目录下运行mingw32.exe(要编译64位则用mingw64.exe),然后cd到ffmpeg clone目录,运行配置:
./configure --enable-shared --prefix=./msys_build

其中--enable-shared就是编译动态库版本,--prefix是生成目录,可以自己指定,也可以用默认

  1. configure检测完成后就可以用make进行编译了,执行
make -j4

其中-j4参数表示可以把项目进行并行编译,让make最多允许4个编译命令同时执行,提高编译速度。

  1. 编译完成后,最后一步就是安装了
make install

安装完成之后可以到configure指定的目录看下是否生成了动态库以及ffmpeg,ffplay等exe。

你可能感兴趣的:(windows平台编译ffmpeg以及ffplay 采用msys2+mingw-w64方案)