DTSCDSpdif源码输出功放解码KMP+FooBar篇.docx
《DTSCDSpdif源码输出功放解码KMP+FooBar篇.docx》由会员分享,可在线阅读,更多相关《DTSCDSpdif源码输出功放解码KMP+FooBar篇.docx(13页珍藏版)》请在冰豆网上搜索。
DTSCDSpdif源码输出功放解码KMP+FooBar篇
DTS-CD日益成为新的关注要点,也许传统发烧友对“数字”始终不屑一顾,甚至很多人坚决认为数字传输也存在音质差异,但是这都不能否认大批DTS-CD成为资源热点,VeryCD上大量的DTS-CD可谓天籁,例如维也纳金色大厅内的五大音乐家(贝多芬、莫扎特、柴可夫斯基、巴赫、约翰施特劳斯)作品演奏、莎拉布莱曼的专辑都是好东东,不找个好办法原汁原味地享受一番,岂不是浪费。
但是,DTS-CD的解码问题一直被关注,也是困扰已久的问题。
本文不探讨模拟解码输出给音箱的方式,这太简单了,本文主要关注如何通过Kmplayer实现源码输出DTS-CD给功放解码,至于使用FooBar2000实现源码输出DTS-CD给功放解码,在我另一篇博文中,请到Http:
//
另外,备注一下,对于非DTS的普通APE,不论是否先提取WAV,如何源码输出WAV让功放解码,这个本文无法解决。
这里首先说一点,如果阁下的声卡是AC97的,那就可以打住,不用往下看了,Ac97不支持44K采样率,打死都出不来SPdif源码输出,除非你愿意用Foobar的44K转48K再输出,声音会快1.2倍……
板载声卡里,除了Ac97,至于其他的板载声卡——近年流行的HDAudio,倒是没有问题。
这里先说说源码输出的实现与否判断标准:
(1)功放上一般会显示输入信号,PCM的话就失败了,必须显示DTS。
就算是显示杜比也失败。
(2)源码输出是把信号给功放处理,本机此时操作系统、软件的音量调节失效,软件的EQ混音失效。
如果你本机还能调整音量,那么失败。
反之,成功。
操作系统基本设置:
要源码输出,首先得Spdif或者同轴输出,一般声卡为SPDIF光纤输出,在XP里把SPDIF的勾打上就行了,在Vista里将SPDIF设备设置为默认输出设备即可。
OK,操作系统设置先这样,更复杂的等会讲。
Kmplayer软件设置:
其实,这并不是什么大的难题,之前在其他论坛上,曾经就看到有人实现了,并贴过这样的帖子,但是大批跟贴者痛批帖子教程不灵,发贴者也很委屈。
设置很简单,我这里再复述一次:
(1)KMplayer设置内部音频解码器,点击“取消全部”,会剩下几个,无所谓,不管他。
(2)在外部音频解码器中,将DTS设置为AC3滤镜
(3)按C,进入AC3滤镜设置,逐项设置如下:
主体,设置启用SPDIF,输出方式就选ASIS无转换,不要胡乱把DTS音源的声道数胡乱转换,其他没有什么可选的了。
混音、放大没什么可选,因为是源码输出交给功放去处理,这里的设置都没用,也最好不要乱选。
SPDIF选项重点关注:
输出方式不要动,这里和最初设置是自动关联变化的。
SPDIF传输对象全部勾选上。
SPDIF/DTS模式,选“自动”。
我在平时看MKV高清时都选填补,但发现如果在放Dts-CD时不选自动,会偶尔出现问题,建议选择“自动”
SPDIF/DTS转换,选择“不转换”
SPDIF选项中,除了“输出SPDIF为PCM”外全部勾上,这条绝对不能勾,因为本来要源码输出DTS,如果输出成PCM那还玩什么?
至于限定采样率要求全部勾选,这个很重要,因为很多声卡只支持48KHZ的,还要靠各类设置解决,这里多勾选没问题,因此全部勾选。
DirectShow选项中,最重要的是一定勾选“SPDIF模式中禁止PCM输出”,原因和上面一样。
系统设置如下:
Ac3filter解码对象全选。
解码器优先级设置为Ac3fliter,但此处可能会无法设置,要其他设置好关闭后重新进入,才能设置,有时甚至重新进入发现这项已经设置好了。
默认音频渲染器使用DirectSound。
directshow选项和上面一致,此处不要动。
Ok,Kmplayer设置到此为止,此时,无论是播放DTS的高清电影文件,还是把DTS-CD的MDS、MDF用Daemontools加载后“播放CD”,功放上都能显示DTS了,大功告成。
看到这里,可能有人要开骂了,老子已经这样设置了,干嘛还不行?
要么功放还是显示PCM、要么沙沙的没声音。
OK,如果出现这样的情况,请继续往下看。
操作系统高级设置:
首先看看这时都还不成功的情况:
第一种情况,功放还是显示PCM,这证明是没有实现源码输出,现在是PC解码,只把PCM2声道模拟信号给了功放,功放只起到了一个放大作用。
Ok,这种情况相对好解决,请仔细核对我上面的Kmplayer设置,最笨的办法是照着我的截图一个个设置,如果还不行,请说出你的配置、软件版本、具体情况,留言看我能不能解决。
第二种情况,功放显示DTS了,证明源码输出成功了,可是音箱只有沙沙的噪音,这个问题,90%以上是由输出采样频率引起的。
采样频率,很多人总搞不清和重采样的区别,很多人一听我讲采样频率,就以为我也要走重采样的取巧路径。
因为网上有很多教程,大家搞不定DTS-CD的源码输出,就干脆取个巧,用AC3滤镜将DTS音频信号重采样编码成640KB,AC3输出给功放解码,功放认为这是AC3信号,因此就识别为杜比信号。
这样虽然是数字输出给功放解码,但是中间转换了几次,1536K全码DTS变成了640K的AC3,可谓损失惨重,这种亏我是不吃的。
OK,言归正传,之所以说到采样频率,是因为它对我们源码输出的影响很大。
DTS-CD如果源码输出,必定要求声卡以采样率44.1KHZSpdif输出,但是,请仔细检查,你现在声卡的设置是44KHz吗?
因为44Khz是CD音质,48Khz是DVD音质,因此许多操作系统声卡默认设置是48Khz,甚至不支持设置到44Khz。
对于不支持设置到44Khz的,只能默哀了。
对于支持的,请麻烦你,在你右下角系统托盘的声卡图标里,设置声卡采样率为44.1Khz。
Ok,这样DTS-CD再播放,沙沙声没有,天籁出来了。
可惜,有个麻烦,看MKV高清时,是48Khz的采样率,请再调回去。
有没更好的办法?
好在Vista是个好同志,他充分挖掘了声卡的特性,在他WDM的声卡驱动力,就能让大部分声卡实现44K、48Khz的自动切换。
听我慢慢道来:
打开控制面板,选择声音,在SPDIF设备上点属性:
进入SPDIF设备的属性页,进行设置:
此处请务必注意,在上图中,不要自作主张地勾选任何一个选项。
上图中解码格式有“DTS、Dolby、WMA”三个选项,采样频率有“44K、48K”两个选项,对于全部5个选项,请逐一选中,并点击右边对应的“测试”,如果该项测试时声音正确,并在系统询问你声音是否正确时回答“是”,系统会自动勾选上它。
上图就是我测试的结果,我声卡支持DTS、Dolby传输解码、支持44和48Khz采样频率。
OK,按照测试结果勾选上,如果你能勾选上我这4个,那就没问题了。
要知道,我的播放设备不过是华硕A8JA笔记本,声卡是集成声卡而已(好在有SPDIF光纤输出,而数字输出和声卡好坏无关)。
最后一步,高级设置。
其实在我的经验里,这里不管设置44还是48,系统播放48K的电影和44k的DTS-CD都行,居然没影响,不过还是说说这里,如果哪位兄弟遇到只能支持一样的尴尬情况,就到这里来调整:
Ok,大功告成!
这下,无论是DTS电影、DTS-CD,都能畅通无阻了!
天籁之音从此不再有障碍!
分
DTS-CD Spdif源码输出功放解码——FooBar篇(原创)
在我另外一篇博文《DTS-CD Spdif源码输出功放解码——KMP篇》中,源码输出DTS-CD给功放解码的办法,包括Kmplayer的设置、操作系统的设置,都已经讲的很详细了。
考虑到许多听音乐的朋友对Foobar2000更有兴趣,因此这里再探讨一下FooBar2000源码输出的办法。
虽然我认为都是数字输出,这种场景下,用所谓高音质的FooBar实在和Kmp没啥区别,但是套句某FooBar版主的话“用Foobar2K听音乐的优点在于不仅音质好,也节省CPU、内存资源,同样,显得你是个有品味的技术型人士”,因此我们还是认真探讨一下Foobar的实现方式。
老规矩,还是说一下本文解决的技术问题和前提条件:
(1)于非DTS的普通APE,不论是否先提取WAV,如何源码输出WAV让功放解码,这个本文无法解决。
(2)这里首先说一点,如果阁下的声卡是AC97的,那就可以打住,不用往下看了,Ac97不支持44K采样率,打死都出不来SPdif源码输出,除非你愿意用Foobar的44K转48K再输出,声音会快1.2倍……;至于其他的板载声卡,近年流行的HDAudio,倒是没有问题。
操作系统基础设置和高级设置,我在这里就不说了,请参考《DTS-CD Spdif源码输出功放解码——KMP篇》(
FooBar2000设置
(1)安装Foobar后,请务必不要胡乱安装插件,包括Ac3、Dts插件什么的,我们都不需要,再确认一下,我们是把DTS源码输出给功放,你安装本机解码用的DTS插件干什么呢?
我们需要安装的插件有2个,把这2个Dll放到Foobar目录下的components目录中。
第一是spdif插件,靠他spdif输出。
foo_spdif.dll
第二是wasapi输出插件,输出也靠他。
foo_out_wasapi.dll
(2)插件放到components目录后,启动Foorbar2000就会自动调用,我们有2个地方需要修改:
首先,修改Spdif选项(这个要加入了spdif插件才会出现)。
请注意,2个enable都要勾选上,至于用Waveout输出还是directsound输出,我测试了都OK,建议用后者。
对于那个允许playback44kto48K,这个选项就是前面提到的,如果声卡无法44K输出,就重采样成48K输出,这样带来问题第一有轻微失真,第二造成声音加快1.2倍(这个无法接受),建议不选。
第二个需要设置的,是输出,这就是全局输出设置。
这里什么都不需要勾选,也不要胡乱把输出从16位改高。
需要注意的是,此处一定要下拉选择WSAAPI对应的SPDIF输出设备。
在没安装WASAPI插件前,是没这个设备的,使用本机SPDIF输出,只能是立体声PCM,不能实现DTS-CD源码输出,所以这就是一定要安装WASAPI插件的原因。
可能有些朋友要问,为什么不用ASIO插件,因为我在Vista-32位操作系统上使用时,提示不能创建ASIO驱动,而WASAPI用起来运行良好。
Ok,设置到此结束。
使用虚拟光驱Daemontools加载下载的DTS-CD(格式可能是MDF、Nrg、ISO等),再用Foobar播放音频CD(虚拟光驱),声音就直出功放解码了。
如果按照以上设置还不行,那么问题必定在于44KB和48KB操作系统设置,请仔细查看KMP篇里的操作系统设置。