#### 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)/](https://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/)
>
> 在下载页面选择下载[MSYS-20111123.zip]([https://sourceforge.net/projects/mingw-w64/files/External](https://sourceforge.net/projects/mingw-w64/files/External)binary packages (Win64 hosted)/MSYS (32-bit)/MSYS-20111123.zip/download) 和[x86\_64-posix-seh](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z)离线安装包。我这里以64位为准。
2. ##### 解压配置MinGW环境
> 第一步: 先解压x86\_64-xxx离线包,得到mingw64目录, 这个目录就类似于Linux小环境,里面有gcc,g++等编译链接工具.
>
> 第二步: 然后再解压MSYS-20111123.zip得到msys目录,并且将msys目录拷贝到第一步mingw64目录下.
>
> 第三步: 将mingw64/bin目录添加到Path环境变量. 到此为止类Linux环境准备完毕.
3. ##### 为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才能识别.
>
> 2. 准备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环境就准备好了.
4. ##### 下载最新版ffmpeg源代码
> 下载链接:[https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gz](https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gz)
>
> 将下载好的压缩包解压并放在mingw64\\msys\\home, 这个home目录就相当于Linux下的home目录.
>
> 同时可以创建一个out目录作为ffmpeg编译输出目录,通过--prefix配置输出目录.
5. ##### 启动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环境.
以下是目录结构截图:
![](https://img2020.cnblogs.com/blog/1020339/202101/1020339-20210103124258075-170168656.jpg)
![](https://img2020.cnblogs.com/blog/1020339/202101/1020339-20210103124307691-681324864.jpg)
![](https://img2020.cnblogs.com/blog/1020339/202101/1020339-20210103124316705-986835952.jpg)
如果觉得上面说的啰嗦或者配置麻烦,可以直接下载我集成好的压缩包,解压并添加mingw64/bin到Path环境变量,然后双击mingw64\\msys\\msys.bat打开msys命令行窗口即可开始编译工作。
下载链接:[https://download.csdn.net/download/yongfengnice/14015945](https://download.csdn.net/download/yongfengnice/14015945)
- 序言
- 编解码
- H264
- HEVC码流解析
- H264编码原理
- 多媒体封装
- MP4
- 学好 MP4,让直播更给力
- AAC
- FLV
- 流媒体协议
- RTSP
- RTCP
- RTP
- H265 RTP封包笔记
- SDP
- RTMP
- RTMP URL
- rtmp url基础
- webrtc
- 编译
- 最简单的编译webrtc方案
- Webrtc音视频会议之Webrtc“不求甚解”
- Webrtc音视频会议之Mesh/MCU/SFU三种架构
- 音频传输之Jitter Buffer设计与实现
- Janus
- Webrtc音视频会议之Janus编译
- Webrtc音视频会议之Janus源码架构设计
- webrtc服务器-janus房间管理
- 源码分析
- WebRTC视频JitterBuffer详解
- 走读Webrtc 中的视频JitterBuffer(一)
- 走读webrtc 中的视频JitterBuffer(二)
- webrtc视频帧率控制算法机制
- 目标码率丢帧-1
- 目标帧率丢帧-2
- 29 如何使用Medooze 实现多方视频会议
- FFmpeg
- FFmpeg编译
- Window10下编译最新版FFmpeg的方法步骤
- FFMPEG静态库编译
- ffmpeg实现画中画
- FFmpeg推流器
- ffmpeg-aac
- OpenCV
- OpenCV学习笔记——视频的边缘检测
- 图像特征点匹配(视频质量诊断、画面抖动检测)
- 图像质量诊断