Skip to content

字幕处理

本节介绍 mpv 的字幕加载、样式和同步功能。

字幕加载

自动加载字幕

mpv 会自动加载与视频文件同名的字幕文件:

video.mp4
video.srt
video.ass
video.sub

手动加载字幕

bash
# 加载单个字幕
mpv --sub-file=subtitle.srt video.mp4

# 加载多个字幕
mpv --sub-file=sub1.srt --sub-file=sub2.srt video.mp4

# 从 URL 加载字幕
mpv --sub-file=https://example.com/subtitle.srt video.mp4

字幕文件格式

mpv 支持多种字幕格式:

  • SRT - SubRip Text
  • ASS/SSA - Advanced SubStation Alpha
  • SUB - MicroDVD
  • VTT - WebVTT
  • PGS - Blu-ray 字幕
  • DVDSUB - DVD 字幕

字幕轨道

查看字幕轨道

bash
# 显示字幕信息
mpv --sub video.mp4

# 列出所有轨道
mpv --video --audio --sub video.mp4

切换字幕轨道

bash
# 下一个字幕
j

# 上一个字幕
J

# 指定字幕轨道
mpv --sid=1 video.mp4
mpv --sid=2 video.mp4

禁用字幕

bash
# 禁用所有字幕
mpv --no-sub video.mp4

# 禁用特定字幕
mpv --sid=no video.mp4

字幕样式

字体设置

bash
# 字体名称
sub-font="Noto Sans CJK SC"

# 字体大小
sub-font-size=40

# 字体颜色
sub-color="#FFFFFFFF"

# 边框颜色
sub-border-color="#FF000000"

# 边框大小
sub-border-size=2

# 阴影颜色
sub-shadow-color="#80000000"

# 阴影偏移
sub-shadow-offset=2

位置设置

bash
# 字幕位置(垂直)
sub-pos=100

# 字幕边距
sub-margin-x=20
sub-margin-y=40

# 字幕对齐
sub-align-x=center
sub-align-y=bottom

背景设置

bash
# 字幕背景
sub-back-color="#80000000"

# 背景边距
sub-back-padding=2

ASS/SSA 字幕

ASS 字幕覆盖

bash
# 启用 ASS 字幕覆盖
sub-ass-override=force

# 禁用 ASS 字幕覆盖
sub-ass-override=no

# 仅覆盖样式
sub-ass-override=strip

ASS 字幕配置

bash
# ASS 字幕样式
sub-ass-style-override=yes

# ASS 字幕字体
sub-ass-font="Noto Sans CJK SC"

# ASS 字幕大小
sub-ass-font-size=40

字幕同步

字幕延迟

bash
# 字幕延迟(秒)
sub-delay=0.1

# 负延迟
sub-delay=-0.1

# 交互式调整
z  # 延迟 -0.1 秒
Z  # 延迟 +0.1 秒

字幕同步模式

bash
# 字幕同步
sub-sync=yes

# 字幕同步模式
sub-sync=audio
sub-sync=video

字幕时间调整

bash
# 字幕时间偏移
sub-start=10

# 字幕时间缩放
sub-speed=1.1

字幕编码

字符编码

bash
# 指定编码
sub-codepage=utf-8

# 自动检测
sub-codepage=auto

# 常见编码
sub-codepage=gbk
sub-codepage=big5
sub-codepage=shift_jis

强制编码

bash
# 强制使用指定编码
sub-codepage=utf-8:force

字幕滤镜

字幕滤镜

bash
# 字幕缩放
vf=sub="scale=1920:1080"

# 字幕裁剪
vf=sub="crop=1280:720:0:0"

字幕渲染

bash
# 字幕渲染器
sub-ass-vsfilter-blur-compat=yes
sub-ass-vsfilter-aspect-compat=yes

双字幕

启用双字幕

bash
# 主字幕
sid=1

# 辅助字幕
secondary-sid=2

双字幕控制

bash
# 显示/隐藏辅助字幕
Alt+v

# 切换辅助字幕
Alt+j

外部字幕

字幕文件搜索

bash
# 字幕文件路径
sub-file-paths=subs;subtitles

# 字幕文件扩展名
sub-auto=fuzzy
sub-auto=exact
sub-auto=no

字幕下载

bash
# 使用 OpenSubtitles
sub-auto=fuzzy
sub-file-paths=subs

下一步