win10下MinGw+MSYS2编译FFmpeg以及x264安装与支持

最近要做到有关于x264相关的项目,需要用到FFmpeg来使用x264的编码以及解码,网上的一些关于FFmpeg支持x264的文档不完全对,我几乎都试了一遍,都会出现libx264 not found的错误提示,最终还是在z_muyangren这位博主的博客中找到了答案。
接下来我将记录从MSYS安装到FFmpeg支持x264的整个过程。一来为了后面遇到同样问题的同行少走点弯路。二来是当做笔记本,以免时间长了忘记掉。

MSYS安装到FFmpeg成功支持x264

  • MinGw+MSYS安装配置
  • FFmpeg简单安装与检测
  • x264安装
  • FFmpeg配置支持x264
  • 参考资料

MinGw+MSYS安装配置

首先下载MSYS:传送门下载可执行文件.exe,如下图所示,在这里插入图片描述
接下来按照这位博主的流程从头到尾实践就行了。但需要注意的是:

  1. 第二条我发现不去做它也行,因为文件里存在着指定的Server
  2. 第7条中会安装其中比较重要的MinGw,这里不要全装,要区分64位还是32位的,别装错了,具体如下图所示:win10下MinGw+MSYS2编译FFmpeg以及x264安装与支持_第1张图片

安装过程也很简单,照着来就行了,结果如下图所示:
win10下MinGw+MSYS2编译FFmpeg以及x264安装与支持_第2张图片
这三个终端都是指向同一个的,所以一般打开哪个都行,不过好想听说打开第二个比较好,不太会出问题。win10下MinGw+MSYS2编译FFmpeg以及x264安装与支持_第3张图片
MSYS是仿生UNIX操作系统的window工具集,UNIX成立比较早,后续的windows和Linux都是参照它来的,其指令也和linux差不多。

FFmpeg简单安装与检测

FFmpeg的编译环境配置好了,接下来可以去官网下载最新的FFmpeg源码了—传送门(FFmpeg官网有提供编译好的,但是官方建议用户自行编译最新版本,因为一些编译好的版本普遍比较老,有些新功能并不支持)
接下来就是正式编译FFmpeg了:

  1. 进入FFmpeg源码目录输入./configure生成Makefile文件。(这里建议将FFmpeg和x264下载后解压的源码放入msys64/home/Administer/下,这是每次启动终端的默认初始访问地点,这样就不用了每次都cd到相关目录下了)
  2. 执行make进行编译。
  3. 执行make install进行安装。
  4. 使用./ffmpeg.exe -h来验证。

这样依赖FFmpeg的简易编译以及安装就完成了,结果是在源码目录生成3个可执行文件ffmpeg.exe、ffprobe.exe、ffplay.exe以及在MSYS默认安装路径usr/local/下安装了lib、a、dll、h等相关文件。但这只是简易的FFmpeg,并没有H.264、加字幕的编码支持。如需要支持这些,比如H.264,则需要安装以及通过额外参数定制来进行支持。可以使用./configure --help来查找所需要的第三方库(比如libx264、libass)。

x264安装

  1. 首先要到x264官网下载最新版本的源码—传送门。然后解压到msys64/home/Administer/下。
  2. 进入到x264源码目录,执行./configure --enable-shared --enable-static
  3. make
  4. make install
  5. 成功执行后会在默认安装路径usr/local/下安装相应的库文件。
  6. cd到usr/local/bin下,执行x264.exe来验证是否安装成功。出现下图即成功:在这里插入图片描述

FFmpeg配置支持x264

接下来这里就是困扰我多时的,用了很多命令,都是libx264 not found的错误提示,最终还是在z_muyangren这位博主的博客中找到了答案。

  1. 进入FFmpeg源码目录,执行./configure --enable-gpl --enable-nonfree --enable-libx264 --enable-shared --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib。关键在于–extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib这里。
    成功的结果如下:win10下MinGw+MSYS2编译FFmpeg以及x264安装与支持_第4张图片
    编译ffmpeg时会出现WARNING:using libx264 without pkg-config tection may fail,不影响编译结果。
  2. make编译。
  3. make install
  4. 重新打开终端,输入ffmpeg -h encoder=libx264来验证FFmpeg是否成功支持H.264。输出是一些x264的参数:win10下MinGw+MSYS2编译FFmpeg以及x264安装与支持_第5张图片

至此,FFmpeg成功支持H.264,可以实现工程的基本需要了!!!

参考资料

  1. 一些关于MinGw命令的知识
  2. enable参数的认识以及如何把库发给他人
  3. 全网最详细msys2编译libx264库。虽然他的方法没有给我成功解决问题,但是也有一定参考意义。
  4. FFmpeg安装第三方库
  5. .dll文件和.so文件。.so是Linux下的动态库,文件结构与.dll不一样的。所以在windows一般是不可以直接生成.so的。
  6. linux 下的 .a 文件 .o 文件 是什么文件?各有什么作用?
  7. FFmpeg_编译支持h264编码的ffmpeg,并验证。真正成功帮助解决x264安装与支持。
  8. 有关pkg_config
  9. WARNING:using libx264 without pkg-config

你可能感兴趣的:(ffmpeg,h.264,windows,linux)