媒体健康¶
某个影片跳转很慢、在某处卡住,或者声音逐渐与画面不同步:管理 → 媒体健康会读取您各个媒体库里的每个 MKV/WebM 文件,并为每个文件给出一个结论。目标是让这个页面逐渐清空:Evey 能修复的问题由它修复(全部修复);其余的只提示一次,您可以把它标记为已看过。
两种结论¶
不是健康的文件(健康是指索引、容器、大小和音频时间都检查无误),会得到两种结论之一,而且有意只设两种:
| 结论 | 意思 | Evey 会做什么 |
|---|---|---|
| 可修复 | Evey 能在这台服务器上修复的缺陷。 | 全部修复会在后台处理它们;按钮上的数字正好就是这类文件的数量。 |
| 信息 | 对文件测量到的某种情况,Evey 不会自己去改写。 | 什么都不做。把它标记为已看过即可。 |
两种结论都不需要您手动处理。Evey 无法处理的测量结果只是一条提示,而且测量也可能出错:如果文件播放正常,就不需要做任何处理。
可修复¶
- 缺少跳转索引,或者索引无法使用。症状是跳转或继续播放很慢。索引会在一个临时副本里重建,副本经过完整检查(轨道、时长、索引)后,再替换原文件。
- 容器错误:这个
.mkv实际上是 MP4 或 MOV 文件。它会被重命名为.mp4,媒体库也会跟着更新;不改写任何内容。 - 损坏片段:文件中间有一段数据损坏了。修复会跳过这一段,并重新同步后面的内容,所以这些字节会永久丢失。修复对话框会明确询问您(同时重新同步 N 个损坏文件);不勾选的话,损坏的文件不会被改动。有些文件的损坏只在改写时才暴露出来(修复时发现损坏),也是一样:扫描只读取文件头,看不到这种损坏。
- 轨道按块存放:先是几分钟的视频,再是几分钟的音频,而不是交错排列在一起。任何播放器都无法播放到第一块之后。重新交错轨道会把轨道重新交错写入,不重新编码,并在替换文件之前检查每个数据包都已写入。
信息¶
- 下载不完整:文件的结尾一直没有下载下来。它能播放到中断的位置。任何工具都无法找回缺少的部分,只能从片源重新获取。
- 跳转粗糙:重建的索引里仍然有一处空洞,多半是片尾字幕。跳转到空洞里时,会落在空洞的边缘;在其他任何地方,跳转都是精确的。
- 音轨从 +N 秒开始:某条音轨比画面开始得晚。配音就是这样和剪辑版本对齐的,所有播放器都会照此播放。Evey 从不改写它。
- 音轨相差 N 秒:文件自己的几条音轨彼此对不上,说明其中一条的位置不对。任何测量都判断不出是哪一条。
- 声音与画面相差 N 秒:某条音轨的位置,和字幕(字幕是按画面对齐的)标出的对白位置不一致。
- 音轨被拉到 0:这是早先的某次修复留下的痕迹,那次修复把一条音轨按它声明的延迟往前拉了回来。如果现在配音播得太早,被去掉的那段延迟已经不在文件里了。
- 音频 -N 秒:某条音轨比画面先结束。播放时会用静音补上这段空缺。
- 尾部多余字节:文件内容结束之后还有多余的字节。播放没有问题。
- 无法读取:扫描读不了这个文件(文件不存在、无法读取,或者解析器不接受这种容器)。请检查挂载或片源。
目视检查同步¶
对于上面三种和音频有关的提示,在文件那一行点击检查同步,服务器会生成一小段片段:选一个时刻、一条音轨和一个要试的偏移量,然后观看,需要时可以放慢。比较几条音轨只能说明它们彼此是否一致,无法说明哪一条与画面同步;只有观看才能确定。
对该音轨应用 N 秒会把这条音轨移动选定的偏移量。这个改动会被记录为您的判断,而不是测量结果,并且可以在历史里撤销。
标记为已看过¶
已看过,不再提示(一个文件)和全部标记为已看过(一组文件)会把一条信息类提示从待处理视图中移走。只有提示可以标记:可修复的缺陷应当修复。这个标记只对文件当前的样子有效:如果文件的大小或日期变了,下次扫描会重新诊断它。重新提示可以取消这个标记。
表格上方的各个视图(待处理、可修复、信息、已看过、备份、全部)和搜索框,是您处理大型媒体库的工具:待处理就是待办清单。
扫描¶
一次扫描会读取每个文件的三小块区域(开头、靠近末尾的索引和结尾),对于没有变化的文件,沿用上一次的结论。磁盘占用决定扫描的快慢:
- 轻量:一次一个文件,然后暂停,暂停的时间和读取花的时间一样长。磁盘大约有一半时间是空闲的,所以有人可以继续观看。
- 快速:同时处理多个文件,不暂停。对于分布在多块磁盘上的媒体库,明显更快,但扫描期间播放可能会卡顿。
有两种情况会让扫描把所有文件重新诊断一遍:文件有了变化,以及新版本的 Evey 改变了检查项目。所以在这样的更新之后,大型媒体库的第一次扫描耗时较长;之后的扫描会恢复为较快。
备份、历史和撤销¶
保留备份默认是开启的:每个被改写的文件,都会在旁边把原文件保留为一个 .mkvgobak。还原恢复一个文件,全部还原恢复所选范围内的文件,删除备份会把备份永久删除。关闭这个选项后,运行期间只存在最近的几份副本,并在运行结束时删除;此时每次修复在替换文件之前都会进行更深入的校验。如果给每个文件都保留一份副本会占满存储卷,页面会在运行之前提醒您。
修复日志列出了修复对整个媒体库中文件字节所做的每一处改动;历史显示单个文件的改动。有些改动可以在那里撤销,不需要任何副本:
| 改动 | 撤销 |
|---|---|
| 已移动音轨 | 应用一个完全相反的偏移。 |
已重命名为 .mp4 |
改回原来的名字。 |
| 已重建索引 | 不需要撤销:画面和声音都没有被动过。 |
| 已跳过损坏片段 | 只有备份能找回丢失的字节,所以这种修复总是会保留备份。 |
修复会写入您的媒体文件夹。这些文件夹必须以读写方式挂载到容器里(卷上不要加 :ro);如果某次运行遇到了只读的卷,页面会告诉您。扫描则不受影响,两种方式都可以。
通过命令行¶
同样的功能也可以通过运维命令行使用,见命令行:
evey admin reindex-no-cue --root <dir> [--apply] [--resync]重建缺失的索引;如果不加--apply,就只是试运行;evey admin validate-streaming --root <dir>输出只读的流式播放就绪报告。