ffmpeg6.1 Windows编译支持drawtext滤镜功能一、编译环境准备在 Windows 下用 MSVC 编译 FFmpeg最省事儿的方式是借助 MSYS2 来充当壳环境用来执行 configure脚本和 make命令而实际的编译工作交给 VS2017 的编译器 (cl.exe) 完成。1. 安装 VS2017确保安装了“使用 C 的桌面开发”工作负载并在右侧的可选组件里勾选 Windows SDK。2. 安装 MSYS2前往 MSYS2 官网下载并安装。打开 MSYS2 MinGW 32-bit注意不是 UCRT 或 Clang。更新核心库并安装必备工具pacman-Syu pacman-S base-devel mingw-w64-i686-toolchain nasm yasm二、依赖库准备drawtext滤镜强依赖 freetype.lib和harfbuzz.lib。在 MSVC 环境下我们有两种常见的方式来获取它方案一直接下载预编译的 FreeType和Harfbuzz强烈推荐省时省力GitHub 上有大神维护的 MSVC 静态库版本我们可以直接“白嫖”访问 https://github.com/ShiftMediaProject 搜索 freetype2和Harfbuzz库的msvc预编译包。下载与 VS2017 兼容的版本解压后将 include 文件夹复制到 MSYS2 的 /usr/local/include将 lib 文件夹复制到 /usr/local/lib。方案二使用 VS2017 自行编译 FreeType如果你偏好自己动手也非常简单1.下载 FreeType 和Harfbuzz源码。2.用 VS2017 打开源码中的 builds/windows/vc2010/freetype.slnVS2017 会自动升级项目文件。3.选择 Release和 WIN32右键项目属性将“配置类型”改为“静态库(.lib)”。4.点击编译得到 freetype.lib。5.将生成的 freetype.lib放入 MSYS2 的 /usr/local/lib将源码中的 include文件夹放入 /usr/local/include/freetype。6.Harfbuzz库编译指令Harfbuzz库依赖freetype可以讲下载的vs2017库放进源码中并添加一下路径。#!/bin/bash # 当前脚本的目录 base_path$(cd dirname $0;pwd)rm-rf build cmake-B build-S.-GVisual Studio 15 2017-A WIN32-DCMAKE_BUILD_TYPERelease \-DFREETYPE_INCLUDE_DIRS$base_path/libfreetype2_VER-2-13-3_msvc17/include/freetype2\-DFREETYPE_LIBRARY$base_path/libfreetype2_VER-2-13-3_msvc17/lib/x86/libfreetype.lib\-DBUILD_SHARED_LIBSOFF-DHB_HAVE_FREETYPEON-DHB_HAVE_GLIBOFF-DHB_HAVE_ICUOFF cmake--build build--config Release-j4三、编译ffmpeg6.1下载ffmpeg6.1 源码并解压到MSYS2安装目录的/home/电脑用户名目录下/,例如我的目录是/home/lizi/1.找到MSYS2安装目录并在目录下新建msys_vs2017.bat文件编写配置vs2017环境的脚本。setMSYS2_PATH_TYPEinherit callC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.batmsys2_shell.cmd-mingw322.双击运行msys_vs2017.bat脚本。3. 配置 FFmpeg 编译参数 执行以下configure命令重点开启–enable-filterdrawtext–enable-libfreetype–enable-libharfbuzz–disable-libfontconfig–disable-libfribidi并指定使用MSVC工具链。./configure \--toolchainmsvc \--archx86 \--disable-shared \--enable-static\--enable-libfreetype \--enable-gpl \--disable-debug \--extra-cflags-I/usr/local/include\--extra-ldflags-LIBPATH:/usr/local/lib\--prefix../install–toolchainmsvc告诉脚本我们要用 Visual Studio 的编译器。–enable-libfreetype开启文字水印功能的核心开关–prefix编译完成后文件输出的目录。4.开始编译与安装make-j8 make install四、验证成果编译完成之后去上一步–prefix设置的目录如…/install找到生成的ffmpeg.exe文件。打开cmd或PowerShell运行以下命令测试drawtext是否生效。ffmpeg.exe-versionffmpeg.exe-filters|findstr drawtext如果能在输出列表中看到 drawtext恭喜你编译成功你可以随便丢一个视频和一个 .ttf字体文件在同目录下用以下命令测试加个简单的红色文字水印ffmpeg.exe-iinput.mp4-vfdrawtextfontfileyour_font.ttf:textHello World:fontcolorred:fontsize48:x10:y10-c:acopy output.mp4
ffmpeg6.1 Windows编译支持drawtext滤镜功能
ffmpeg6.1 Windows编译支持drawtext滤镜功能一、编译环境准备在 Windows 下用 MSVC 编译 FFmpeg最省事儿的方式是借助 MSYS2 来充当壳环境用来执行 configure脚本和 make命令而实际的编译工作交给 VS2017 的编译器 (cl.exe) 完成。1. 安装 VS2017确保安装了“使用 C 的桌面开发”工作负载并在右侧的可选组件里勾选 Windows SDK。2. 安装 MSYS2前往 MSYS2 官网下载并安装。打开 MSYS2 MinGW 32-bit注意不是 UCRT 或 Clang。更新核心库并安装必备工具pacman-Syu pacman-S base-devel mingw-w64-i686-toolchain nasm yasm二、依赖库准备drawtext滤镜强依赖 freetype.lib和harfbuzz.lib。在 MSVC 环境下我们有两种常见的方式来获取它方案一直接下载预编译的 FreeType和Harfbuzz强烈推荐省时省力GitHub 上有大神维护的 MSVC 静态库版本我们可以直接“白嫖”访问 https://github.com/ShiftMediaProject 搜索 freetype2和Harfbuzz库的msvc预编译包。下载与 VS2017 兼容的版本解压后将 include 文件夹复制到 MSYS2 的 /usr/local/include将 lib 文件夹复制到 /usr/local/lib。方案二使用 VS2017 自行编译 FreeType如果你偏好自己动手也非常简单1.下载 FreeType 和Harfbuzz源码。2.用 VS2017 打开源码中的 builds/windows/vc2010/freetype.slnVS2017 会自动升级项目文件。3.选择 Release和 WIN32右键项目属性将“配置类型”改为“静态库(.lib)”。4.点击编译得到 freetype.lib。5.将生成的 freetype.lib放入 MSYS2 的 /usr/local/lib将源码中的 include文件夹放入 /usr/local/include/freetype。6.Harfbuzz库编译指令Harfbuzz库依赖freetype可以讲下载的vs2017库放进源码中并添加一下路径。#!/bin/bash # 当前脚本的目录 base_path$(cd dirname $0;pwd)rm-rf build cmake-B build-S.-GVisual Studio 15 2017-A WIN32-DCMAKE_BUILD_TYPERelease \-DFREETYPE_INCLUDE_DIRS$base_path/libfreetype2_VER-2-13-3_msvc17/include/freetype2\-DFREETYPE_LIBRARY$base_path/libfreetype2_VER-2-13-3_msvc17/lib/x86/libfreetype.lib\-DBUILD_SHARED_LIBSOFF-DHB_HAVE_FREETYPEON-DHB_HAVE_GLIBOFF-DHB_HAVE_ICUOFF cmake--build build--config Release-j4三、编译ffmpeg6.1下载ffmpeg6.1 源码并解压到MSYS2安装目录的/home/电脑用户名目录下/,例如我的目录是/home/lizi/1.找到MSYS2安装目录并在目录下新建msys_vs2017.bat文件编写配置vs2017环境的脚本。setMSYS2_PATH_TYPEinherit callC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.batmsys2_shell.cmd-mingw322.双击运行msys_vs2017.bat脚本。3. 配置 FFmpeg 编译参数 执行以下configure命令重点开启–enable-filterdrawtext–enable-libfreetype–enable-libharfbuzz–disable-libfontconfig–disable-libfribidi并指定使用MSVC工具链。./configure \--toolchainmsvc \--archx86 \--disable-shared \--enable-static\--enable-libfreetype \--enable-gpl \--disable-debug \--extra-cflags-I/usr/local/include\--extra-ldflags-LIBPATH:/usr/local/lib\--prefix../install–toolchainmsvc告诉脚本我们要用 Visual Studio 的编译器。–enable-libfreetype开启文字水印功能的核心开关–prefix编译完成后文件输出的目录。4.开始编译与安装make-j8 make install四、验证成果编译完成之后去上一步–prefix设置的目录如…/install找到生成的ffmpeg.exe文件。打开cmd或PowerShell运行以下命令测试drawtext是否生效。ffmpeg.exe-versionffmpeg.exe-filters|findstr drawtext如果能在输出列表中看到 drawtext恭喜你编译成功你可以随便丢一个视频和一个 .ttf字体文件在同目录下用以下命令测试加个简单的红色文字水印ffmpeg.exe-iinput.mp4-vfdrawtextfontfileyour_font.ttf:textHello World:fontcolorred:fontsize48:x10:y10-c:acopy output.mp4