windows下编译ffmpeg

依赖环境安装

  • ffmpeg不支持vs直接编译,需要通过mingw64结合msvc环境一起编译,mingw64+msvc环境配置比较麻烦,本文通过安装msys2来配置依赖环境。

  • 安装MSYS2,直接官网下载安装
    MSYS2

  • 安装完成后,打开终端,输入下面命令,安装mingw64+msvc环境
    pacman -S mingw-w64-x86_64-toolchain

下载源码

编译安装

  • 配置msvc编译环境
    • 通过vs2019命令行启动msys2终端,windows编译过程需要用到cl.ex,link.exe,因此需要配置msvc编译环境,否则会编译会报错找不到cl.exe或者找不到libcmt.lib之类的错误
    • 直接打开vs2019命令提示符工具,或者在cmd下运行vcvarsall.bat脚本,该脚本在vs的安装目录下,如:
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat
    • 在命令行工具下执行msys2安装目录下的msys2_shell.cmd脚本
      C:\msys64\msys2_shell.cmd -use-full-path
  • 编译&安装(configure、make、make install三件套)
    • configure,使用如下配置,更多选项配置可以输入configure --help查看
      ./configure --prefix=windows --toolchain=msvc --enable-shared --enable-parsers --enable-ffprobe --enable-ffplay --enable-avdevice
    • make -j4
    • make install
  • 编译完成后会在windows的目录下生成dll、lib、头文件等内容

引用案例

写了一个简单的提取指定帧图像的demo,运行时提示找不到avcodec-57.dll、avutil-55.dll、avformat-57.dll,但最新版本编译出来的
只有avutil-57.dll\avcodec-59.dll\avformat-59.dll,怀疑是demo当中引用了旧版本的接口导致的

posted @ 2022-08-10 11:27  vathena  阅读(747)  评论(0编辑  收藏  举报