Windows 10下基于MinGW编译FFMpeg with x264

2 篇文章 0 订阅

Windows 10下基于MinGW编译FFMpeg with x264

 

基于前一篇文章《windows下基于MinGW编译nginx 和 nginx-rtmp-model 搭建流媒体服务器》,现在我们已经搭建好了流媒体服务器,接下来我们使用ffmpeg进行推流和拉流测试,首先我们要在windows下编译ffmpeg,下面以编译一个32位的ffmpeg为例讲解Windows 10下基于MinGW编译FFMpeg的过程:

本教程经反复验证按下面流程可以很顺利的编译出ffmpeg,另外需要注意的是各部分软件版本尽可能与本教程保持一致,以免遇到不可遇知的问题。

编译的操作系统为 windows 10 x64

编译环境为 Visual Studio 2010

  • 安装MinGW
  • 安装yasm
  • 安装nasm
  • 安装git
  • 安装pkg-config
  • 安装glib
  • 修改配置文件C:\MinGW\msys\1.0\msys.bat
  • 编译安装SDL2
  • 编译安装x264
  • 修改配置文件C:\MinGW\msys\1.0\etc\profile
  • 编译安装ffmpeg

准备工作

  1. 安装MinGW

    首先安装MinGW,后面的nginx编译需要先在msys环境下进行,安装方式可以有在线安装和离线安装两种方式,离线安装的话过程很繁琐,需要自己下载各种包解压、配置路径等等操作,所以此处采用无脑式的在线安装进行说明,由于MinGW的很多资源包都是在sourceforge上下载的,国内虽然能访问,但是速度奇慢,请耐心等待,如果多次安装失败强烈建议翻墙安装。

MinGW找到MinGW安装引导程序mingw-get-setup.exe的链接地址并下载,安装引导程序不到100KB。执行安装工具,开始选择安装路径时要注意,不要将MinGW安装到带有空格或者中文路径的目录下,在这里我们默认安装在C:\MinGW,后面有关mingw的安装目录均指这个位置。

默认情况下,在下载完成后会在桌面生成一个MinGW Installer快捷图标,如果没有,也可以去MinGW安装目录中找到, C:\MinGW\libexec\mingw-get\guimain.exe。

接下来运行安装之后的快捷图标,选择要在线安装的组件,此处只需选择Basic Setup下msys及gcc相关组件就行了,选择过程中会提示有些组件找不到,不用管它继续后面的步聚。 然后,选择Installation菜单中Apply Changes进行在线下载和安装,整个过程可能会持续十几分钟,后续也可以再利用这个安装界面进行组件的更改或者删除,选择完需要的组件后如下图所示:

注:如果安装过程中出现组件下载失败的情况,直接确定继续往下,安装程序会在所有的依赖包下载完成之后进行解压安装,执行完成后,在不关闭安装界面的前提下,回到上面的第二个步骤再来一遍,一直到没有安装错误。

至此,MinGW的成功安装后,勾选的项目会变成浅绿色填充,如下图所示:

MinGW安装完成后在其安装目录下会有msys的目录,进入该目录里面,会看到有个批处理文件 msys.bat,可以把它创建到桌面作为快捷方式,双击进去就进入msys环境了。使用上和linux终端类似,不过是个精简版的,命令没有linux下的全,可以使用mingw-get命令进行在线安装某些包,比如,要安装gdb,直接输入命令 mingw-get install gdb,如下图所示:

MinGW安装完成后把C:\MinGW\bin和C:\MinGW\msys\1.0\bin 这两个目录加入到windows的PATH环境变量中

2.安装yasm

下载页面为: 点击下载

我的下载文件为yasm-1.3.0-win32.exe,然后改名为yasm.exe 放入到C:\MinGW\bin中即可。

3.安装nasm

下载页面为:点击下载

其默认安装路径为C:\Users\<用户>\AppData\Local\bin\NASM,然后把该目录加入到windows的PATH环境变量中

4.安装git

下载页面为:https://git-scm.com

其默认安装目录为C:\Program Files\Git,然后把目录C:\Program Files\Git\cmd 添加到windows系统的Path 环境变量中.

5.安装pkg-config

下载页面为:点击下载

解压后复制bin文件夹中的pkg-config.exe文件到C:\MinGW\bin\文件夹下

6.安装glib

下载页面为:点击下载

解压后复制bin文件夹中的libglib-2.0-0.dll文件到C:\MinGW\bin\文件夹下

7.修改配置文件C:\MinGW\msys\1.0\msys.bat

