耳机网-耳机大家坛

标题: foobar2000的优化——拒绝卡顿、破音与爆音 [打印本页]

作者: SpinningSTAR    时间: 2018-12-30 09:32
标题: foobar2000的优化——拒绝卡顿、破音与爆音
前言


本人大学在校学生党,过年21岁,在2018年的倒数第二天预祝各位烧友前辈们、大大们元旦快乐!!!


foobar2000是PCHIFI中常用的无损音乐播放器

foobar最大的特点是"自由度高",或者说"DIY程度高",也可以说"插件自由度高"

foobar的插件很丰富,功能能强大,自由度很高
这就导致了foobar的声音  变好也容易,变坏也容易
foobar最基础的设置在我的第一个帖子中具体写明了


在校学生党初试HIFI桌面组合——QI+1770PRO

http://www.erji.net/forum.php?mod=viewthread&tid=2131979

(12L、51L的foobar设置部分已置顶)——虽说是QI的设置过程,但还是有些参考价值的

本贴以foobar2000为基础,谈一谈其优化音质方法,减少卡顿、爆音、破音的发生。


作者: displanet    时间: 2018-12-30 09:35
占座学习学习 我的福巴2k最近经常爆音
作者: 曲终づ人散    时间: 2018-12-30 09:39
占个位置看看
作者: 暴雨刀客    时间: 2018-12-30 09:43
占座看看
作者: SpinningSTAR    时间: 2018-12-30 09:57
第一个方法——foobar设置来解决问题
1.在foobar的 参数选项-播放-输出 界面上有个缓冲长度的选项

界面如图所示,这个的单位是ms(1s=1000ms),可以拉高这个来提升流畅度。
这个缓冲长度会影响听感,短缓冲下,声音解析度较高,但比较干燥,齿音较多.极端情况下,超出了声卡的能力范围,甚至会出现爆音和短暂的停顿;高缓冲下,声音叫润,细节减少,但耐听.极端情况下,超出声卡缓存,会报错。
一般设定在500——1000(本人设置的是500),如果还是卡的话可以拉得更高,但不建议太高,10000就差不多了,缓冲10s咋地也够用了。

2.在foobar的 参数选项-高级-播放 界面上有一个全文件缓冲的选项

界面如图所示,这个选项的作用是设置播放时把源文件全部读入内存的最大文件大小
我设置的是1048600kb,也就是略大于1G(即为1048576kb)
在测试过程中发现foobar最大支持1G的全文件缓冲,在设置上写16G都没用,它最大还是缓存1G文件(一般的无损文件很少超过1G)
还试了试给foobar申请大内存,然并卵,最大就缓存1G
这个设置其实更好,内存的读写速度远高于硬盘,哪怕是SSD,CPU直接从内存中读取文件,而不再是从硬盘一点点提取到内存,再由CPU读取
减少了中间过程,卡顿产生的几率也就更小。


如果你的电脑配置够好,推荐使用第二种方法,例如我电脑是16G内存,分1G听歌用总不过分吧(还不一定用满)
配置实在不行就用第一个方法,但影响听感。





作者: SpinningSTAR    时间: 2018-12-30 10:02
如果你试过了5L所述的方法还不奏效的话,我还有第二种方法。

作者: hrmdadi    时间: 2018-12-30 10:06
私以为爆音是USB的问题,foobar作为PC端的播放软件,自己缓冲的再长,也要按照时序一点一点的通过USB发送给解码,而USB这边出现问题的话,foobar的缓冲是解决不了问题的。
作者: SpinningSTAR    时间: 2018-12-30 10:15
第二种方法——分配处理foobar所用的CPU核心
背景介绍
我的电脑CPU型号为i7-7700HQ,4C/8T,也就是四核心八线程的CPU。
在使用过程中发现即便是把前楼所述的都设定好了,偶尔也会卡顿。
后来打开了任务管理器,看了眼CPU使用率,真是不看不知道一看吓一跳啊!

CPU0使用率明(yuan)显(yuan)高于cpu1234567,这不就是传说中的一核有难,七核围观么!!!

