ffmpeg-captions-subtitles

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

CRITICAL GUIDELINES

重要指南

Windows File Path Requirements

Windows文件路径要求

MANDATORY: Always Use Backslashes on Windows for File Paths
When using Edit or Write tools on Windows, you MUST use backslashes (
\
) in file paths, NOT forward slashes (
/
).
强制要求:Windows系统下文件路径必须使用反斜杠
在Windows系统使用编辑或写入工具时,文件路径必须使用反斜杠(
\
),不能使用正斜杠(
/
)。

Documentation Guidelines

文档规范

NEVER create new documentation files unless explicitly requested by the user.

除非用户明确要求,否则绝不创建新的文档文件。

Quick Reference

快速参考

TaskCommand
Burn SRT
ffmpeg -i video.mp4 -vf "subtitles=subs.srt" output.mp4
Burn ASS
ffmpeg -i video.mp4 -vf "ass=subs.ass" output.mp4
Add soft sub
ffmpeg -i video.mp4 -i subs.srt -c copy -c:s mov_text output.mp4
Extract sub
ffmpeg -i video.mkv -map 0:s:0 output.srt
Style subs
-vf "subtitles=s.srt:force_style='FontSize=24,PrimaryColour=&HFFFFFF'"
Text overlay
-vf "drawtext=text='Hello':x=10:y=10:fontsize=24:fontcolor=white"
FormatExtensionBest For
SRT.srtSimple, universal
ASS.assStyled, animated, anime
VTT.vttWeb/HTML5 video
任务命令
硬嵌入SRT字幕
ffmpeg -i video.mp4 -vf "subtitles=subs.srt" output.mp4
硬嵌入ASS字幕
ffmpeg -i video.mp4 -vf "ass=subs.ass" output.mp4
添加软字幕
ffmpeg -i video.mp4 -i subs.srt -c copy -c:s mov_text output.mp4
提取字幕
ffmpeg -i video.mkv -map 0:s:0 output.srt
设置字幕样式
-vf "subtitles=s.srt:force_style='FontSize=24,PrimaryColour=&HFFFFFF'"
添加文本叠加层
-vf "drawtext=text='Hello':x=10:y=10:fontsize=24:fontcolor=white"
格式扩展名适用场景
SRT.srt简单通用
ASS.ass带样式、动画,适用于动漫
VTT.vtt网页/HTML5视频

When to Use This Skill

适用场景

Use for subtitle and caption operations:
  • Hardcoding (burning) subtitles into video
  • Adding soft subtitle tracks to containers
  • Extracting subtitles from MKV/MP4
  • Styling captions (font, color, position)
  • Dynamic text overlays

适用于以下字幕与隐藏式字幕操作
  • 将字幕硬嵌入(烧录)到视频中
  • 向容器添加软字幕轨道
  • 从MKV/MP4中提取字幕
  • 设置字幕样式(字体、颜色、位置)
  • 添加动态文本叠加层

FFmpeg Captions and Subtitles (2025)

FFmpeg字幕与隐藏式字幕指南(2025版)

Complete guide to working with subtitles, closed captions, and text overlays using FFmpeg.
使用FFmpeg处理字幕、隐藏式字幕和文本叠加层的完整指南。

Subtitle Format Reference

字幕格式参考

Supported Formats

支持的格式

FormatExtensionFeaturesUse Case
SubRip.srtSimple timing + textUniversal, web
Advanced SubStation Alpha.ass/.ssaRich styling, positioning, effectsAnime, styled subs
WebVTT.vttWeb standard, cues, stylingHTML5 video
TTML/DFXP.ttml/.dfxpBroadcast, accessibilityStreaming services
MOV Text.mov (embedded)QuickTime nativeApple ecosystem
DVB Subtitle(embedded)Bitmap-basedEuropean broadcast
PGS.supBlu-ray bitmap subtitlesBlu-ray
CEA-608/708(embedded)Closed captionsUS broadcast, streaming
格式扩展名特性适用场景
SubRip.srt简单时间轴+文本通用、网页
Advanced SubStation Alpha.ass/.ssa丰富样式、定位、特效动漫、带样式字幕
WebVTT.vtt网页标准、提示标记、样式HTML5视频
TTML/DFXP.ttml/.dfxp广播级、无障碍流媒体服务
MOV Text.mov(内嵌)QuickTime原生格式Apple生态系统
DVB Subtitle(内嵌)位图格式欧洲广播
PGS.sup蓝光位图字幕蓝光视频
CEA-608/708(内嵌)隐藏式字幕美国广播、流媒体

