详细介绍 FFmpeg7.1.1 subtitles 滤镜 force_style 支持的参数
2025-07-03 23:23:17 56 分享链接 开发笔记 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-23 16:35
- 在Python中如何获取脚本所在的目录?
- 2025-07-23 01:09
- Edge-tts库一次支持多少个中文,语速支持设置吗?
- 2025-07-23 01:07
- Edge-tts库怎么生成字幕?
- 2025-07-23 01:00
- Edge浏览器的语音模型怎么集成到python中使用
- 2025-07-18 00:20
- 详细说明在Python中如何使用元组作为函数的返回值。
- 2025-07-18 00:15
- 在图形用户界面(GUI)编程中 启动一个新的线程可以避免阻塞 GUI 线程。
- 2025-07-17 20:11
- MoviePy 是一个用于视频编辑的 Python 库,依赖Ffmpeg运行,适合无法直接使用 FFmpeg 的场景。
- 2025-07-16 19:31
- 使用FFmpeg 做混剪软件的命令解释
- 2025-07-15 16:13
- 抖音直播下载的文件flv,现在用播放器播放不了的解决办法。
- 2025-07-13 16:32
- 使用OpenCV 给豆包生成的图片去除水印的命令