什么脏活累活都找CPU0干,这样的结果是一旦你打开了进程优先级高于foobar的程序,CPU0这位吃苦耐劳的老大哥,就会放下手中的活,去处理一下那个进程优先级更高的程序
然后,foobar的活就被扔下了,耳机传来“boom”的一声,就爆音了。


作者: SpinningSTAR    时间: 2018-12-30 10:27
第二种方法——分配处理foobar所用的CPU核心

解决方法:

任务管理器-详细信息-foobar2000.exe-右键-设置相关性



打开后是这样的,那么我们参照自己电脑CPU占用率选择闲置的核心来处理foobar






经过测试
我选择了CPU4567来处理foobar,防止其他应用程序的优先级的原因占用CPU0干扰到foobar的工作。



作者: 非常选择    时间: 2018-12-30 10:46
楼主纯技术贴,流泪支持啊,我的福爸也爆音,正在找调音的方法。
作者: 左仑    时间: 2018-12-30 10:46
用了那么久,fb没有卡顿爆音的问题啊~
作者: SpinningSTAR    时间: 2018-12-30 11:09
SpinningSTAR 发表于 2018-12-30 10:27
第二种方法——分配处理foobar所用的CPU核心
解决方法:
任务管理器-详细信息-f ...

这一楼仅仅是展示了一下原理,如果程序重启或foobar重启了,这个设置也就没了。
解决方法在此,下载软件——    Process Lasso   

在这个界面上找到foobar2000.exe
右键-CPU亲和力-CPU亲和力-总是-选择CPU亲和力
勾选即可


顺便,再把foobar的优先级与I/O优先级调高,方法类似
这样设置是保证foobar不被其他程序干扰的最优解。



作者: SpinningSTAR    时间: 2018-12-30 11:40
先发这些,如果再有改动及更好的方法的话我再更,欢迎提问及补充。
作者: 大腕KENT    时间: 2018-12-30 11:56
来学习了!
作者: tjdgzyh    时间: 2018-12-30 11:57
支持楼主!
关闭杀毒防火墙,关闭节能和不用的软件等也是有帮助的
作者: joseph.tt    时间: 2018-12-30 12:18
支持楼主!
作者: lzxp    时间: 2018-12-30 15:06
卡顿破音爆音的根源,DPC延迟了解一下
作者: 就是想知道    时间: 2018-12-30 15:14
技术贴,支持!
作者: SpinningSTAR    时间: 2018-12-30 15:27
lzxp 发表于 2018-12-30 15:06
卡顿破音爆音的根源,DPC延迟了解一下

长知识了,谢谢您。
查了些资料,DPC(延迟过程调用)大概意思是高优先级进程会打断比之低的进程优先处理
虽然我之前不了解DPC,但我的思路却与之契合了
提高foobar的进程优先级与I/O优先级等并使用使用率低(不怎么忙)的CPU4567去处理
这样进程被中断并搁置的概率就减少了很多很多

作者: lzxp    时间: 2018-12-30 15:34
SpinningSTAR 发表于 2018-12-30 15:27
长知识了,谢谢您。
查了些资料,DPC(延迟过程调用)大概意思是高优先级进程会打断比之低的进程优先处 ...

DPC是系统层面的,也是卡顿的罪魁祸首
软件设置可以避开卡顿,但也是治标不治本

软件设置思路是对的,但问题根源先去解决了的话,再去优化软件,效果能更上一层楼

作者: magicchou    时间: 2018-12-30 18:05
学习了  长姿势~~~  
作者: zctang305    时间: 2018-12-30 18:40
其实我还想说,谷津的USB驱动写的是真的很烂。有时候我甚至觉得不装它给的USB驱动,直接让win10识别成SDPIF设备用wasapi出来的声音还比较好一些。
而且不知道是USB的通病,还是谷津的特点。谷津的机器一直有foobar里手动换歌偶尔出现歌曲播放间歇性小停顿的问题,要多换几首歌才会消失。而让播放器自己跳转下一首就没有这个问题。而且无论你如何增加缓存,预读取都无法解决。从U4到Qm,我的配置从P67到Z390,系统从win7到win10都有这个现象。
作者: qq1653304183    时间: 2018-12-30 18:43
从来都是默认设置也没遇到过一次爆音,看不懂你这个所谓的优化优在了哪里。。
作者: beyondalso    时间: 2018-12-30 19:16
好帖子,还没测试,先支持一下这种伟大的分享精神!
作者: zamam    时间: 2018-12-30 19:50
第一个设置的效果真是立竿见影,从1000MS设置到500MS
作者: SpinningSTAR    时间: 2018-12-30 20:20
zctang305 发表于 2018-12-30 18:40
其实我还想说,谷津的USB驱动写的是真的很烂。有时候我甚至觉得不装它给的USB驱动,直接让win10识别成SDPIF ...

