详细介绍 FFmpeg7.1.1 subtitles 滤镜 force_style 支持的参数
2025-07-03 23:23:17 11 分享链接 开发笔记 ffmpeg
在FFmpeg 7.1.1版本中,force_style
参数用于通过subtitles
滤镜强制覆盖字幕的默认样式,支持SubStation Alpha (ASS) 格式的键值对配置。以下是其支持的主要参数及详细说明:
一、基础样式参数
字体设置
FontName
:指定字体名称,需确保字体文件已安装或可被FFmpeg访问。例如:FontName=Arial
。FontSize
:设置字体大小,单位为像素。例如:FontSize=24
。
颜色控制
PrimaryColour
:主文字颜色,格式为&H[A][B][G][R]
(ARGB十六进制,AA为透明度)。例如:PrimaryColour=&H00FF00FF
表示绿色(完全不透明)。SecondaryColour
:次要颜色(如卡拉OK效果),格式同上。OutlineColour
:轮廓颜色,格式同上。BackColour
:阴影或背景颜色,格式同上。
文本变形
Bold
:启用粗体,-1
为启用,0
为禁用。Italic
:启用斜体,-1
为启用,0
为禁用。Underline
:启用下划线,-1
为启用,0
为禁用。Strikeout
:启用删除线,-1
为启用,0
为禁用。ScaleX
/ScaleY
:调整文字宽度/高度百分比。例如:ScaleX=120
表示宽度增加20%。Angle
:文字旋转角度(单位:度),原点由Alignment
决定。
二、布局与对齐
位置控制
Alignment
:指定字幕位置,数值对应屏幕区域:1
:左下角,2
:下中点,3
:右下角5
:左上角,6
:上中点,7
:右上角9
:中左,10
:中间,11
:中右。
MarginL
/MarginR
/MarginV
:设置左右/垂直边距(像素),用于微调位置。
边框与背景
BorderStyle
:边框样式:1
:边框+阴影(需配合Outline
和Shadow
)3
:纯色背景(背景颜色由OutlineColour
和BackColour
叠加)。
Outline
:边框宽度(像素),BorderStyle=1
时生效。Shadow
:阴影深度(像素),BorderStyle=1
时生效。
三、高级参数
Spacing
:文字间距(像素),默认0。Angle
:文字旋转角度(单位:度),原点由Alignment
决定。LineSpacing
:多行字幕的行间距(像素),默认由字体决定。Alpha
:整体透明度,范围0-1
(需结合颜色参数的透明度通道)。
四、使用示例
基础样式
ffmpeg -i input.mp4 -vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,PrimaryColour=&H00FF00FF'" output.mp4
效果:绿色Arial字体,大小24像素。
带阴影和轮廓
ffmpeg -i input.mp4 -vf "subtitles=subs.srt:force_style='FontName=DejaVu Serif,Shadow=1,Outline=1,PrimaryColour=&HAAFFFFFF'" output.mp4
效果:半透明白色字体,1像素阴影和轮廓。
居中对齐与背景
ffmpeg -i input.mp4 -vf "subtitles=subs.srt:force_style='Alignment=2,BorderStyle=3,OutlineColour=&H80000000,BackColour=&H40000000'" output.mp4
效果:居中字幕,深灰色背景,半透明黑色轮廓。
五、注意事项
- 颜色格式:必须以
&H
开头,顺序为AABBGGRR
(如&H00FF00FF
表示绿色)。 - 字体路径:若使用自定义字体,需通过
-vf "subtitles=sub.srt:fontsdir=路径"
指定字体目录。 - 兼容性:部分参数(如自动换行)需
libass >= 0.17.0
,FFmpeg 7.1.1默认依赖libass >= 0.13.7
,可通过编译选项调整。 - 参数优先级:
force_style
会覆盖字幕文件中的样式设置,但无法修改字幕内容本身。
通过上述参数,可灵活控制字幕的外观和布局,满足不同场景的需求。实际使用时需结合具体字幕格式(如SRT、ASS)和FFmpeg版本特性进行调整。
使用ffmpeg 将 SRT 转换为 ASS
ffmpeg -i input.srt -c:s ass output.ass
一个抖音美好体字幕的实例
ffmpeg -i input.mp4 -vf "subtitles=test.srt:fontsdir=D\\:/Pythons/srtEditor:force_style='FontName=抖音美好体,FontSize=16,LineSpacing=20'" -c:v h264_nvenc output.mp4
最近更新
- 2025-07-03 22:50
- 详细介绍 FFmpeg7.1.1 subtitles 滤镜 force_style 支持的参数
- 2025-07-03 05:11
- 借助 FFmpeg 的 filter_complex 滤镜混合音频流的实例。
- 2025-07-03 02:26
- 借助 FFmpeg 的 drawtext 滤镜给视频添加标题。
- 2025-07-02 18:19
- 使用ffmpeg处理srt字幕的对齐和位置相关参数说明
- 2025-07-01 23:20
- 可以批量剪辑视频的软件有哪些呢?这五款超好用!
- 2025-05-10 17:40
- 零基础也能秒懂的场景设计课,从「叙事场景 / 氛围场景」分类到「分镜表模板」。
- 2025-05-10 17:32
- 分镜景别干货!全身/半身/特写/近景/中景/远景/全景/大特写
- 2025-05-10 17:20
- 分镜角度干货!正面 / 侧面 / 背面之外,这 3 个角度让镜头会说话
- 2025-05-10 11:11
- 豆包图像生成的万能公式与实用技巧分享
- 2025-05-07 16:00
- kimi绘画推导结果实例分享(星河)