saber 酱的抱枕

Fly me to the moon

06/8
2023
软件

Potplayer 使用 LAV + MadVR 提高画质

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

今天刷 B 站无意间看到个 up 发的调教 Potplayer 的视频,我本不以为然,心想我用内置 DX11 渲染器这么多年不也没出啥问题,别的渲染器能有多大差别呢?结果我试了之后真香了。

设置步骤

需要先安装 LAV (分离器和解码器)以及 MadVR(madshi video render,渲染器),如果你没有的话安装 K-lite codec pack 应该就有了。

然后打开 Potplayer 的设置(快捷键 F5)。以防万一,你可以先点左下角的“导出当前配置”按钮,这会导出一个 reg 文件(注册表文件)。

然后点击“滤镜”菜单:

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

内置图像处理滤镜改为总是不使用。
下面的选项只勾选图上的“使用声音处理滤镜”(如果取消勾选,在慢放或快放视频时,声音的音调会严重失真)。

然后点击“滤镜/分离器管理”,选择箭头中列出的 3 个添加进来:

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

添加之后,点击上方的“滤镜/分离器”、“视频解码器”、“音频解码器”三个设置,把它们里面的所有下拉选项都改为 LAV 开头的。(如果有的下拉选项里没有 LAV 则不用改)

最后点击左侧的“视频”菜单,把渲染器改为 MadVR(Madshi)。

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

全部设置好之后,关闭 Potplayer 重新打开,播放一个视频,按 Tab 查看 OSD 信息,看到应用了 LAV 解码器以及 MadVR 即可。

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

我实际测试发现画质确实有提高,某些时候画面流畅度也会提高。

MadVR 的画面更清晰

我使用某个视频测试,暂停播放并按退格键定位到第一帧,截图对比发现画面区别明显。

上 DX11,下 MadVR,牛仔裤上的纹路更清晰,MadVR能看到的细节更多:

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别
Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

查看 DX11 原图
查看 MadVR 原图

(不过中国人的性情总是喜欢折中调和的,如果你觉得 MadVR 的白色反光有点太强,可以在它的设置里调整画面设置。具体可参考文末的设置。)

另一帧画面,上 DX11,下 MadVR,注意背景里的点点星光,以及眼睛,MadVR 显示的更清晰:

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别
Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

查看 DX11 原图
查看 MadVR 原图

MadVR 会适配屏幕刷新率,画面更流畅

我在播放这个视频时,感觉似乎比以前更流畅。细看了以下 OSD 信息发现是真的。我的显示器是 75Hz,该视频帧率是 60FPS。

在 DX11 的 OSD 上,输出帧率是 60,也就是视频帧率:

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

MadVR 的输出帧率却是显示器刷新率 75:(图上显示为 80 是当时的数据有波动)

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

更低的帧率如 30 帧、24 帧也同样会输出为 75 帧。

这个视频是舞蹈视频,我使用这两个滤镜分别同步播放这个视频(开了两个播放器实例),关闭 OSD 信息,每个轮流看几秒然后切换到另一个。当我觉得某个播放器里的画面更流畅时,按 Tab 调出 OSD 查看用的是哪个渲染器。

实测中选中 MadVR 渲染器的几率大大高于 DX11,这说明 MadVR 在高刷新率显示器上播放低帧率视频时更流畅。

话说自从我换了这个 75Hz 的屏幕,用 Potplayer 播放 MMD 时不时就会怀疑画面的流畅度有问题,看来之前的感觉不是错觉。

需要注意的是,对于超出了显示器刷新率的视频(如一个 120FPS 的视频在 75Hz 刷新率的显示器上),MadVR 依然会把它降低到 75Hz 输出。在默认设置下,这会出现非常明显的跳帧,画面是不连贯的。

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

而 DX11 始终按原视频帧率输出,不会跳帧。

Potplayer 使用 DX11 视频渲染器和 MadVR 的一些区别

要解决跳帧问题,可以在开始菜单中搜索 MadVR 打开它的设置,找到 rendering - smooth motion,勾选右侧的开关,启用画面平滑功能,这样就不会跳帧了。

MadVR 占用显存更多

在前面的 OSD 截图中,对于同一个视频,使用 DX11 渲染器播放时,显存使用总量为 2.2 GB(这里面大部分是本来就有的显存占用,播放器只占了几百 MB)。使用 MadVR 时,显存使用总量为 2.8GB。(我同时只打开一个播放器)

从任务管理器的 GPU 专用内存增量来看,对于这个 2160P 60FPS 400mbps 的视频,全屏播放,DX11 使用了 400MB 显存,MadVR 使用了 1GB 显存。

使用多个视频测试结果都一致,MadVR 的显存使用量大幅超过 DX11,不过 GPU 使用率基本没有差别。至于 VPE,它的波动大,截图中的差距不具有代表性。

有趣的是,当以不同尺寸渲染画面时(如 1/2 视频尺寸、窗口最大化、全屏),渲染窗口尺寸越大,MadVR 占用的显存更多,反之越小。DX11 没有这个现象,占用的显存是固定的。

MadVR 不能使用 NVIDIA RTX 视频超分辨率

在 Potplayer 里使用内置 DX11 渲染器的话,NVIDIA RTX 视频超分辨率功能可以生效。

但是 MadVR 不支持使用 NVIDIA RTX 视频超分辨率,所以全屏播放低分辨率视频时不如 DX11 渲染器清晰。

小结

将 Potplayer 的内置 DX11 渲染器更改为 LAV + MadVR 确实可以提升画质和观感,但是也有一些需要注意的问题:

  1. MadVR 占用更多显存
  2. MadVR 不支持视频超分辨率

请根据自己的情况酌情使用。我认为对大部分人来说都是可以尝试的,对我来说基本上只有超分辨率的问题,因为现在还是经常会下载到 1080p 的视频,但我的全屏分辨率是 1440p,有超分辨率会更舒服。

不过现在我也可以通过两套配置(注册表文件)来切换,需要超分辨率的话就用 DX11 吧。

Potplayer 导入配置

分别导出 DX11 和 MadVR 的配置文件,需要切换时双击导入注册表就行。之后重启播放器就可以生效。


另外,播放 4K 高码率或高刷新率视频时,建议开启硬件(独显)加速。这不在 Potplayer 里设置,而是在系统设置里调整。

参见:怎样让 Potplayer 使用独显进行解码


配置 LAV 和 MadVR

在播放视频时,右键-滤镜,可以看到使用的滤镜:

Potplayer 导入配置

点击对应项就可以打开它的设置。

另外这些设置也都可以在开始菜单搜索 LAV 或者 MadVR 来打开。

我在 MadVR 里调整了图像放大和缩小的算法,这增加了显卡占用。具体占用多少根据你的设置会有所不同,我这个算是低负载的。

Potplayer 导入配置

Potplayer 导入配置

播放本文中的测试视频,GPU 使用率从 20% 涨到了 40%,显存使用从 1GB 涨到了 1.3GB。

调整过之后,牛仔裤那张图片的效果变了,白色反光没那么强了,同时清晰度也没那么强了,处于那两张截图中间的效果。

Potplayer 使用 LAV + MadVR 提高画质