Format Characteristics

格式特性

bash
SRT (SubRip):
- Simple text-based format
- Supports basic HTML tags (<b>, <i>, <u>)
- Widely compatible
- No positioning or advanced styling

ASS/SSA:
- Advanced styling (fonts, colors, outlines)
- Precise positioning anywhere on screen
- Animation and effects support
- Karaoke timing

WebVTT:
- HTML5 standard format
- CSS-like styling
- Cue settings for positioning
- Speaker identification
bash
SRT (SubRip):
- 简单的文本格式
- 支持基础HTML标签(<b>, <i>, <u>- 兼容性广泛
- 不支持定位或高级样式

ASS/SSA:
- 高级样式(字体、颜色、轮廓)
- 可精确定位到屏幕任意位置
- 支持动画和特效
- 支持卡拉OK时间轴

WebVTT:
- HTML5标准格式
- 类CSS样式
- 支持提示标记定位
- 支持说话人识别

Burning Subtitles (Hardcoding)

字幕硬嵌入(烧录)

Basic Subtitle Burn-in

基础字幕硬嵌入

bash
undefined
bash
undefined

Burn SRT subtitles

硬嵌入SRT字幕

ffmpeg -i video.mp4 -vf "subtitles=subs.srt" output.mp4
ffmpeg -i video.mp4 -vf "subtitles=subs.srt" output.mp4

Burn ASS/SSA subtitles (preserves styling)

硬嵌入ASS/SSA字幕(保留样式)

ffmpeg -i video.mp4 -vf "ass=subs.ass" output.mp4
ffmpeg -i video.mp4 -vf "ass=subs.ass" output.mp4

Burn subtitles from MKV container

从MKV容器中硬嵌入字幕

ffmpeg -i video.mkv -vf "subtitles=video.mkv" output.mp4
ffmpeg -i video.mkv -vf "subtitles=video.mkv" output.mp4

Burn specific subtitle track (index 0)

硬嵌入指定字幕轨道(索引0)

ffmpeg -i video.mkv -vf "subtitles=video.mkv:si=0" output.mp4
ffmpeg -i video.mkv -vf "subtitles=video.mkv:si=0" output.mp4

Burn subtitles with stream index

通过流索引硬嵌入字幕

ffmpeg -i video.mkv -vf "subtitles=video.mkv:stream_index=1" output.mp4
undefined
ffmpeg -i video.mkv -vf "subtitles=video.mkv:stream_index=1" output.mp4
undefined

Styled Subtitle Burn-in

带样式的字幕硬嵌入

bash
undefined
bash
undefined

Force style (overrides subtitle styling)

强制设置样式(覆盖字幕原有样式)

ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,PrimaryColour=&HFFFFFF,OutlineColour=&H000000,Outline=2,Shadow=1'"
output.mp4
ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,PrimaryColour=&HFFFFFF,OutlineColour=&H000000,Outline=2,Shadow=1'"
output.mp4

Yellow subtitles with black outline

黄色字幕配黑色轮廓

ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='FontSize=28,PrimaryColour=&H00FFFF,OutlineColour=&H000000,Outline=3'"
output.mp4
ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='FontSize=28,PrimaryColour=&H00FFFF,OutlineColour=&H000000,Outline=3'"
output.mp4

Larger font for accessibility

大字体适配无障碍需求

ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='FontSize=36,Bold=1'"
output.mp4
undefined
ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='FontSize=36,Bold=1'"
output.mp4
undefined

ASS Style Parameters

ASS样式参数

ParameterDescriptionExample
FontNameFont family
FontName=Arial
FontSizeSize in points
FontSize=24
PrimaryColourText color (AABBGGRR)
PrimaryColour=&HFFFFFF
SecondaryColourKaraoke color
SecondaryColour=&H00FFFF
OutlineColourOutline/border color
OutlineColour=&H000000
BackColourShadow/background color
BackColour=&H80000000
BoldBold text (0/1)
Bold=1
ItalicItalic text (0/1)
Italic=1
UnderlineUnderlined text (0/1)
Underline=1
OutlineOutline width
Outline=2
ShadowShadow depth
Shadow=1
AlignmentPosition (numpad style)
Alignment=2
MarginL/R/VMargins in pixels
MarginV=50
参数说明示例
FontName字体家族
FontName=Arial
FontSize字号(磅)
FontSize=24
PrimaryColour文本颜色(AABBGGRR格式)
PrimaryColour=&HFFFFFF
SecondaryColour卡拉OK高亮颜色
SecondaryColour=&H00FFFF
OutlineColour轮廓/边框颜色
OutlineColour=&H000000
BackColour阴影/背景颜色
BackColour=&H80000000
Bold粗体(0/1)
Bold=1
Italic斜体(0/1)
Italic=1
Underline下划线(0/1)
Underline=1
Outline轮廓宽度
Outline=2
Shadow阴影深度
Shadow=1
Alignment位置(小键盘布局)
Alignment=2
MarginL/R/V边距(像素)
MarginV=50

Color Format (ASS)

ASS颜色格式

text
ASS uses &HAABBGGRR format (Alpha, Blue, Green, Red):
- White: &HFFFFFF or &H00FFFFFF
- Black: &H000000 or &H00000000
- Yellow: &H00FFFF (00-Blue, FF-Green, FF-Red)
- Red: &H0000FF
- Blue: &HFF0000
- 50% transparent black: &H80000000
text
ASS使用&AABBGGRR格式(Alpha, Blue, Green, Red):
- 白色:&HFFFFFF 或 &H00FFFFFF
- 黑色:&H000000 或 &H00000000
- 黄色:&H00FFFF(00-蓝色, FF-绿色, FF-红色)
- 红色:&H0000FF
- 蓝色:&HFF0000
- 50%透明度黑色:&H80000000

Adding Subtitle Tracks (Soft Subs)

添加字幕轨道(软字幕)

Embed SRT as Track

嵌入SRT作为轨道

bash
undefined
bash
undefined

Add SRT to MP4 (MOV text)

将SRT嵌入MP4(MOV文本格式)

ffmpeg -i video.mp4 -i subs.srt
-c copy -c:s mov_text
output.mp4
ffmpeg -i video.mp4 -i subs.srt
-c copy -c:s mov_text
output.mp4

Add SRT to MKV

将SRT嵌入MKV

ffmpeg -i video.mp4 -i subs.srt
-c copy -c:s srt
output.mkv
ffmpeg -i video.mp4 -i subs.srt
-c copy -c:s srt
output.mkv

Add SRT to WebM (WebVTT)

将SRT嵌入WebM(WebVTT格式)

ffmpeg -i video.webm -i subs.srt
-c copy -c:s webvtt
output.webm
undefined
ffmpeg -i video.webm -i subs.srt
-c copy -c:s webvtt
output.webm
undefined

Multiple Subtitle Tracks

多语言字幕轨道

bash
undefined
bash
undefined

Add multiple languages

添加多语言字幕

ffmpeg -i video.mp4 -i subs_en.srt -i subs_es.srt -i subs_fr.srt
-map 0:v -map 0:a -map 1 -map 2 -map 3
-c copy -c:s mov_text
-metadata:s:s:0 language=eng -metadata:s:s:0 title="English"
-metadata:s:s:1 language=spa -metadata:s:s:1 title="Spanish"
-metadata:s:s:2 language=fra -metadata:s:s:2 title="French"
output.mp4
ffmpeg -i video.mp4 -i subs_en.srt -i subs_es.srt -i subs_fr.srt
-map 0:v -map 0:a -map 1 -map 2 -map 3
-c copy -c:s mov_text
-metadata:s:s:0 language=eng -metadata:s:s:0 title="English"
-metadata:s:s:1 language=spa -metadata:s:s:1 title="Spanish"
-metadata:s:s:2 language=fra -metadata:s:s:2 title="French"
output.mp4

Add ASS subtitles to MKV (preserves styling)

将ASS字幕嵌入MKV(保留样式)

ffmpeg -i video.mp4 -i styled.ass
-map 0 -map 1
-c copy -c:s ass
output.mkv
undefined
ffmpeg -i video.mp4 -i styled.ass
-map 0 -map 1
-c copy -c:s ass
output.mkv
undefined

Set Default Subtitle Track

设置默认字幕轨道

bash
undefined
bash
undefined

Set subtitle as default

设置字幕为默认轨道

ffmpeg -i video.mp4 -i subs.srt
-c copy -c:s mov_text
-disposition:s:0 default
output.mp4
ffmpeg -i video.mp4 -i subs.srt
-c copy -c:s mov_text
-disposition:s:0 default
output.mp4

Set forced subtitles (always display)

设置强制字幕(始终显示)

ffmpeg -i video.mp4 -i forced.srt
-c copy -c:s mov_text
-disposition:s:0 forced
output.mp4
undefined
ffmpeg -i video.mp4 -i forced.srt
-c copy -c:s mov_text
-disposition:s:0 forced
output.mp4
undefined

Extracting Subtitles

提取字幕

Extract to External File

提取到外部文件

bash
undefined
bash
undefined

Extract first subtitle track to SRT

提取第一条字幕轨道为SRT格式

ffmpeg -i video.mkv -map 0:s:0 output.srt
ffmpeg -i video.mkv -map 0:s:0 output.srt

Extract specific subtitle stream

提取指定字幕流

ffmpeg -i video.mkv -map 0:s:1 output.srt
ffmpeg -i video.mkv -map 0:s:1 output.srt

Extract to ASS format

提取为ASS格式

ffmpeg -i video.mkv -map 0:s:0 output.ass
ffmpeg -i video.mkv -map 0:s:0 output.ass

Extract to WebVTT

提取为WebVTT格式

ffmpeg -i video.mkv -map 0:s:0 output.vtt
ffmpeg -i video.mkv -map 0:s:0 output.vtt

Extract all subtitle tracks

提取所有字幕轨道

ffmpeg -i video.mkv -map 0:s subs_%d.srt
undefined
ffmpeg -i video.mkv -map 0:s subs_%d.srt
undefined

List Available Subtitle Tracks

列出可用字幕轨道

bash
undefined
bash
undefined

Show all streams including subtitles

显示所有流(包括字幕)

ffprobe -v error -show_entries stream=index,codec_name,codec_type:stream_tags=language,title
-of csv=p=0 video.mkv
ffprobe -v error -show_entries stream=index,codec_name,codec_type:stream_tags=language,title
-of csv=p=0 video.mkv

Show only subtitle streams

仅显示字幕流

ffprobe -v error -select_streams s
-show_entries stream=index,codec_name:stream_tags=language,title
-of csv=p=0 video.mkv
undefined
ffprobe -v error -select_streams s
-show_entries stream=index,codec_name:stream_tags=language,title
-of csv=p=0 video.mkv
undefined

Convert Subtitle Formats

字幕格式转换

bash
undefined
bash
undefined

SRT to ASS

SRT转ASS

ffmpeg -i subs.srt subs.ass
ffmpeg -i subs.srt subs.ass

ASS to SRT (loses styling)

ASS转SRT(丢失样式)

ffmpeg -i subs.ass subs.srt
ffmpeg -i subs.ass subs.srt

SRT to WebVTT

SRT转WebVTT

ffmpeg -i subs.srt subs.vtt
ffmpeg -i subs.srt subs.vtt

WebVTT to SRT

WebVTT转SRT

ffmpeg -i subs.vtt subs.srt
undefined
ffmpeg -i subs.vtt subs.srt
undefined

drawtext Overlays and Whisper AI Integration

drawtext叠加层与Whisper AI集成

Detailed examples for
drawtext
overlays (fonts, positioning, escaping, time expressions, boxes, outlines, animated text) and Whisper AI transcription / subtitle generation workflows live in
references/drawtext-and-whisper.md
. Load that reference when creating burned-in text graphics or generating subtitles from speech.
关于
drawtext
叠加层(字体、定位、转义、时间表达式、方框、轮廓、动态文本)和Whisper AI转录/字幕生成流程的详细示例,请查看
references/drawtext-and-whisper.md
。在创建烧录式文本图形或从语音生成字幕时,请加载该参考文档。

CEA-608/708 Closed Captions

CEA-608/708隐藏式字幕

Extract Closed Captions

提取隐藏式字幕

bash
undefined
bash
undefined

Extract CEA-608 captions from ATSC stream

从ATSC流中提取CEA-608字幕

ffmpeg -f lavfi -i "movie=broadcast.ts[out0+subcc]" -map 0:1 captions.srt
ffmpeg -f lavfi -i "movie=broadcast.ts[out0+subcc]" -map 0:1 captions.srt

Extract from video with embedded CC

从内嵌字幕的视频中提取

ffmpeg -i video_with_cc.mp4
-filter_complex "[0:v]format=yuv420p[v];[0:v]crop=1:1:0:0[c]"
-map "[c]" -c:v libx264 -f null - 2>&1 | grep -A 1 "Closed caption"
undefined
ffmpeg -i video_with_cc.mp4
-filter_complex "[0:v]format=yuv420p[v];[0:v]crop=1:1:0:0[c]"
-map "[c]" -c:v libx264 -f null - 2>&1 | grep -A 1 "Closed caption"
undefined

Add CEA-608 Captions

添加CEA-608隐藏式字幕

bash
undefined
bash
undefined

Embed CEA-608 captions (requires eia608 line)

嵌入CEA-608字幕(需要eia608线路)

ffmpeg -i video.mp4 -i captions.scc
-c:v libx264 -c:a copy
-vf "movie=captions.scc[captions];[0:v][captions]overlay"
output.mp4
undefined
ffmpeg -i video.mp4 -i captions.scc
-c:v libx264 -c:a copy
-vf "movie=captions.scc[captions];[0:v][captions]overlay"
output.mp4
undefined

Subtitle Positioning

字幕定位

ASS Alignment Values

ASS对齐值

text
7 (top-left)     8 (top-center)     9 (top-right)
4 (mid-left)     5 (mid-center)     6 (mid-right)
1 (bottom-left)  2 (bottom-center)  3 (bottom-right)
text
7(左上)     8(中上)     9(右上)
4(左中)     5(居中)     6(右中)
1(左下)     2(中下)     3(右下)

Position Examples

定位示例

bash
undefined
bash
undefined

Top center subtitles

顶部居中字幕

ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='Alignment=8,MarginV=20'"
output.mp4
ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='Alignment=8,MarginV=20'"
output.mp4

Left-aligned subtitles

左对齐字幕

ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='Alignment=1,MarginL=50,MarginV=30'"
output.mp4
ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='Alignment=1,MarginL=50,MarginV=30'"
output.mp4

Right side for speaker identification

右侧显示用于说话人识别

ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='Alignment=3,MarginR=50'"
output.mp4
undefined
ffmpeg -i video.mp4
-vf "subtitles=subs.srt:force_style='Alignment=3,MarginR=50'"
output.mp4
undefined

Multiple Subtitle Positions

多字幕轨道定位

bash
undefined
bash
undefined

Two subtitle tracks at different positions

两个字幕轨道分别显示在不同位置

ffmpeg -i video.mp4
-vf "[in]subtitles=speaker1.srt:force_style='Alignment=1,MarginL=50'[tmp];
[tmp]subtitles=speaker2.srt:force_style='Alignment=3,MarginR=50'"
output.mp4
undefined
ffmpeg -i video.mp4
-vf "[in]subtitles=speaker1.srt:force_style='Alignment=1,MarginL=50'[tmp];
[tmp]subtitles=speaker2.srt:force_style='Alignment=3,MarginR=50'"
output.mp4
undefined

Batch Processing

批量处理

Burn Subtitles to Multiple Videos

批量给视频硬嵌入字幕

bash
#!/bin/bash
bash
#!/bin/bash

burn_subs_batch.sh

burn_subs_batch.sh

for video in *.mp4; do base="${video%.mp4}" if [ -f "${base}.srt" ]; then ffmpeg -i "$video"
-vf "subtitles=${base}.srt:force_style='FontSize=24,Outline=2'"
-c:a copy
"output/${base}_subbed.mp4" fi done
undefined
for video in *.mp4; do base="${video%.mp4}" if [ -f "${base}.srt" ]; then ffmpeg -i "$video"
-vf "subtitles=${base}.srt:force_style='FontSize=24,Outline=2'"
-c:a copy
"output/${base}_subbed.mp4" fi done
undefined

Convert Subtitle Format Batch

批量转换字幕格式

bash
#!/bin/bash
bash
#!/bin/bash

convert_subs.sh

convert_subs.sh

for srt in *.srt; do base="${srt%.srt}" ffmpeg -i "$srt" "${base}.vtt" done
undefined
for srt in *.srt; do base="${srt%.srt}" ffmpeg -i "$srt" "${base}.vtt" done
undefined

Troubleshooting

故障排除

Common Issues

常见问题

"Unable to find a suitable output format"
bash
undefined
“无法找到合适的输出格式”
bash
undefined

Specify output format explicitly

显式指定输出格式

ffmpeg -i video.mkv -map 0:s:0 -f srt output.srt

**Garbled characters in subtitles**
```bash
ffmpeg -i video.mkv -map 0:s:0 -f srt output.srt

**字幕出现乱码**
```bash

Force UTF-8 encoding

强制使用UTF-8编码

ffmpeg -i video.mp4
-vf "subtitles=subs.srt:charenc=UTF-8"
output.mp4

**Font not found**
```bash
ffmpeg -i video.mp4
-vf "subtitles=subs.srt:charenc=UTF-8"
output.mp4

**找不到字体**
```bash

Specify fonts directory

指定字体目录

ffmpeg -i video.mp4
-vf "subtitles=subs.srt:fontsdir=/path/to/fonts"
output.mp4
ffmpeg -i video.mp4
-vf "subtitles=subs.srt:fontsdir=/path/to/fonts"
output.mp4

List available fonts

列出可用字体

fc-list : family | sort | uniq

**Subtitle timing offset**
```bash
fc-list : family | sort | uniq

**字幕时间轴偏移**
```bash

Delay subtitles by 2 seconds

将字幕延迟2秒

ffmpeg -i video.mp4
-vf "subtitles=subs.srt:itsoffset=2"
output.mp4
ffmpeg -i video.mp4
-vf "subtitles=subs.srt:itsoffset=2"
output.mp4

Or use setpts to adjust

或使用setpts调整

ffmpeg -i subs.srt -itsoffset 2 delayed.srt

**Subtitle not showing on high-res video**
```bash
ffmpeg -i subs.srt -itsoffset 2 delayed.srt

**高分辨率视频中字幕不显示**
```bash

Scale subtitle rendering to video resolution

根据视频分辨率缩放字幕渲染

ffmpeg -i video_4k.mp4
-vf "subtitles=subs.srt:force_style='FontSize=48,Outline=3'"
output.mp4
undefined
ffmpeg -i video_4k.mp4
-vf "subtitles=subs.srt:force_style='FontSize=48,Outline=3'"
output.mp4
undefined

Verification Commands

验证命令

bash
undefined
bash
undefined

Check if subtitles are present

检查字幕是否存在

ffprobe -v error -select_streams s -show_entries stream=codec_name -of default=nw=1 video.mp4
ffprobe -v error -select_streams s -show_entries stream=codec_name -of default=nw=1 video.mp4

Count subtitle lines

统计字幕行数

grep -c "^[0-9]" subs.srt
grep -c "^[0-9]" subs.srt

Validate SRT format

验证SRT格式

ffmpeg -i subs.srt -f null -
undefined
ffmpeg -i subs.srt -f null -
undefined

Best Practices

最佳实践

Accessibility

无障碍

  1. Use high contrast colors (white on dark, yellow on dark)
  2. Minimum font size of 24pt for standard video
  3. Include speaker identification for multiple speakers
  4. Position subtitles to avoid obscuring important visual content
  5. Keep lines short (42 characters max per line)
  6. Display duration: minimum 1 second, maximum 7 seconds per caption
  1. 使用高对比度颜色(深色背景配白色、深色背景配黄色)
  2. 标准视频字幕最小字号为24磅
  3. 多说话人场景需添加说话人标识
  4. 字幕位置应避免遮挡重要视觉内容
  5. 每行字幕长度不超过42个字符
  6. 字幕显示时长:每行最少1秒,最多7秒

Quality

质量

  1. Use ASS format for styled subtitles (anime, music videos)
  2. Use SRT for simple dialogue
  3. Use WebVTT for web delivery
  4. Preserve original styling when possible
  5. Test on target devices before distribution
  1. 带样式的字幕(动漫、音乐视频)使用ASS格式
  2. 简单对话使用SRT格式
  3. 网页分发使用WebVTT格式
  4. 尽可能保留原始样式
  5. 分发前在目标设备上测试

Performance

性能

  1. Burn subtitles only when necessary (streaming, compatibility)
  2. Prefer soft subs for archival and flexibility
  3. Use hardware encoding when burning subtitles to large files
  4. Process in parallel for batch operations
This guide covers FFmpeg subtitle and caption operations. For text overlays with shapes and graphics, see the shapes-graphics skill.
  1. 仅在必要时硬嵌入字幕(流媒体、兼容性需求)
  2. 存档和灵活处理优先选择软字幕
  3. 处理大文件硬嵌入字幕时使用硬件编码
  4. 批量操作采用并行处理
本指南涵盖FFmpeg字幕与隐藏式字幕操作。如需添加图形和形状的文本叠加层,请查看shapes-graphics技能文档。