最近我是真被气坏了。前几天好不容易搞到了一个4K的电影原盘,想着画质这么必须得用大屏好好享受一下。兴致勃勃地打开播放器,文件刚跑起来两秒钟,结果?卡成狗!隔几秒就停顿一下,声音跟画面对不上,这哪里是看电影,这简直是折磨人。
我当时第一反应是,是不是文件有问题?又换了个文件试试,还是卡。我心想不对劲,我这机器配置也不差,i7的CPU,显卡也不算老,怎么就带不动一个播放软件了?我赶紧跑去看了看任务管理器,好家伙,CPU占用率直接飙到了80%多,显卡却在摸鱼,占用率只有个位数。很明显,播放器根本就没让我的显卡干活,全靠CPU硬扛着解码这么高码率的视频流,能不卡吗?
我二话不说,立马决定自己动手把这几个设置给捋顺了。
第一步:打开硬解,让显卡好好干活
这是解决卡顿问题的首要任务。如果播放器不知道调用你的独立显卡,或者用错了方法,那卡顿是必然的。我直接点进了设置菜单,直奔解码选项。一般播放器默认都给你设置一个叫“自动”的选项,听着挺高级,就是让系统自己猜。实测下来,这个“自动”是最容易出问题的。
我动手操作,把解码模式从默认的“自动”改成了“DXVA2 (copy-back)”。有些播放器可能只有“DirectX 视频加速”或者“硬件加速”这样的名字,反正就是要强制它使用显卡。设置完成后,我重新播放了一下视频,马上看到了效果:CPU占用率立马降下来了,掉到了40%左右。但是画面还是有点撕裂感,偶尔快速运动的时候,还是能感觉到一点不顺畅。这说明,虽然解码问题解决了,但是画面呈现上还有毛病。
第二步:选择合适的渲染器,画面才能丝滑
既然解码搞定了,下一步就是渲染器。渲染器就像是把解码出来的数据画到屏幕上的工人,这个工人如果效率不高,或者跟显卡沟通不畅,画面依然会出问题。默认的渲染器听着厉害,但在高码率或者4K片源下,它可能有点跟不上趟。
我找了一圈渲染器的选项,看到了“增强视频渲染器 (EVR)”和“Direct3D 11 Video Renderer”两个选项。对于现在新的显卡和系统环境,D3D11才是王道。我心一横,直接给它切换到了“Direct3D 11 Video Renderer”。这一下是真见效了!我再次播放测试,画面卡顿基本上没了,流畅度提升了至少一半。拖动进度条的时候,响应速度也快了不少。这说明显卡现在不仅负责了运算解码,连画面输出也同步跟上了。
第三步:缓存不能小气,给它多喂点内存
即便硬解和渲染都设置好了,我发现偶尔还是会有一秒钟的微卡,这种微卡主要出现在快进快退之后,或者在网络播放的时候。这是为缓存不够!播放器在处理视频流的时候,需要提前预读一部分数据放在内存里,这样才能保证突然需要大量数据的时候,不会因为读取速度跟不上而出现卡顿。
我赶紧翻到了播放设置里找“缓存”。播放器默认给的缓存小的可怜,一般就几兆。这对于看标清视频可能够用,但现在4K、原盘,那数据量是哗哗地流。我心一横,直接把缓存给拉满了。我的内存条够大,所以我就直接设置到了200MB。你不用设置这么多,但至少要给它留个100MB以上。这就像是给水龙头底下放了一个大水桶,就算水管偶尔有点小波动,水桶里存着的水也够用了。
搞定!这三个设置弄完,我再回去播放那个4K电影,那叫一个丝滑流畅,拖进度条也毫不费力,简直是脱胎换骨。我又跑去任务管理器看了看,CPU占用率甚至都没超过5%,显卡占用率也稳定在30%左右,完美地把解码任务分担过去了。
所以说,很多时候播放卡顿真不是机器不行,也不是播放器不而是你没把好钢用在刀刃上。尤其是硬解和渲染器这两个设置,必须手动去调整,不能信播放器的“自动”设置。这个设置组合,我已经在我家两台电脑上实测过了,都是立竿见影。你们要是有同样的问题,赶紧去试试,保准比你重装系统或者换播放器管用多了!
