前言
本文在win10下用msys2和vs2017编译ffmpeg32位,以及把ffplay.c移植到vs2017环境中,便于学习。ffmpeg 的源码是跨平台的,通过 configure(shell脚本) 实现不同平台的编译规则。在 configure 的时候指定 --toolchain=msvc 就可以使用 msvc 来编译 ffmpeg。
一、准备软件
1、下载MSYS2
官网下载地址:https://www.msys2.org/ ,edge浏览器和chrome浏览器没下载成功,用搜狗浏览器下载成功。window10 的CMD 无法运行 configure 脚本,所以需要装 msys2 ,装了 msys2 就能运行 configure 。
2、下载FFmpeg源码
官网地址为https://ffmpeg.org/,选择的版本为4.4.5
网上的一些教程 编译ffmpeg 的时候,会下载编译 x264 , fdk-aac 等,然后引入ffmpeg 里面。但是 4.4.5版本的 ffmpeg 已经基于微软的 MediaFoundation 实现了 h264 ,aac 编解码器,分别是 h264_mf 跟 aac_mf ,mf 是 MediaFoundation 的缩写。所以不需要 再编译 x264 ,也不需要编译 fdk-aac ,比较方便。
3、下载SDL源码(可选,在编译FFplay.exe时需要)
官网下载地址:Simple DirectMedia Layer - Homepage
二、搭建环境
1、修改msys2镜像源
如果不修改,下载可能很慢。msys2的安装目录下,进入路径etc\pacman.d,打开如下三个文件
①.在mirrorlist.mingw32文件的最上方加入如下源
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
②.在mirrorlist.mingw64文件的最上方加入如下源
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
Server = http://m