衡阳蒸湘医院黑不黑:浅谈Gabest和Haali的MKV Splitter(分离器)的差别_蓝色琴键的八度空间...

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 21:11:34
蓝色琴键的八度空间擁抱樂器,滿心歡喜 主页博客相册|个人档案 |好友   查看文章   浅谈Gabest和Haali的MKV Splitter(分离器)的差别2010-05-09 01:01

MKV本来就是一种封装视频音频的容器格式,播放器需要MKV分离器(Matroska splitter)来解析MKV再调用对应的codec来解码。常见的splitter是Gabest Matroska Splitter和Haali Media Splitter两种,两者各有特色,完美解码、终极解码都附带这两种分离器并可通过设置来选定其一来解析MKV,下面简单介绍一下我总结的两种分离器的差别。本文讨论中涉及的播放器是以MPC(Homecinema版)为例,国产的××影音不详。

(1)直接查看MKV的附件

MKV文件允许添加图片、字体等文件,这类文件称为MKV的附件,可以看作是MKV的彩蛋。
MPC播放MKV时查看视频的属性时,如果使用了Gabest分离器,“详细信息”标签项详细列出文件的各轨道信息。“资源”标签项则可显示MKV的附件,并可通过单击“另存为…”提取出来。


Haali分离器则不会显示,而且当MKV包含多个音频、字幕轨时,查看MKV的“详细信息”Haali只显示当前使用的音频和字幕轨信息。


若要Haali分离器查看MKV附件,应该是要设置Haali的Shell Extension后实现右击菜单来查看,不过我还试验过。

关于内封字体:

ASS/SSA字幕常常会使用特殊的字体,而MKV格式的一个优点就在于可以内封字幕中调用的字体文件,即使某用户的系统中没有这种字体,在播放MKV时也可以显示,不致于丢失原字幕的设定,起到很好的兼容性。

Gabest的默认自动加载MKV内封的字体到内存。

Haali的可能会在打开MKV时出现一个对话框内容是:
The file contains embedded truetype fonts. Do you want to load the fonts?
To permanently enable or disable font loadiing you can set the option in splitter properties.
问你是否加载内封的字体,必须单击“是”才可继续,这个现象仅出现在旧版本的Haali,用新版本就不会再出现这个烦人的提示。

另外,使用Haali万一意外退出时,内封的字体可能仍然残留在内存中,因为Haali调用了AddFontResource函数,而Gabest调用AddFontResourceEx则不会出现此问题。(引自SAPikachu的工作室:https://www.sapikachu.net/post/2008/10/06/cause-of-embedded-fonts-problem.aspx

 

 

(2)MPC播放MKV时快速前进、后退

Gabest:√(支持)
Haali:×(不支持)

用过KMPlayer或mplayer的朋友一定会惊叹于拖动进度条时的灵敏反应。为什么这类播放器会如此迅速前进、后退?原因在于它们使用关键帧跳跃,而MPC在拖动进度条时使用精确时间跳跃,就需要一段时间来缓冲。MPC也可以用关键帧跳跃实现快速前进后退,默认的快捷键是Shift+→,Shift+←


MKV、AVI、MP4、MOV、RMVB等格式视频只要存在关键帧,MPC就可实现关键帧跳跃,对于MKV、AVI格式的视频,还有一个前提条件:必须使用Gabest分离器来解析。如果MKV的分离器设为Haali,MPC的Shift+→、Shift+←键就完全没反应,无法快速前进/后退。为什么会这样?大概是因为MPC的作者也是Gabest本人,所以他编写的MPC的快速跳跃快捷键理所当然只对Gabest MKV分离器有效。


 

(3)实时查看MKV的视频/音频码率

Gabest:×
Haali:√

当MKV的分离器是Haali时,每次播放MKV,任务栏托盘都会出现一个类似"Ω"符号的Haali Logo。双击之则出现视频/音频码率曲线图,每秒更新一次,查看该码率曲线有助于对码率的理解,为压片提供参考。这是Haali的一大特色。

 


(4)对可变比例的MKV的还原

Gabest:×
Haali:√

可变比例视频可能对多数人比较陌生。有些字幕组喜欢不通过resize而通过设置视频的SAR比例来压片,MPC播放时则按此SAR比例还原。比如一部宽屏的电影在DVD光盘里是按720×480的分辨率来储存,实际播放时按原设定的16:9还原为848×480,做DVDRIP压片时也按原分辨率720×480压缩并设置SAR比例。很遗憾,Gabest分离器解析时不能正确还原,即使在MPC的右键菜单里手动设置视频的比例也不能准确地还原。Gabest早已停止软件开发,该bug还没修复 :(

例1:周星驰的《百变星君》双语数码修复版,KiSS出品
Gabest分离器
错误的分辨率:712x472 (1.51:1)


 

例2:《音乐之声》数码修复版,KiSS出品
Gabest分离器
错误的分辨率:712x384 (1.854:1)


Haali的分离器则忠实还原:

例3:周星驰的《百变星君》
Haali分离器
正确的分辨率:856x464 (1.845:1)

例4:《音乐之声》
Haali分离器
正确的分辨率:864x384 (2.25:1)

 

 

 

 



(5)对VFR的MKV的支持

现在不少字幕组压制动画片时使用VFR(可变帧率)技术,分阶段以不同帧率播放。如果播放器的设置不当,可能会出现掉帧、不流畅现象。很多人都推荐使用Haali分离器。本人经测试,发现掉帧、不流畅的现象只有出现在以下的条件:

分离器:Gabest
H264解码器:CoreAVC(测试中是2.0版,算是比较新的了)
输出:VMR9(无渲染)
帧率:减半

以Galaxy字幕组压制的《聖闘士星矢》 之 极乐净土篇为例,该文件开始部分的一小段的帧率是29.97fps,后来转到23.976fps。当使用Gabest+CoreAVC+VMR9输出时,帧率十分不稳定,居然只有原帧率的一半,画面一顿一顿的,比在线的视频更迟钝。参见下面截图(―_―||| 囧rz)

当使用同一解码器(CoreAVC)和同样的VMR9输出方式,改用Haali分离器时,可变的帧率还原得很正常!

但以上测试并不代表Gabest不支持VFR的MKV。我重申一下,Gabest只针对CoreAVC解码器和VMR9输出模式情况下才对VFR产生异常,经再三测试,如果输出模式改为系统默认或覆盖合成器Overlay Mixer时,即使用CoreAVC解码,VFR的视频帧率也正常;解码器换作FFDShow或Cyberlink后也一切正常,而且使用显卡硬解也不出现问题。

由于Haali不断更新,很多方面还是Haali更胜一筹。

有补充的朋友欢迎拍砖。