2023/06/19 对 ffmpeg drawtext 过滤器进行了以下提交:
avfilter/vf_drawtext:改进字形塑造和定位
avfilter/vf_drawtext:对 text_align 使用标志类型的选项
使用这些更改构建的 ffmpeg 会产生有问题的字体渲染结果。例如,在渲染运行时间码时 - 见下文。尽管使用了不应出现此问题的等宽字体,并且如图所示,在上述提交之前没有出现此问题。
ffmpeg -f lavfi -i "color=black:size=300x100:rate=24" -t 2 -vf "drawtext=fontfile=/Library/Fonts/DroidSansMono.ttf: fontcolor=white: fontsize=40: x=(w-tw)/2: y=(h-th)/2: rate=24: timecode='01\:14\:13\:19'" timecode.mov
2023/06/19 之前 drawtext 变更(ffmpeg 版本 N-111124-g61047f0f8):
2023/06/19 drawtext 更改后(ffmpeg 版本 N-111242-g1bcb8a7338):
我不确定这是否是使用 text_align 命令的问题(该命令的文档不是很清楚)或者是 libharfbuz 库引入的错误。
我正在使用的当前 ffmpeg 版本显示了此问题:
ffmpeg version N-111671-gc7ff0c3e4b-https://www.martin-riedl.de Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 14.0.0 (clang-1400.0.29.102)
configuration: --prefix=/Volumes/ffmpeg_arm64/out --pkg-config-flags=--static --extra-version='https://www.martin-riedl.de' --enable-gray --enable-libxml2 --enable-gpl --enable-libfreetype --enable-fontconfig --enable-libharfbuzz --enable-libbluray --enable-libsnappy --enable-libvmaf --enable-libass --enable-libklvanc --enable-libzimg --enable-libzvbi --enable-libaom --enable-libopenh264 --enable-libopenjpeg --enable-librav1e --enable-libsvtav1 --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libtheora
非常感谢您的建议。