You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ffmpeg在视频任意位置批量展示多条字幕

多时段任意位置多字幕的写入实现方案

推荐方案:使用ASS(Advanced SubStation Alpha)字幕格式

ASS是目前支持精确定位、多轨同步显示兼容性最好的字幕格式,原生支持时间、坐标参数自定义,无需第三方工具扩展。

基础文件结构示例

[Script Info]
Title: 自定义多位置字幕
ScriptType: v4.00+
PlayResX: 1920 # 替换为你的视频宽度
PlayResY: 1080 # 替换为你的视频高度

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,微软雅黑,24,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
# 下方为字幕条目,可按需添加任意数量
Dialogue: 0,0:00:01.00,0:00:05.00,Default,,0,0,0,,{\pos(100,200)}第1秒到第5秒显示的左上角字幕
Dialogue: 1,0:00:01.00,0:00:05.00,Default,,0,0,0,,{\pos(1600,900)}第1秒到第5秒同步显示的右下角字幕
Dialogue: 0,0:00:06.00,0:00:10.00,Default,,0,0,0,,{\pos(960,540)}第6秒到第10秒显示的居中字幕

参数说明

  • 时间参数:格式为时:分:秒.毫秒,精确到10毫秒即可满足常规需求,同一时段可添加任意条不同坐标的字幕
  • 位置参数:\pos(x,y)标记放在字幕文本最前端,x为横坐标、y为纵坐标,屏幕左上角为坐标原点(0,0),数值和你设定的PlayResX/PlayResY对应
  • 图层参数:Dialogue后的第一个数字为图层,数值越大显示层级越高,重叠时优先级更高

使用方法

将编写完成的内容保存为.ass后缀的文件,即可直接导入剪映、Premiere、FFmpeg等剪辑工具,或主流播放器直接加载使用。

备选方案:SRT格式扩展定位

如果必须使用SRT格式,可通过ASS兼容标记实现定位,兼容性略低于原生ASS格式:

1
00:00:01,000 --> 00:00:05,000
{\pos(100,200)}左上角字幕

2
00:00:01,000 --> 00:00:05,000
{\pos(1600,900)}右下角字幕

SRT格式时间参数毫秒部分用逗号分隔,其余坐标规则和ASS一致。

批量生成提示

如果已有整理好的时间、坐标、文本清单,可以将清单导出为CSV格式,通过简单的字符串拼接脚本批量生成对应字幕行,无需手动逐条编写。

内容的提问来源于stack exchange,提问作者cxrodgers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:24:03