跳转至

字幕

要打开字幕,在播放器里打开设置菜单,选择字幕。想每次都自动显示您语言的字幕,请设置设置 → 播放 → 默认字幕语言。

大多数字幕会立刻出现。有两种情况不一样:

  • 某条封装在文件里的字幕第一次被选中时,Evey 需要先把它从文件里提取出来。这时播放器会显示字幕准备中…,视频继续播放,字幕准备好后会自动显示。如果电影文件非常大,这可能要几分钟,但只有这一次:之后任何人选它,都会马上显示。见字幕第一次显示时。
  • DVD 和电视广播的字幕是图片,不是文字。服务器要把它们绘制到视频画面中,这会大大增加服务器的工作量。个人资料里的字幕内嵌设置(设置 → 播放)可以拒绝这样做,但那样的话,这类字幕就无法显示。见字幕内嵌。

本页其余部分会说明每种字幕格式,以及它们对服务器有什么影响。

每种格式对视频的影响

格式 例子 怎么显示 对视频的影响
文字 SRT、ASS/SSA、WebVTT、文件内的文字字幕 和视频一起发送,由播放器按您的字幕样式绘制 没有影响
PGS(蓝光) hdmv_pgs_subtitle 服务器一次性解码成图片并缓存,由播放器原样绘制 没有影响
其他图片格式 VobSub(DVD)、DVB、XSUB 由服务器内嵌到画面 视频要重新编码

所有播放器(网页、Android、Android TV)都会自己绘制文字字幕和 PGS 字幕,所以选这些字幕从来不会改变视频的传送方式。只有表格最后一行会:把字幕内嵌到画面,需要先解码视频再重新编码,所以本来可以直接播放的影片会改为转码。这时流信息会列出字幕已内嵌到画面。

只有在您真正选中图片字幕时,它才会被内嵌进去。如果文件只是带着这种字幕,或者把它标成了默认字幕,仍然可以直接播放。

字幕内嵌

个人资料里的字幕内嵌设置(设置 → 播放)控制的是表格最后一行的那些格式:

设置 选中的 VobSub、DVB 或 XSUB 字幕 文字字幕和 PGS
自动 内嵌到画面,视频要重新编码。 由播放器绘制。
始终内嵌 和“自动”一样。 由播放器绘制:不管怎么设置,文字字幕都不会被内嵌。
从不内嵌 无法显示:视频绝不会为了字幕而重新编码。 由播放器绘制。

字幕第一次显示时

封装在文件里的字幕(文字或 PGS),会在第一次有人选中时由服务器提取出来,然后保存下来:以后无论谁再看,都能马上显示。如果文件自带的索引覆盖了这条字幕,服务器只需读取字幕所在的数据块,只需几秒钟。没有这个索引的话,就要读完整个文件:大电影需要好几分钟(非常大的文件需要几分钟;如果服务器同时还在播放视频,时间会更长)。

在此期间,播放器会在字幕的位置显示字幕准备中…,并自动定期检查,字幕一准备好就显示出来;视频照常播放。换选别的字幕不会中断提取:服务器会完成提取,供下次使用。

服务器无法提取的字幕会保持为空。这次失败会被记录,所以再次选择它不会重新读取整个文件;等负责提取的程序库 MKVGo 更新后,会再试一次。读取什么、什么时候读,见 Evey 中的 MKVGo。

选择和调整

  • 播放器会先选个人资料里默认字幕语言对应的字幕,再选文件标为默认的那条(比如强制字幕)。您手动选的字幕绝不会被替换掉;换一部新影片时,会重新开始选择。
  • 播放器里的字幕同步可以让当前影片的字幕提前或推后(正数表示推后显示)。设置后立即生效。
  • 字幕样式可以设置文字字幕的大小、文字颜色、背景、字体、阴影和位置。PGS 图片字幕按原样绘制。
  • 点击“上传字幕…”可以为这部影片添加一个字幕文件。
  • 如果设置了 OpenSubtitles 密钥(见媒体库与元数据),可以通过服务器 API 搜索并下载文件里没有的字幕(先 GET /api/v1/media/{id}/subtitles/search,再 POST /api/v1/media/{id}/subtitles/download)。下载的文件保存在电影旁边的 .subtitles 文件夹里。应用里没有这个搜索功能。