FFmpeg 添加黄色边框黑色自定义字体的命令说明
2025-07-07 17:00:17 80 分享链接 开发笔记 ffmpeg python cmd
通过FontName自定义字体需要注意使用内部字体名称
ffmpeg -i test.mp4 -vf "scale=1920:1440,subtitles=test.srt:original_size=1920x1440:fontsdir=D\\:/XiaoShuoMediaNew/fonts:force_style='FontName=HelloFont ID JiangHuTi,FontSize=15,PrimaryColour=&H0000ffff,Outline=1,OutlineColour=&H20000000,BorderStyle=0,Shadow=0,Bold=0,Italic=0,Spacing=0.5'" -c:v h264_nvenc -y output.mp4
确认字体的实际内部名称的方法
# Linux/macOS系统
fc-list | grep "江湖"
# Windows系统(需要安装fonttools)
pip install fonttools
ttx -t name "D:/XiaoShuoMediaNew/fonts/HelloFont ID JiangHuTi.ttf"
运行 ttx -t name "D:/XiaoShuoMediaNew/fonts/HelloFont ID JiangHuTi.ttf"
命令后,会生成一个同名的 XML 文件(例如 HelloFont ID JiangHuTi.ttx
),其中包含字体的元数据信息。实际内部名称通常可以在 <nameRecord>
标签中找到,具体要看 nameID
和 platformID
的组合。
关键参数解释
在生成的 XML 文件中,你需要关注以下字段:
nameID:标识名称类型
nameID="1"
:字体家族名称(Family Name)nameID="4"
:完整字体名称(Full Name)nameID="6"
:PostScript 名称(不带空格)
platformID:平台标识符
platformID="3"
:Windows 平台platformID="1"
:Macintosh 平台
对于 FFmpeg 的 FontName
参数,通常应该使用 nameID="1" 或 nameID="4" 且 platformID="3" 的值。在上面的例子中,有效的字体名称可能是:
自由点字江湖体
(nameID=1)自由点字江湖体 Regular
(nameID=4)
在subtitles滤镜中,如果你想使用自定义字体文件,应该通过以下方式:
- 使用fontsdir参数指定字体目录,并确保字体文件在此目录中
- 使用FontName参数指定字体的内部名称(不是文件名)
最近更新
- 2025-08-18 17:59
- OpenType 字体规范中字体名称表(name 表)核心参数及常用值整理
- 2025-08-16 21:37
- 详细介绍一下subprocess是个什么库?
- 2025-08-14 18:43
- Windows 环境下隐藏subprocess命令行窗口的补丁技术详解
- 2025-08-12 23:48
- 介绍一下Github上自动化视频剪辑(如根据音频 / 字幕匹配视频片段)有哪些项目
- 2025-08-12 23:34
- 在 FFmpeg 中 通过 concat 合并多个文件时里要注意时间基与像素格式
- 2025-08-12 00:22
- 优化豆包智能分镜、分段的提示词与智能体2025.08.12
- 2025-08-04 16:13
- 详细介绍一下 tkinter 的pack布局参数
- 2025-08-03 17:50
- pyinstaller --onefile --windowed 与 pyinstaller -F -w的区别
- 2025-08-03 17:39
- 使用 PyInstaller 打包 Python 程序时 隐藏调用其它程序的命令窗口。
- 2025-08-03 11:04
- 使用 PyInstaller 打包 Python 程序时 -F 与 -D的区别。