windows 编译ffmpeg4.x for Qt Mingw

之前windows系统上面都是直接使用ffmpeg官网编译好的动态库,已经包含了H264,能满足使用条件就没有去折腾,但是最近项目需要解决ffmpeg rtsp视频流 udp传输,存在丢包、花屏、严重马赛克等问题,需要修改ffmpeg源码,so比较自己编译ffmpeg4.x了。

window编译ffmpeg mingw,因此要在windows搭建一个模拟linux环境,下载安装MSYS-1.0.11, 网址:https://sourceforge.net/projects/mingw-w64/files/

windows 编译ffmpeg4.x for Qt Mingw_第1张图片

下载后直接双击运行安装就可以了,没有特别需要修改和注意的地方。

进入到安装目录下面的 msys\1.0\etc有两个文件fstab和fstab.sample,如果没有fstab就自己创建一个。把里面的的mingw路径修改为电脑qt自带的mingw路径,注意i686-w64-ming32和/mingw中间有一个空格。如下图

windows 编译ffmpeg4.x for Qt Mingw_第2张图片

这样编译ffmpeg和x264的模拟linux环境就搭建好了。

开始编译操作:

1. 分别到ffmpeg和x264官网下载源码,ffmpeg我使用的是4.1.0版本的源码,x264下载的最新源码。

2. 先编译x264 :到刚刚安装好的MSYS目录下面启动linux环境命令框,是一个.bat批处理,如下图:直接双击打开即可

windows 编译ffmpeg4.x for Qt Mingw_第3张图片

在命令框内进入到x264源码路径下  cd  xx/xx/x264source

然后编译三部曲 ./configure --enable-static --disable-asm,make,make install这样就编译好了一个静态的x264.a文件和头文件。 make DESTDIR=xx/xx install 可以指定安装目录。期间可能会出现一个错误:没有找到C编译器。那是因为你qt的mingw工具没有添加到系统的环境变量所有提示找不到gcc命令。把qt的mingw工具添加到系统环境变量即可。

windows 编译ffmpeg4.x for Qt Mingw_第4张图片

3. 编译ffmpeg4.1.0源码,步骤跟编译x264差不多 在MSYS linux环境命令框里面先进入到ffmpeg源码路径

cd xx/xx/ffmpeg4.1.0source

配置命令如下:

 ./configure --enable-shared --disable-yasm --enable-debug=3 --enable-libx264 --enable-gpl

--extra-cflags='-IC:/Users/ASUS/Downloads/last_x264/x264-snapshot-20191128-2245/static_build/include'

--extra-ldflags='-LC:/Users/ASUS/Downloads/last_x264/x264-snapshot-20191128-2245/static_build/lib' 

--prefix=D:/ffmpeg4.1.0_build

要指定刚刚编译好的x264 include和lib 不然会提示找不到,比较简单我就不多解释了,

配置完成后在运行: make -j8
最后运行: make install

windows 编译ffmpeg4.x for Qt Mingw_第5张图片

大功告成。

 

 

 

 

你可能感兴趣的:(知识点总结)