You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10下编译集成libdav1d的FFmpeg问题及操作步骤求助

Windows 10 环境编译集成libdav1d的FFmpeg完整步骤

以下步骤优先满足自行编译libdav1d再集成的需求,解决你遇到的所有编译报错问题:


前置依赖准备

你之前遇到的inline语法报错、找不到lib链接器的问题,核心原因是工具链版本过旧、环境变量配置错误,先完成以下准备:

  • 安装Visual Studio 2019及以上版本(VS2010不支持dav1d所需的C11标准语法),安装时勾选「使用C++的桌面开发」工作负载,确保cl.exe、link.exe、lib.exe等MSVC工具完整安装
  • 安装MSYS2,不要继续使用老旧的MSYS 1.0环境
  • 从Windows开始菜单打开对应VS版本的x64 Native Tools Command Prompt for VS(编译32位版本则选x86对应项),在这个终端中执行C:\msys64\mingw64.exe启动MSYS2 MinGW 64位终端,这一步会自动加载所有MSVC工具的环境变量,解决找不到lib链接器的问题
  • 在启动的MSYS2终端中执行以下命令安装基础编译工具:
pacman -Syu --needed make pkgconf yasm nasm meson ninja

步骤1:编译libdav1d源码

  1. 将dav1d源码放到本地目录,例如C:\projects\dav1d
  2. 在MSYS2终端中cd到dav1d源码目录,创建并进入build目录:
mkdir build && cd build
  1. 执行meson配置,指定编译参数、安装路径(可自行修改prefix后的路径):
meson setup --default-library=static --buildtype=release --prefix=/c/projects/dav1d_output
  1. 执行编译并安装:
ninja && ninja install

编译完成后,C:\projects\dav1d_output目录下会生成bin、include、lib、lib/pkgconfig四个目录,其中包含dav1d的头文件、静态库、dav1d.pc配置文件。


步骤2:编译集成libdav1d的FFmpeg

  1. 保持上述MSYS2终端环境不变,cd到FFmpeg源码目录
  2. 配置PKG_CONFIG_PATH,让pkg-config能识别刚才编译的dav1d:
export PKG_CONFIG_PATH=/c/projects/dav1d_output/lib/pkgconfig:$PKG_CONFIG_PATH

执行pkg-config --modversion dav1d验证,正常会输出dav1d的版本号,说明路径配置正确
3. 执行FFmpeg configure命令,和你之前的参数保持一致,添加libdav1d支持:

./configure --target-os=win64 --arch=x86_64 --toolchain=msvc --enable-shared --enable-libdav1d
  1. 配置无报错后执行编译:
make -j$(nproc)

编译完成后执行./ffmpeg -decoders | findstr av1,如果能看到av1 libdav1d的条目,说明集成成功。


预编译库替代方案

如果不想自行编译libdav1d,按以下步骤配置即可解决pkg-config找不到的问题:

  1. 下载对应架构、对应MSVC版本的libdav1d预编译库,解压到C:\projects\dav1d_prebuilt
  2. 找到解压后目录内的lib/pkgconfig/dav1d.pc文件,修改prefix参数为prefix=/c/projects/dav1d_prebuilt
  3. 按照步骤2的方法配置PKG_CONFIG_PATH,验证pkg-config --modversion dav1d正常后,再编译FFmpeg即可。

内容的提问来源于stack exchange,提问作者thomasp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:54:03