2008年7月30日星期三

KMPlayer分离器解析和最优设置

这篇文章 是详细讲述 KMPlayer 的滤镜管理机制 和 各种分离器 的特性。

结论:
自定义滤镜管理器 中 不要加任何分离器。

Haali勾选 “连接到MKV文件” 和 “连接到MP4文件” 。看VC1 Remux 就让Haali “连接到Mpeg2 TS” ,用完取消勾选。

AVI 选 KMP AVISourceFilter ,MKV 选 Gabest MatroskaSource ,WMV 自动选择。

Mpeg1 ,Mpeg2 PS ,Mpeg2TS 分别选 Nero ,Nero ,Gabest。

如果看演示片, 就把 Mpeg2 TS 分离器也改成 Nero。

如果看1080P 高码 H264,就把 Mpeg2 TS 分离器改成 Elecard, CPU很强就用 Nero 或 Haali,CPU实在不够用 就选PDVD7。

解码器方面:
自定义滤镜管理器中 只应有 CoreAVC 和 Sonic Audio 两个解码器,分别设为强制 和 不使用。看1080P高码 H264时 要把前者的 强制取消。 任何片子只要含有 EAC3音轨 (Remux或HDre), 就要在 自定义滤镜管理器中 “强制使用 Sonic CineMaster Audio” 。


下面是 详细讨论 ,是新手进阶 需要学习的内容:
先啰嗦一段: 分离和解码不同。 分离由文件的 封装格式决定 ,如 AVI, MKV, WMV, TS, TP。 TS, TP, WMV是 HD的封装格式, 相应的视频编码是 (H264/ MPEG2/ WMV-HD), AVI, MKV 是多数 HDre的 封装格式, 相应的视频编码 是(H264,Xvid)。
分离器本身的 效率简单表现在 拖放速度上, 它和视频音频解码器 有配合优劣问题, 但是工作效果 和普通/极速模式, 覆盖/VMR渲染器 完全无关。 所以选择分离器的时候 不要考虑模式 和 渲染器。

先说 AVI 和 MKV。 首先保证没有把 Haali 放到自定义滤镜管理器中。 这样, AVI和MKV 分离器各自就 只由两个小勾决定, 并且达到最优效果。 AVI和MKV 完全不受 自定义滤镜管理器 中的“ 首选, 00800000, 强制使用, 设为源滤镜” 的影响,也不可能使用 Nero,Elecard 或PDVD7分离器。

*.AVI:

AVI分离器由 “滤镜控制” “源滤镜”决定, 常规选项卡 最下方 “普通AVI” 有四个选择项, 分别为系统默认 (AVI Splitter), Gabest AVI分离器 (Gabest AVI Splitter) , KMP AVI源滤镜 (KMP AVI Source Filter) ,KMP内部AVI分离器 (KMP AVI reader) 。括号里是 播放时能看到的 分离器名字。

此外,如果在 “其它” 选项卡中选择 “用Haali分离器连接 AVI (如果安装了Haali分离器) ”,则无视 常规选项卡中 的设置, 肯定会用 Haali分离AVI。 只要 “源滤镜” “其它” 选项卡中开启 “连接到某类型文件” ,KMP就一定会用 Haali分离这种文件。 在自定义滤镜管理器中 把Haali设为 源滤镜等效于 开启五个 “连接到……文件” 选项。

建议: 常规选项卡的 四个选项中用 KMP内部源滤镜 (KMP AVI Source Filter) ,并打开 “在后台打开文件” 选项,这个分离器 拖放速度非常快, 延迟小于人的反应时间 。而损坏的 AVI文件 建议用 Gabest AVI Splitter分离。


Haali的拖放速度 慢于 KMP AVI Source Filter。 此外,如果是H264编码 ,就会自动调用 PowerDVD的H264 解码器 (如果安装了的话)。 AVI+Haali+Cyberlink 这个组合不好, 会导致色斑,波纹, 画面不连贯等。

如果用Haali 作为AVI 分离器, 要在自定义滤镜管理器中 强制使用CoreAVC。 此时建议 常规选项卡中 也设置为 KMP AVI Source Filter。 这样如果Haali出问题 ,只要关闭 “用Haali连接AVI” ,就轻松转换成用 Source Filter。

采用KMP AVI Source Filter测试了几十部 X264编码, Xvid编码, WMV-HD编码AVI格式电影, 只有一部螳螂拖放时间稍长, 可能文件不完整。

*.MKV:

进入“滤镜控制” “分离器”常规选项卡 ,“Matroska分离器” 的三个选项分别为 Gabest MKV分离器 (Gabest Matroska Source), KMP内部MKV分离器 (KMP MKV reader), 系统默认 (安装了Haali后, 系统默认是Haali)。

此外,如果在“滤镜控制” “源滤镜” “其它”选项卡中打开 “用Haali分离器连接MKV” ,则无视 常规选项卡中的设置 ,必定用Haali 分离MKV。

三种分离器 拖放都很快, 稍慢于人类的 反应速度, 对多音轨支持也很好。

如果用Haali分离 MKV,DTS 音频解码器一定要选 Intervideo 或 AC3filter。 否则解含 DTS 音轨的 MKV 必定会出现各种问题, 如:不连贯, 无声或速度过快。 KMP内部MKV分离器有相同问题。 Windvd 的音频解码器 和 Haali结合解 MKV非常完美, 特别是多音轨。

