使用ffmpeg处理srt字幕的对齐和位置相关参数说明
2025-07-03 01:04:17 21 分享链接 开发笔记 ffmpeg
在使用ffmpeg时,Alignment=2,Y=-50
不支持Y参数,可以使用MarginV
参数来调整字幕的垂直位置。以下是关于ffmpeg字幕srt对齐和位置设置的详细说明:
在命令行中输入以下命令可以获取关于subtitles
滤镜的详细帮助
ffmpeg -h filter=subtitles
字幕对齐
Alignment
参数用于设置字幕的对齐方式,取值范围是1-9,常见的对齐方式如下:1
: 左下角。2
: 下中点。3
: 右下角。5
: 左上角。6
: 上中心。7
: 右上角。9
: 中左。10
: 中间。11
: 中右。
字幕位置
除了对齐方式外,还可以通过以下参数来微调字幕的位置:
MarginL
: 设置字幕与左边界的距离。MarginR
: 设置字幕与右边界的距离。MarginV
: 设置字幕与底部的垂直距离。
例如,要将字幕设置为底部居中,并且距离底部有5像素的距离,可以使用以下命令:
ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='Alignment=2,MarginV=5'" output.mp4
如果要将字幕设置在视频的中间位置,可以将
Alignment
设置为10,命令如下:ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='Alignment=10'" output.mp4
当需要将字幕向上移动时,可以通过设置
MarginV
为负值来实现。例如,将字幕向上移动10像素:ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='Alignment=2,MarginV=-10'" output.mp4
还可以使用
Origin
参数来设置字幕的位置,Origin
参数可以指定字幕的起始位置,与Alignment
参数配合使用可以更灵活地控制字幕的位置。例如:ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='Alignment=2,Origin=0,0'" output.mp4
此命令将字幕设置在视频的左上角。
Linespacing
参数用于设置字幕行间距。例如,设置行间距为5像素:ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='Linespacing=5'" output.mp4
参数说明
01.Name 风格(Style)的名称. 区分大小写. 不能包含逗号.
02.Fontname 使用的字体名称, 区分大小写.
03.Fontsize 字体的字号
04.PrimaryColour 设置主要颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR. 为字幕填充颜色
05.SecondaryColour 设置次要颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR. 在卡拉OK效果中由次要颜色变为主要颜色.
06.OutlineColour 设置轮廓颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR.
07.BackColour 设置阴影颜色, 为蓝-绿-红三色的十六进制代码相排列, BBGGRR. ASS的这些字段还包含了alpha通道信息. (AABBGGRR), 注ASS的颜色代码要在前面加上&H
08.Bold -1为粗体, 0为常规
09.Italic -1为斜体, 0为常规
10.Underline [-1 或者 0] 下划线
11.Strikeout [-1 或者 0] 中划线/删除线
12.ScaleX 修改文字的宽度. 为百分数
13.ScaleY 修改文字的高度. 为百分数
14.Spacing 文字间的额外间隙. 为像素数
15.Angle 按Z轴进行旋转的度数, 原点由alignment进行了定义. 可以为小数
16.BorderStyle 1=边框+阴影, 3=纯色背景. 当值为3时, 文字下方为轮廓颜色的背景, 最下方为阴影颜色背景.
17.Outline 当BorderStyle为1时, 该值定义文字轮廓宽度, 为像素数, 常见有0, 1, 2, 3, 4.
18.Shadow 当BorderStyle为1时, 该值定义阴影的深度, 为像素数, 常见有0, 1, 2, 3, 4.
19.Alignment 定义字幕的位置. 字幕在下方时, 1=左对齐, 2=居中, 3=右对齐. 1, 2, 3加上4后字幕出现在屏幕上方. 1, 2, 3加上8后字幕出现在屏幕中间. 例: 11=屏幕中间右对齐. Alignment对于ASS字幕而言, 字幕的位置与小键盘数字对应的位置相同.
20.MarginL 字幕可出现区域与左边缘的距离, 为像素数
21.MarginR 字幕可出现区域与右边缘的距离, 为像素数
22.MarginV 垂直距离
底部居中对齐,离底部200
ffmpeg -i input.mp4 -vf "scale=1080:1920,subtitles=test.srt:original_size=1080x1920:force_style='FontSize=12,Alignment=2,MarginV=200'" -c:v h264_nvenc output.mp4
顶部居中对齐,离顶部200
ffmpeg -i input.mp4 -vf "scale=1080:1920,subtitles=test.srt:original_size=1080x1920:force_style='FontSize=12,Alignment=6,MarginV=200'" -c:v h264_nvenc output.mp4
带背景
ffmpeg -i input.mp4 -vf "scale=1080:1920,subtitles=test.srt:original_size=1080x1920:force_style='FontSize=12,Alignment=2,MarginV=50,OutlineColour=&H100000000,BorderStyle=3'" -c:v h264_nvenc output.mp4
重置所有
ffmpeg -i inputx.mp4 -vf "subtitles=test.srt:original_size=1920x1080:force_style='FontSize=8,MarginV=10,Alignment=2,BorderStyle=1,Outline=0,Shadow=0,Spacing=100,ScaleX=100,ScaleY=100,Bold=0,Italic=0,Underline=0,StrikeOut=0'" -c:v h264_nvenc output.mp4
参考文档
最近更新
- 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绘画推导结果实例分享(星河)
- 2025-05-06 16:00
- kimi推理过程记录之小说改文