7.1用编辑器打开C:\MinGW\msys\1.0\msys.bat,在最前面加入1行, 设置vs2010的环境变量,实际路径根据你自己安装vs2010的路径修改:
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"

8.编译安装SDL2

下载页面:点击下载

这里使用的是SDL2-2.0.12版本,解压文件到C:\MinGW\msys\1.0\home\<用户>\目录下面,

执行C:\MinGW\msys\1.0\msys.bat打开模拟终端

cd SDL2-2.0.12
./configure --prefix=/usr/local/sdl2
make
make install

最后把C:\MinGW\msys\1.0\local\sdl2\bin添加到windows的PATH变量中

9.编译安装x264

执行C:\MinGW\msys\1.0\msys.bat打开模拟终端
下载x264:
git clone https://code.videolan.org/videolan/x264.git
编译安装:
cd x264
./configure --enable-static --prefix=/usr/local/x264
make
make install

最后把C:\MinGW\msys\1.0\local\x264\bin添加到windows的PATH变量中

10.修改配置文件C:\MinGW\msys\1.0\etc\profile

用编辑器打开C:\MinGW\msys\1.0\etc\profile,找到这一行 ”if [ $MSYSTEM == MINGW32 ]; then:"

  然后在里面添加以下内容:

    if [ -z "$PKG_CONFIG_PATH" ]; then
        export PKG_CONFIG_PATH="/mingw/lib/pkgconfig:/usr/local/x264/lib/pkgconfig"
    fi

    if [ -z "$PKG_CONFIG" ]; then
        export PKG_CONFIG=pkg-config.exe
    fi

添加后是这样的:

11.编译安装ffmpeg

执行C:\MinGW\msys\1.0\msys.bat打开模拟终端(如果已打开请关闭重新打开)

下载ffmpeg,当前以下载4.3版本为例,点击下载
下载完后解压到C:\MinGW\msys\1.0\home\<用户>\目录下

填坑:用编辑器打开该文件C:\MinGW\msys\1.0\home\<用户>\ffmpeg-4.3\libavformat\os_support.h,在文件头部添加这一行,不然编译的时候会出错:

#include "winerror.h"

 

在C:\MinGW\msys\1.0\home\<用户>\ffmpeg-4.3\下创建一个脚本文件configure.sh,其内容如下:

./configure \
    --prefix="/usr/local/ffmpeg" \
    --enable-shared \
    --enable-gpl \
    --enable-version3 \
    --enable-nonfree \
    --enable-libx264 \
    --disable-static \
    --enable-debug \
    --enable-sdl2 \
    --extra-cflags="-I/usr/local/x264/include" \
    --extra-ldflags="-L/usr/local/x264/lib"

在模拟终端中

cd ffmpeg
./configure.sh
make
make install

最后在C:\MinGW\msys\1.0\local\ffmpeg目录有编译安装好的最终文件

bin目录中有可执行文件

把该bin目录加到windows系统PATH变量中就可以在任何地方用ffplay.exe播放视频,如:ffplay.exe test.mp4

到此windows下基于mingw的ffmpeg编译工作完成

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Windows下使用MSYS2编译FFmpeg,你可以按照以下步骤进行操作: 1. 首先,下载FFmpeg的源代码。你可以在官方网站上找到下载链接。 2. 安装MSYS2 MinGW64。你可以在官方网站上找到安装程序。 3. 在MSYS2 MinGW64的命令行中,执行以下命令来配置编译环境和编译FFmpeg: ``` pacman -S mingw-w64-x86_64-toolchain // 安装mingw工具链 pacman -S msys/base-devel // 安装基础工作环境 pacman -S yasm nasm gcc // 安装汇编和编译器 pacman -S mingw64/mingw-w64-x86_64-SDL2 // 安装FFmpeg依赖的SDL2库 ``` 4. 解压下载的FFmpeg源码,并进入解压后的文件夹。使用以下命令进行配置和编译安装: ``` cd /path/to/ffmpeg-source-code // 进入FFmpeg源码文件夹 ./configure --prefix=/usr/local/ffmpeg // 配置安装路径 make // 编译源码(需要一段时间) make install // 安装编译结果 ``` 5. 编译完成后,你就可以在指定的安装路径(默认为/usr/local/ffmpeg)找到生成的相关文件。 请注意,编译过程中可能会出现一些错误。如果遇到问题,你可以参考一些博客或文档,或者重新安装MSYS2并重复上述步骤来解决问题。 希望这些步骤对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [windows使用MSYS2编译FFmpeg](https://blog.csdn.net/ice_bear221/article/details/128515239)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值