当前位置: 首页 > news >正文

【FFMpeg】Windows下编译ffmpeg(MinGW+MSYS2)

【FFMpeg】Windows下编译ffmpeg(MinGW+MSYS2)

文章目录

  • 【FFMpeg】Windows下编译ffmpeg(MinGW+MSYS2)
    • 1、概述
    • 2、环境准备
      • 1 安装Msys2
      • 2 安装环境
    • 3、ffmpeg编译

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 -Smakediffutils pkg-configgitnasm
  • 使用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-j8makeinstall
  • 安装完成后打开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就不会报错了;

http://www.cnnetsun.cn/news/571915.html

相关文章:

  • Rembg性能测试:多模型并行处理方案
  • vLLM加速Qwen2.5-7B-Instruct,实现高性能批量推理
  • Rembg模型优化:知识蒸馏技术应用
  • Qwen2.5-7B-Instruct性能优化秘诀|vLLM加速与Chainlit前端调用
  • 构建生产级Qwen2.5-7B-Instruct服务|vLLM推理加速与Chainlit前端联动
  • ResNet18实战:从数据到模型,云端GPU全流程指南
  • ResNet18环境配置太麻烦?试试这个一键部署方案
  • 一键部署Qwen2.5-7B-Instruct大模型|vLLM+Docker高效推理方案
  • Rembg抠图应用:电商广告图制作案例
  • 告别复杂环境配置|MiDaS_small模型CPU推理镜像来了
  • 开源模型落地新姿势|Qwen2.5-7B-Instruct + vLLM实现高效服务化
  • Rembg WebUI使用指南:可视化抠图工具详解
  • 告别双目摄像头|基于AI 单目深度估计 - MiDaS的轻量级深度推理
  • 如何高效部署Qwen2.5-7B-Instruct?vLLM+Chainlit方案详解
  • 快速上手Qwen2.5-7B-Instruct:vLLM加速离线推理指南
  • 12类AI辅助论文工具横向测试:数学建模核心内容复现与排版自动化方案
  • GLM-4.7 vs Claude Opus 4.5:2025大模型场景化落地技术全解析
  • 微信小程序PHP智慧旅游线路景点酒店系统_
  • 微信小程序thinkphp_uniapp医院门诊智能就诊预约平台可视化_
  • 计算机毕业设计springboot固定线路往返公益平台 基于 SpringBoot 的社区固定班线公益拼车系统 绿色通勤:SpringBoot 驱动的定点往返共享出行平台
  • ResNet18最佳实践:云端GPU按秒计费,省钱50%
  • ResNet18图像分类懒人方案:免安装网页版,按分钟计费
  • ResNet18多任务处理:单卡并行运行3个模型,效率提升200%
  • U2NET模型应用:Rembg抠图部署与性能优化详解
  • ResNet18模型压缩指南:低成本GPU实现轻量化部署
  • AI、决定性优势的幽灵与国际冲突:架构师的深度阅读清单
  • 从2D到3D的视觉飞跃|AI 单目深度估计 - MiDaS镜像实践指南
  • ResNet18图像分类省钱攻略:比买显卡省90%,1小时1块
  • Rembg批量处理教程:高效完成多图抠图任务
  • 无需Token!CPU版MiDaS镜像实现高精度深度热力图生成