字幕¶
要打开字幕,在播放器里打开设置菜单,选择字幕。想每次都自动显示您语言的字幕,请设置设置 → 播放 → 默认字幕语言。
大多数字幕会立刻出现。有两种情况不一样:
- 某条封装在文件里的字幕第一次被选中时,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文件夹里。应用里没有这个搜索功能。