本帖最后由 ronda2009 于 2023-8-17 21:37 编辑
================第一分割线=============== 提醒:
阅读本文前,需要对前文的Potplayer的OSD,有关10bit,有关完全动态范围有一点理解。如果还没有建立起一些思考的思维,可能下面将要分享的内容会很难以理解。所以一定要对前文有一些理解,做好预习准备。================第二分割线=============== 首先
有关D3D11与D3D9 和DXVA
还记得我前面分享这个表嘛?(图1,请记住这个图,下面会用到) 在分析这个表的时候我已经列出来D3D11与D3D9,我加了时期两个字,其实就是为了表示,他们产生的不同时间,D3D9为早,D3D11为目前,未来也许有D3D12、13等等等(也许)。最好的验证方法,你现在仍然可以找出以前win7时期的笔记本、电脑,在win7系统下打开Potplayer看会不会有D3D11的硬解方法。
================第三分割线=============== Direct3D 网站不能外链,可百度搜索。
================第四分割线=============== DXVA
这也总能看到,所以继续百度。
================第五分割线===============
结论:
看懂看不懂都没有关系,那么我们都清楚的是D3D11与D3D9和DXVA,都是硬件加速的显示,都是调用了系统内部的驱动,并且在系统调用的时候既可以使用D3D11的驱动文件,也可以调用D3D9的驱动文件。
================第六分割线=============== 小工具分享
给大家分享一个更新DirectX小工具,在这里我们可以清楚的看到,在更新的时候,小工具是会把D3D11、D3D9的驱动文件都复制到系统中的。
我之前也与大家分享过怎么查系统的DirectX 好了,有关这部分我们了解到此就可以了。下面我们就结合实际分享一些madVR中的应用。
================第七分割线=============== madVR的OSD
看过前文的小伙伴应该会调用madVR的OSD了(Ctrl+J),看过我madVR大帖子的小伙伴应该知道了我启动了一些madVR的隐藏功能,所以我的madVR OSD显示非常丰富。
重点内容只有这些。
延伸阅览
隐藏功能,168楼,209楼================第八分割线=============== 解决的问题
我们本文要解决的问题就是与D3D11和D3D9有关。从上面我们知道了目前系统中是有D3D11和D3D9两个有关联的驱动文件。从前文中,我们了解到了不同时期的电影对应的当时的驱动也不一样(1080P是D3D9时期,4K是D3D11时期),只不过D3D11可向下兼容,那么有的软件兼容的比较好,有的就兼容的不是很好。在我发现的问题中madVR也许就是兼容的不是很好的那一种,当然,也许是我发现的问题,也不代表普遍性,还是如果你发现了类似的问题,我提供给你一种思路,你可以试试。你也可以有其它解决办法。所谓条条大路通罗马,黑猫白猫抓到耗子就是好猫。
问题描述:播放1080i的电影或者某些720P的电影会出现闪屏,颜色过曝,而且字幕出来就闪,我的玩法是打开win10HDR,采用madVR HDR数据输出的玩法,按道理不应该再出现此问题,但仍然出现了。并且此类问题多数是出现在原来玩NV HDR看HDR电影会出现的问题,更不应该出现在1080i或者720P此类SDR电影中,经过长期摸索找到解决办法。
前文已经分享建立Profile,所以我的madVR所有设置版块均建立不同的Profile,总共大概有30多个,所以针对每个分辨率的分类都可单独设置,由madVR自动判别按照该分类设置渲染播放。
所以我在madVR里面找到了可以调用D3D9渲染1080P及以下分辨率电影、视频的方法。使用D3D11渲染4K的电影。这就与图1里面保持一致了。而且还解决了上面的问题。
4K D3D11的设置
1080P D3D9的设置
所以这样就区分使用了两种驱动文件来渲染,如果有我这样类似问题的小伙伴可以试试这个方法。没有问题的小伙伴知道有这么一种方法即可,如果以后遇到了可以知道有这样的一种办法可以尝试。所以这个解决办法必须要先理解并且查阅Direct3D,知道D3D9、D3D11是什么,大概知道即可,总会开阔你的解题思路。
================第九分割线=============== 3个优化方法
1.madVR启动小技巧
类似我这种已经设置了20、30多个Profile的情况,如果当你打开一个电影的时候,系统调用和判别的文件很多所以启动的反应稍微会变慢了,我可以分享给你一个小技巧,可以让madVR随开机自动运行,在系统内存中常驻运行,这样不是每次打开电影 ->启动Potplayer ->启动LAV分离 ->启动madVR ->判断madVR内部代码 ->执行渲染,可以节省一个madVR启动的步骤,打开电影 ->启动Potplayer ->启动LAV分离 ->判断madVR内部代码 ->执行渲染,这样就加快了很多启动时间。
首先
先创建一个madVR执行程序的快捷方式。
win+R,打开“运行”
输入命令,shell:Startup
将快捷方式放在“启动”文件夹内即可。
如果你没有打游戏的需求,作为专门的HTPC,8GB、16GB内存是用不完的,所以madVR常驻内存也并不影响其他软件,相反如果是专门的看电影的HTPC,madVR才是最重要的,其他的爱奇艺、芒果、腾讯等等等这都是很小的软件,这类软件重点在网速上,现在这个时候国内的流媒体质量仍然很弱,与本地的10G、20G、60G、100G电影比起来根本不值得一提。但是这些流媒体平时综艺观看还是很好、很方便的,合家欢喜剧需求还是不错的。所以你也可以看出来,我并不需要电视联网、也并不需要投屏这个功能,既不稳定也挺麻烦的,质量还差。
必须要注意的是
如果你玩的是HDR测试版,在采用这种开机自动启动、内存常驻方式的时候,一定要注意测试版的到期时间,因为如果过期了的话即使你启动了madVR,它一样是不再工作了,那么如果你觉得测试版到期时间比较麻烦的话,仍然可以使用113版本,这是一个长期版本,再或者就使用基础版的0.92.17的版本,这都是你可以选择的。
显示小技巧(56楼)
https://www.hao4k.cn/forum.php?mod=redirect&goto=findpost&ptid=63561&pid=2138109
================第十分割线===============
2.从OSD看到的“10bit”的一致
我们接着分享一个madVR有关“10bit”保持一致的情况吧,趁热打铁吧。
我标记出来,各位自行对照即可。如果是HDR电视保持10bit的一致是最好的,如果是SDR那么8bit足够。
1.显卡设置的“10bit”。
2.这个10bit最稳定、最简单是实现方法就是打开win10HDR,就是这么简单。如果老卡追求NV HDR的方法,这个10bit就跳8bit,跳来跳去的,屏幕闪来闪去的。
3.这个我前文有分享了,现在截图里显示的是视频本身的10bit。那么有些小伙伴这一行后面又跳出来一个8bit,这个问题请去看前文和161楼。
4.这个10bit也是必须要设置的,你可以尝试设置一下1bit,看看效果。
所以这些“10bit”都要保持一致,你的效果才会好(为什么请去看最上面的图1)。再提醒一下小伙伴,请高刷显示器、电视在现在、现在这个时候、目前阶段设置为60Hz,尝试效果,高刷是现在最大的噱头,可能效果并不好,请使用60hz以下尝试。
================第十一分割线===============
3.madVR设置的“0-255”的一致
还记得“0-255”“完全范围”嘛?开篇是不是让大家预习了?madVR的强大就是连这个都可以自定义设置。
首先必须要再次强调,HDR比原来的SDR的技术是“颠覆性”的,我不知道这个词准不准确,反正我想表达的意思是HDR和SDR是完全不同的理解,你的电视+电脑的设置必须按照其中一种来调教(要么按HDR调教,以后只看HDR电影,要么按SDR调教,关闭HDR功能以后只看SDR),使用电脑播放想自动就互相兼得、效果都好 是非常难的(目前阶段吧可能),所以win系统出现了这个平衡,但是这个平衡有个坏处,就是从系统源头限制了亮度输出,所以让你的显示设备不能正确接收亮度信号,所以调教起来非常麻烦。
不明白还是去看图1,“0-255”“完全”和“16-235”“有限”从电影的片源的源头就是不一样的。用同一个显示设备同时播放两种完全不同标准的电影,这怎么能播放好呢?这就是电脑的弊端,需要你自己设置、找方法,我相信播放器的固件里面一定是做了这个部分的限制的。
再深一点的理解,就去查查0、16、235、255这些是什么意思。我了解到的是0、16是两种不同黑色的数值,235、255是两种不同白色的数值,经过前文的了解,0(10bit、完全)、16(8bit、有限),235(8bit、有限)、255(10bit、完全)。再看最上面图1,1080P及以下->有限(16-235),4K及以上->(0-255)。不知道理解了没?所以我的madVR有了这样的设置。
设置这个部分请用1080P SDR电影找到两个场景,一个是大黑大黑的场景,一个是大亮大亮的场景,推荐黑夜传说4。
所以这又是一个方法,如果你发现了这样的问题,可以使用这样的方法给SDR电影做限制,做限制的前提是基于你电视与电脑的基本选择,是使用HDR的设置还是SDR的设置,这是不能兼得的。
它的逻辑思维我认为是这样的
[电视(设置HDR、完全)-> 系统、显卡(打开HDR、设置10bit、完全)]
这两个设置,我不可能每看一部电影就调整一遍 -> 所以进入madVR自动判断、限制环节。
1.4K、HDR电影 -> madVR自动判断 -> 使用 PC 0-255的设置
2.1080P SDR电影 -> madVR自动判断 -> 使用 自定义 0-220的设置(这个自定义0-220数值是我自己根据我电视情况试出来的,所以这个自定义数值请自己实践)
================第十二分割线===============
这一篇应该是把madVR里面两个“一致性”和一个D3D相关的选择设置分享完了,这一整篇的分享的前提是你一定要先玩好Profile,并且一定一定要看完、理解一点前文,你才有那么多的可以自定义的区分设置,才能有那么多的思路。所以Profile是想玩好madVR非常重要的一个设置。
如果确实觉得难,那么请反复理解10bit、完全、0-255、D3D,这些知识。你也可以自行查阅各种网络,自己理解,即使用不上这些方法、不理解、不会、嫌麻烦,这知识一定是有用的,而且这仅仅只是基础知识。
感谢阅读!
|