建议常规选项卡中 选Gabest MKV分离器 (Gabest Matroska Source), 并开启“用Haali连接MKV”, “音频解码” 的 “DTS音频解码” 中选Windvd 的音频解码器。 这是MKV 最完美的分离方案。 万一播放出现异常, 关闭 “用Haali连接MKV” ,改用 Gabest Matroska Source。

对于AVI 和MKV, 系统中其它 所有分离器无效。

*.WMV(又称ASF):
在“源滤镜”的 Windows Media 选项卡中选择, 一旦此处选定, 系统其它设置 都不会改变所用的 分离器。

推荐“自动选择”。

五个选项中:
Windows Media 源滤镜无法运行。

KMP内部 ASF分离器, 进度条显示有问题。

KMP内部 的ASF读取器/源滤镜, “自动选择” 时的默认选择。 拖放速度非常快, 但有些文件靠近末尾处 可能无法拖放, 总时间计算错误。

新的WM ASF读取器 (WM ASF Reader) 拖放正常, 但速度较慢, 打开某些文件太慢。

“系统默认” 和WM ASF Reader 没有明显区别。


*.TS:

对于MPEG2, 绝大多数情况下都可以用 Gabest Mpeg2 Splitter。 字幕校准都以它为准, 也只有Gabest 才支持 TS中的DTS音轨。
对于H264, 按CPU档次从高到低 首选Nero/Haali (双核), Elecard (大多数用户), PDVD7(低配置)。
先说设置, 再评判各个分离器的 优劣。

TS分离器 有两种设置风格:
最好在“分离器” 的常规选项卡的 “Mpeg2(TS)分离器” 中设置,非常可靠, 立竿见影。 当然,前提是 “自定义滤镜管理器” 中没有分离器打开 “强制使用”, 也没有源滤镜 (只有两个,Mpeg Source和Haali) 在此处“设为源滤镜” 。 “设为源滤镜” 生效后相当于 “强制连接到 各种类型文件”。
如果安装了 Elecard或 Moonlight, 此处多个分离器中的 “系统默认”就是 Elecard或 Moonlight。
建议使用这种风格的 不要在自定义滤镜管理器中 添加任何分离器。


另一种设置风格 是使用自定义滤镜管理器中 的强制使用功能, 各个分离器 “强制使用” 后优先级就高于 常规选项卡中的设置 。如果只有一个为“ 强制使用”, KMP就肯定会选择它 。如果有多个开启 “强制使用”, 则按优先级值和 位置竞争KMP的恩宠。 一般排第一位的“强制使用” 的分离器就是 最终使用的分离器, 但是也可能优先使用 Elecard,因为它是 “系统默认”。 这里还是不要忘了那个大前提: 没有源滤镜在此处 “设为源滤镜”。 这种风格用熟了也不错。
评判:
MPEG2的TS, 使用Nero或Gabest, Elecard较好 。Nero流畅程度高, 拖放快,而Gabest ,Elecard稳定。 也可尝试一下Haali。
H264的TS:
只讨论使用 Cyberlink H264 解码器的情况。
模式: 要在高速/急速模式下 才能打开硬解 (建议高速模式,保留3D音效)。
渲染器: A卡用覆盖合成器, N卡用VMR9 renderless/Overlay。

PDVD7(PDVD7 Muxer) 和 “KMP内部MPEG TS分离器” CPU占用率最低, 但两者都有问题: PDVD7有时间码问题, 且不支持多音轨。 “内部分离器” 没有时间码问题, 支持多音轨, 但是兼容性很不好, 对有些片子效果很好, 对另一些则可能无声或无画面。

Elecard (Elecard MPEG Demultiplexer) 的CPU占用率高3%左右 ,时间码问题轻些, 支持多音轨。 是H264 TS的首选。

Nero字幕不同步 ,不支持多音轨 ,但比其它分离器流畅( 流畅和CPU占用是两个概念), 适合播放演示片(1080i)。

如果要保留DTS音效, 只有用Gabest。

如果要放VC1, 必须用Haali。

总之, 看Mpeg2 TS电影选Gabest ,看演示片选Nero, 看H264选Elecard。 CPU很强用Haali, CPU实在不够用选PDVD7。

*.TP,*.MPG,*.VOB全部用 Mpeg-2 Demultiplexer 或Nero就可以了, 方法为MPEG-1 和 MPEG-2 PS选 “系统”或Nero。



选读的内容:
1. KMP“参数设置” 中所有滤镜设置 都是即时生效 或 播放下一个文件生效, 不需要关闭参数设置窗口 ,不需要重启KMP, 更不需要重启系统。

2. 需要重建图标缓存 来更新图标, 如果重建缓存 无效还要重启系统。

3. CoreAVC 和 Cyberlink 6.x H264 之争:
解TS封装的H264, CoreAVC 完全输给了从 Powerdvd极致版中 分离出来的 Cyberlink 6.x H264。 解AVI/MKV 的H264, Cyberlink H264 完全输给 CoreAVC (会产生各种问题, 如减分辨率播放, 色斑,波纹,不连贯)。

4. Haali分离器 可以实时看视频 和 音频码率曲线, 只需开启 “用Haali连接……文件”。 播放时点“滤镜” “Haali” “设置” 就可以看到码率曲线。 有趣的是 H264编码的片子 ,码率曲线与 任务管理器CPU 占用率曲线大致同形。

5. 使用PDVD7 和Elecard 分离器就会 自动调用 Cyberlink H264, 无法强制调用CoreAVC。

6. Nero, Elecard, PDVD7 分离器并不被 KMP识别为源滤镜, 所以对于它们, “设为源滤镜” 无效.

没有评论: