ffmpeg7.0 + visual studio 2022 release lib 静态库编译使用

2 篇文章 0 订阅

下载已编译好的release静态库:https://github.com/cfl997

前一篇是在windows下采用 msys2 的编译。可以正常使用。

但是在dlltool工具将.a转成.lib时并不能很好的使用。如果大家针对于.a的转换有什么好的方法,欢迎交流。

FFmpeg 7.0 + Visual Studio 2022 静态库编译使用指南

本指南详细介绍了如何在 Windows 环境下使用 Visual Studio 2022 和 FFmpeg 7.0 进行静态库编译,并解决可能遇到的依赖库问题。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1. 环境准备
  • 确保已经安装 Visual Studio 2022
2. 创建项目目录
  1. 创建主目录
    • 新建目录 msvc-ffmpeg
    • msvc-ffmpeg 目录下新建子目录:msvcsource
3. 获取 FFmpeg 源代码及依赖库
  1. 克隆 FFmpeg 源代码

    • 打开 source 目录,并执行以下命令:
      git clone https://github.com/ShiftMediaProject/FFmpeg.git
      cd FFmpeg
      
  2. 下载依赖库

    • 执行以下命令,确保所有依赖库下载完成:
      ./project_get_dependencies.bat
      
    • 多次执行该命令,以确保每个依赖库都已克隆完毕。
    • 您也可以手动在 source 目录下克隆或解压依赖库,保持目录名称不变。

在这里插入图片描述

  1. 验证依赖库完整性
    • 打开 ffmpeg_deps.sln,确保所有依赖库加载正确。
4. 获取额外的头文件
  1. 创建 include 目录结构

    • msvc 目录下新建 include 目录。
    • include 目录内新建 glAMF 目录。
  2. 克隆并复制头文件

    cd include
    
    git clone https://github.com/KhronosGroup/OpenGL-Registry.git
    cp OpenGL-Registry/api/GL/glext.h OpenGL-Registry/api/GL/wglext.h gl/
    
    git clone https://github.com/KhronosGroup/EGL-Registry.git
    cp -r EGL-Registry/api/KHR .
    
    git clone https://github.com/FFmpeg/nv-codec-headers.git
    cp -r nv-codec-headers/include/ffnvcodec .
    
    git clone https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git
    cp -r AMF/amf/public/include/* AMF/
    
5. 安装 VSNASM 和 VSYASM
  1. 下载并安装 VSNASM 和 VSYASM

    • 从以下链接下载最新版本的 VSNASM 和 VSYASM:
  2. 执行安装脚本

    • 打开 Developer PowerShell for VS 2022

    • 切换到下载并解压的目录中,分别执行 install_script.bat

      cd path\to\VSNASM
      ./install_script.bat
      
      cd path\to\VSYASM
      ./install_script.bat
      
    • 如果脚本不支持 VS 2022,您可能需要手动修改 install_script.bat 文件以包括 VS 2022。

6. 编译 FFmpeg
  1. 确保所有依赖库和环境已正确配置

    • 确认 install_script.bat 中的所有库都已正确加载。
  2. 开始编译

    • 打开 Visual Studio 2022,加载 ffmpeg_deps.sln
    • 配置编译选项为 Release 模式。
    • 开始编译。
  3. 编译结果

    • 编译生成的文件将位于 msvc 目录下的 libbin 目录中。

补全全上一篇对.a文件的转换:

7. 将 .a 文件转换为 .lib 文件
  1. 使用 MinGW 提供的工具

    • 您可以使用 dlltool 工具进行转换:
      dlltool -l library.lib -d library.def -k
      
  2. 使用 MSYS2 的 ar 工具

    • 提取对象文件并重新打包为 .lib 文件:
      ar -x library.a
      lib /OUT:library.lib *.obj
      

以上步骤完成后,您将能够在 Windows 环境下使用 Visual Studio 2022 编译并使用 FFmpeg 7.0 静态库。

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

磊磊cpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值