这个算是USB的通病了,我用DX200的USBDAC以及乂度TA-10的时候都有存在过这种情况,有USB的锅,也有foobar的锅吧,也可能有ASIO的问题所在。
我遇到过的问题是:当你着急切歌而过快的点击了某歌曲后,foobar直接会宕,解决办法就是慢速点击,心平气和地去切歌。
PCHIFI的通病所在就是环节多,哪个环节有点问题都会带来一定影响的
但也没办法,PC一个多面手,它力求的是全能,想要出好声就得折腾

作者: hi-wowo    时间: 2018-12-30 21:18
太复杂的说,话说楼主学生没办法,一般人家里谁没有两部电脑,我都是电脑专机播放,放音乐时候就只开FB,从来没有爆音卡顿问题,如果你只有一个电脑,还要同时上网,玩游戏,听音乐,那可能要优化一下。
作者: kexon    时间: 2018-12-30 22:21
要不要讲讲Transcoder这个插件 看坛里一部分人还不知道新版本FB2K怎么用NATIVE
作者: SpinningSTAR    时间: 2018-12-31 07:44
我昨天帮一位前辈调整foobar
问题如下:安装1.4版本foobar,并安装了DSDTranscoder1.1.0,电脑上有
JRiver,
经由我第一个帖子的方法调整(http://www.erji.net/forum.php?mod=viewthread&tid=2131979

发现所有的DSD(64-256)文件均不可播放。
我远程操作,发现情况确实如此,当时怀疑JRiver与之冲突,先卸载了JRiver,并将foobar及所有插件全部卸载后重装,原因依旧。
后来改安装1.4.1版本foobar,以上问题解决。


作者: huizhen    时间: 2018-12-31 12:23
感谢经验分享
作者: 大腕KENT    时间: 2018-12-31 14:18
SpinningSTAR 发表于 2018-12-31 07:44
我昨天帮一位前辈调整foobar
问题如下:安装1.4版本foobar,并安装了DSDTranscoder1.1.0,电脑上有JRiver ...

哈哈,谢谢你啊!继续学习!

作者: SpinningSTAR    时间: 2018-12-31 15:01
foretime 发表于 2018-12-31 14:25
USB接收太垃圾才会产生爆音

感谢补充
我没太注意区分卡顿、破音与爆音
在这写一下三者产生的途径:
电脑系统问题——>卡顿或破音
源文件出问题——>卡顿或破音
USB传输问题
——>卡顿或爆音


作者: SpinningSTAR    时间: 2018-12-31 15:18
SpinningSTAR 发表于 2018-12-30 11:09
这一楼仅仅是展示了一下原理,如果程序重启或foobar重启了,这个设置也就没了。
解决方法在此,下载软件 ...

详细解释一下
DPC(延迟过程调用)大概意思是高优先级进程会打断比之低的进程优先处理



由于DPC的存在,导致我们的foobar会被一些高优先级进程打断,故使用进程优化工具——process lasso
来优化foobar的进程
foobar本来也不太吃资源,还总被打断,我们提升它这几个方面:
1.优先级:即进程优先级,设为高,防止被打断
2.CPU亲和力:选择使用率较低的CPU核心上运行foobar的进程
3.I/O优先级:即该进程的调用硬盘资源的优先级,设为高
4.内存优先级:进程调用内存的优先级


用个通俗的解释就是:让工人优先干foobar的小活,找比较闲的工人去干,仓库的钥匙给工人们,流水线也允许优先使用


这样达到了从系统层面上优化foobar


而DPC是底层系统的运行机制,相当于公司里铁规则,没到很高的级别改不了的。



作者: llzlgb    时间: 2018-12-31 23:32
kexon 发表于 2018-12-30 22:21
要不要讲讲Transcoder这个插件 看坛里一部分人还不知道新版本FB2K怎么用NATIVE

native与dop输出完全一致,没有任何区别。

作者: 雪舞东风    时间: 2019-1-1 11:38
支持技术贴
作者: SpinningSTAR    时间: 2019-1-1 14:20
本帖最后由 SpinningSTAR 于 2019-1-1 14:24 编辑
llzlgb 发表于 2018-12-31 23:32
native与dop输出完全一致,没有任何区别。

的确是一致的,都是DSD硬解,但分情况会用到不同的模式。
比如我手里的QI,支持DSD NATIVE256||DOP128,foobar的SACD 1.1.0插件仅支持DOP模式
那么一旦播放DSD256的文件,foobar默认输出DOP256,造成解码超限,听起来底噪巨大无比

这时候就需要切换NATIVE模式,才能正常的播放
那么就得配合DSDtranscoder(具体方法我之前那个帖子里有)



作者: pinarello    时间: 2019-1-1 18:52
绑定,支持一个,回头看看。
对了,如何查看目前foobar播放是啥模式
作者: new_p    时间: 2019-1-1 19:25
SpinningSTAR 发表于 2019-1-1 14:20
的确是一致的,都是DSD硬解,但分情况会用到不同的模式。
比如我手里的QI,支持DSD NATIVE256||DOP128, ...

mark一下 qi拿到设置一下
作者: vovhunter    时间: 2019-1-1 22:13
SpinningSTAR 发表于 2018-12-30 20:20
这个算是USB的通病了,我用DX200的USBDAC以及乂度TA-10的时候都有存在过这种情况,有USB的锅,也有foobar ...

这是驱动的锅吧,天龙的uSb没见过出这问题

作者: levmin    时间: 2019-1-2 09:33
好贴
作者: njhifi    时间: 2019-1-2 10:30
本帖最后由 njhifi 于 2019-1-2 10:33 编辑

先调整优化foobar参数,再用Fidelizer全面优化操作系统管理的各进程优先级,或许会有效果。
foobar参数如何调整,Fidelizer的说明文件中有,按说明调整即可。

作者: njhifi    时间: 2019-1-2 10:43
Fidelizer的原理是通过降低和音频无关进程的优先级,提高foobar或hqplayer的优先级,将计算机的资源优先分配给播放软件来实现提高音频质量的目的。
Fidelizer将普通的计算机调整成音乐播放专机,简单方便。计算机重启后,Fidelizer的调整就撤销,计算机恢复成调整前的状态,对计算机的没影响。
作者: kytoon    时间: 2019-2-17 11:37
赞!我是用老笔记本在客厅里接前级听歌,网络映射台式机上的资源,总是卡顿,不论PCM还是DSD,开始以为是网速的问题,按照楼主的全文件缓存设了后,问题解决,多谢!
作者: metaverse    时间: 2019-2-17 12:21
缓冲时间这个,即便设了全文件读入内存播放,缓冲时间越长声音还是会越平滑宽松,现在我干脆拉到最大,30秒,缺点是播DSD调个音量要到30秒后才起作用,不过PCM格式不受影响……全文件读入内存我设了512M,基本上够一只交响一个乐章的DSD64,设大了机械硬盘的读取时间略长,音轨之间的衔接可能会有间隙。另外问一下本地文件预读那个实际上有什么用?跟这个全文件缓冲是什么关系?

指定CPU逻辑核心这个,我觉得是不是将其中部分核心全禁了其他进程调用才算彻底?
作者: 409153577    时间: 2019-2-20 17:44
请教下 我用的是qm 设置好后当播放完dsd64换成dsd128或256的文件时会报错,但是再次点播放后可以正常播放。播放相同类型的dsd就不会报错
作者: SpinningSTAR    时间: 2019-2-21 07:27
metaverse 发表于 2019-2-17 12:21
缓冲时间这个,即便设了全文件读入内存播放,缓冲时间越长声音还是会越平滑宽松,现在我干脆拉到最大,30秒 ...

1.本地文件预读和全文件缓冲没关系,这是1.4.1才开始有的东西,具体的作用没实验
2.一般而言,提升各项优先级后,CPU亲和力避开CPU0,效果就很好了,如果还是卡,那就把其他占用大的软件关闭掉Foobar2000所占用的核心。
毕竟每个人的使用环境都不同,怎么效果好怎么来,还是得自己试验,我这帖子就是分享下该实验哪些地方








作者: SpinningSTAR    时间: 2019-2-21 07:30
409153577 发表于 2019-2-20 17:44
请教下 我用的是qm 设置好后当播放完dsd64换成dsd128或256的文件时会报错,但是再次点播放后可以正常播放。 ...

建议直接升级至最新版foobar,也有人私信过我这个问题,但是他安完最新版就没问题了。

这问题要排查就太复杂了,还不如推倒重建

作者: brucez    时间: 2019-2-21 11:12
学习了


作者: 可爱丸子头    时间: 2019-2-21 11:28
SpinningSTAR 发表于 2018-12-30 09:57
第一个方法——foobar设置来解决问题
1.在foobar的 参数选项-播放-输出 界面上有个缓冲长度的选项

用第二种方法的话,第一种方法的缓冲默认调多少呢?0?

作者: ralph1    时间: 2019-2-21 11:31
先顶再看。。技术贴要支持!
作者: metaverse    时间: 2019-2-21 13:06
SpinningSTAR 发表于 2019-2-21 07:27
1.本地文件预读和全文件缓冲没关系,这是1.4.1才开始有的东西,具体的作用没实验
2.一般而言,提升各项 ...

用哪个CPU逻辑核心貌似是随机的,但每次开机都要重新设置,有没有办法锁死禁用其中哪个?


作者: 409153577    时间: 2019-2-21 13:26
SpinningSTAR 发表于 2019-2-21 07:30
建议直接升级至最新版foobar,也有人私信过我这个问题,但是他安完最新版就没问题了。

这问题要排查就 ...

回去试一下,谢谢

作者: SpinningSTAR    时间: 2019-2-21 15:46
metaverse 发表于 2019-2-21 13:06
用哪个CPU逻辑核心貌似是随机的,但每次开机都要重新设置,有没有办法锁死禁用其中哪个?

用process lasso这个软件去设置,只要这个软件运行,就会一直生效。

作者: SpinningSTAR    时间: 2019-2-21 15:52
第二种方法:process lasso设置方法【图文】
注意:一定要在“总是“中更改
1.调高优先级

2.调整CPU亲和力(注意避开CPU0,设置哪些核心需要你自己试验)

3.调整I/O优先级

4.内存优先级(一般不用动)


作者: SpinningSTAR    时间: 2019-2-21 15:55
这个帖子是本帖的精华版,看本贴思路乱的话请去这个贴看
针对foobar2000卡顿的优化总结
http://www.erji.net/forum.php?mod=viewthread&tid=2137048
(出处: 耳机大家坛)

都是楼主写的帖子,顶哪个都是顶

作者: SpinningSTAR    时间: 2019-2-22 09:35
可爱丸子头 发表于 2019-2-21 11:28
用第二种方法的话,第一种方法的缓冲默认调多少呢?0?

建议一二类方法结合使用,效果更佳
作者: SpinningSTAR    时间: 2019-2-22 09:45
本帖最后由 SpinningSTAR 于 2019-2-22 09:50 编辑

补充一下:最近实验发现,foobar2000并不太适合超线程技术,存在负优化
如果你电脑CPU有超线程,在避开CPU0的同时,选择物理核心也就是CPU2468....(偶数核心)

实在不知道那个是物理核心,你就点一下“Disable Hyper-Threading”,并关闭CPU0。
作者: 妖僧er6i    时间: 2020-2-15 15:48
强贴留名!
还没用到下面提到的这个软件已经有明显提升了!
作者: 山西人在赤峰    时间: 2020-2-15 16:01
认真来学习,对我来说很专业

作者: 布谷小鸟    时间: 2023-11-15 19:25
感谢LZ, 翻到这个老帖子, 终于解决了DSD256/512卡顿的问题.
作者: lovepet    时间: 2023-11-15 22:09
marked
作者: 996932105    时间: 2024-11-5 17:51
好啊啊啊




欢迎光临 耳机网-耳机大家坛 (http://erji.net/) Powered by Discuz! X3.2