Windows下编译ffmpeg(MinGW+MSYS2) 原创

Windows下编译ffmpeg(MinGW+MSYS2)

更多精彩内容
👉个人内容分类汇总 👈

1、概述

  • 系统:Window10
  • ffmpeg版本:n5.1.2
  • 环境:Msys2+MinGW
    • Msys2:msys2是一款跨平台编译套件,它模拟linux编译环境,可以把它看做一个linux环境;

2、环境准备

1 安装Msys2

  • 下载msys2

  • 下载msys2后直接下一步安装,安装完成后如下图所示

    在这里插入图片描述

  • 在开始菜单打开MSYS2 MSYS,使用命令pacman -Syu升级所有库

    在这里插入图片描述

2 安装环境

  • 使用下列命令安装ffmpeg编译的依赖工具

    pacman -S mingw-w64-x86_64-toolchain 
    pacman -S mingw-w64-x86_64-yasm 
    pacman -S mingw-w64-x86_64-SDL2 
    pacman -S mingw-w64-x86_64-fdk-aac 
    pacman -S mingw-w64-x86_64-x264 
    pacman -S mingw-w64-x86_64-x265
    pacman -S mingw-w64-x86_64-gcc
    pacman -S make diffutils pkg-config git nasm
    
  • 使用git命令将ffmpeg下载到msys2的用户目录下,或者下载了复制到用户目录下

    在这里插入图片描述

  • 如下图所示,新建一个build文件夹用于编译,新建一个文件夹ffmpegLib用做安装路径

    在这里插入图片描述

3、ffmpeg编译

  • 在开始菜单选择MSYS2 MINGW64

    在这里插入图片描述

  • 进入到创建的build文件夹下

    在这里插入图片描述

  • 使用下列命令开始构建ffmpeg源码,这里时间有点长,不是卡了,参数说明如下

    • --prefix 安装程序到指定的目录,即最终编译后生成的文件的存放目录;
    • --enable-sdl2引入SDL2库,ffplay编译必须;
    • --enable-x264 启用H.264编码(默认关闭);
    • --enable-faac启用faac支持libfaac(默认关闭);
    • --enable-static构建静态库(默认启用);
    • --disable-static禁止构建静态库(默认关闭);
    • --enable-shared构建共享库(默认关闭);
    • --disable-shared 禁止构建共享库(默认启用);
    • --enable-gpl允许使用GPL(默认关闭);
    • 更多详细说明可查询ffmpeg ./configure参数说明
    $ ../ffmpeg/configure --prefix=/home/mhf/ffmpeg/ffmpegLib/ --enable-shared --enable-sdl2 --disable-static
    

    在这里插入图片描述

  • 构建完成后使用下列命令编译安装

    make -j8
    make install 
    
  • 安装完成后打开ffmpegLib文件夹,如下图所示

    在这里插入图片描述

  • 进入bin 文件夹,将所有.lib文件复制到ffmpegLIb/lib 文件夹中,否则使用msvc编译器调用时会报错;

    在这里插入图片描述

    在这里插入图片描述

    • 注意: 这时还不能用,使用MinGW64编译ffmpeg,还依赖于MinGW64的部分动态库,如下图所示,直接运行会报缺少库;

      在这里插入图片描述

    • 下载一个DependenciesGui.exe,这是一个检测依赖工具;

    • 下载成功后,打开DependenciesGui.exe,并将ffmpeg.exe拖进DependenciesGui.exe中;

      在这里插入图片描述

    • 依次打开依赖的ffmpeg动态库,发现下一级中会有一些红色的,这就是缺少的依赖库;

      在这里插入图片描述

    • 由于是使用MinGW64 编译的,我们就打开msys2安装路径下的mingw64文件夹 ,在bin文件夹中就可以找到缺少的库,根据DependenciesGui.exe中提示将所有缺少的库复制到ffmpegLib/bin 文件夹下就可以了;

      在这里插入图片描述

    • 复制了所有依赖库后再运行ffmpeg.exe就不会报错了;

      在这里插入图片描述

posted @ 2024-08-08 07:40  mahuifa  阅读(0)  评论(0编辑  收藏  举报  来源