cczzhh
发表于 2018-12-7 02:45:34
neil78 发表于 2018-12-7 01:36
大,vulkan 模式是否在旧的显卡、系统(例如win7)表现不是很好啊
vulkan效率很不错,和d3d11基本一致,我就是在win7上用的。确保你设置了用独显运行mpv,并且电源自适应。
旧显卡,取决于多旧了。N卡至少要GTX600系列才支持vulkan。见https://developer.nvidia.com/vulkan-driver
EdveR
发表于 2018-12-7 21:00:43
本帖最后由 EdveR 于 2018-12-7 21:09 编辑
cczzhh 发表于 2018-12-7 02:42
他用的是硬解,完全不是一个问题。
你用的是什么CPU?madVR Ctrl+j看dropped frames计数确实不增长?
啊。。对不起,我搞错了。之前是用另一台机器硬解不掉帧的,我记成这台不掉帧了orz 刚刚装回MPC-BE和madVR试了一下还是掉帧的。CPU是E3V3,我看任务管理器CPU利用率就没超过60%,不像是播放高清病毒时100%占用性能不足而掉帧,所以比较奇怪。难道是因为主频太低了?所以还是性能不够吗T_T 然后又发现了一个问题:mpv播放HDR片源时亮度会明显降低,比MPC-BE暗。不管是默认设置还是LZ的配置。
cczzhh
发表于 2018-12-8 04:17:04
本帖最后由 cczzhh 于 2018-12-8 04:18 编辑
EdveR 发表于 2018-12-7 21:00
啊。。对不起,我搞错了。之前是用另一台机器硬解不掉帧的,我记成这台不掉帧了orz 刚刚装回MPC-BE和madVR ...
就是性能不够。4K HDR 60fps本身就不是设计给软解用的,HEVC计算量比H264大很多的。真想看还是入个新卡搞硬解。
如果你是SDR屏幕的话,就是两者HDR->SDR map的算法不一样。首先你应该尝试开hdr-compute-peak(不过这个已经默认开了)。
然后可以改target-peak(https://mpv.io/manual/master/#options-target-peak),默认是100 nits,根据你的显示屏的实际亮度改吧。
真想微调的话还可以改算法:https://mpv.io/manual/master/#options-tone-mapping,这个的默认算法官方都改了几轮了。。现在的默认hable就是会变暗的,因为追求细节保留,要把高亮度拉回SDR。如果更关心SDR范围内颜色的准确度的话,可以试试之前的默认mobius,乃至暴力clip。HDR->SDR转换并没有对错一说,软件和软件,设置和设置之间不一样,太正常了。
EdveR
发表于 2018-12-9 01:54:55
cczzhh 发表于 2018-12-8 04:17
就是性能不够。4K HDR 60fps本身就不是设计给软解用的,HEVC计算量比H264大很多的。真想看还是入个新卡搞 ...
明白了,谢谢。
EdveR
发表于 2018-12-9 21:42:27
不好意思,又有问题了。当文件名(路径)太长时,MPC-BE无法播放,显示“没有找到文件”,但是mpv就能正常播放,这是为什么?
cczzhh
发表于 2018-12-10 05:10:39
EdveR 发表于 2018-12-9 21:42
不好意思,又有问题了。当文件名(路径)太长时,MPC-BE无法播放,显示“没有找到文件”,但是mpv就能正常 ...
(那就不要这么长呀。。)windows自己的限制,也并不是所有软件都吃这个限制(看调的API,缓冲区长度),纠结为什么mpv能放真的很没有意义。。
EdveR
发表于 2018-12-10 21:15:33
cczzhh 发表于 2018-12-10 05:10
(那就不要这么长呀。。)windows自己的限制,也并不是所有软件都吃这个限制(看调的API,缓冲区长度), ...
好吧╮(╯-╰)╭ 因为之前改过什么组策略,当时觉得没什么用,结果现在mpv能放让我大吃一惊。。
wax
发表于 2018-12-11 02:57:07
EdveR 发表于 2018-12-6 20:51
我都试过了,还是一样掉帧。vulkan也试过,LZ的配置也试过,和4K HDR有关的项都改过,还是没有用。MPC-BE+ ...
可以先试下"--hdr-compute-peak=no",不行的话再试下"--gpu-dumb-mode=yes"
cczzhh
发表于 2018-12-11 07:33:50
本帖最后由 cczzhh 于 2018-12-11 08:30 编辑
wax 发表于 2018-12-11 02:57
可以先试下"--hdr-compute-peak=no",不行的话再试下"--gpu-dumb-mode=yes"
这只是在渲染步骤试图降低计算量,然而实际是解码性能不够。即使"vo=null"只解码不渲染输出都会掉帧。测试很简单,命令行启动mpv:
mpv --no-config --video-sync=display-resample --vo=null '.\Samsung Travel With My Pet HDR UHD 4K Demo.ts'我这边会显示如下信息:
(+) Video --vid=1 (hevc 3840x2160 59.940fps)
(+) Audio --aid=1 (aac)
AO: 96000Hz stereo 2ch float
VO: 3840x2160 yuv420p10
AV: 00:00:13 / 00:02:34 (9%) A-V:0.497 Dropped: 473
Audio/Video desynchronisation detected! Possible reasons include too slow
hardware, temporary CPU spikes, broken drivers, and broken files. Audio
position will not match to the video (see A-V status field).
想能播放4K 60fps HDR,要么用超强的CPU软解,要么用硬解,不解决解码瓶颈渲染再低的设置也不行。
刚试了下
--vd-lavc-threads=32对我而言有用,4790K掉帧数明显减少了,同样"vo=null",同样13秒才掉了2帧,实际去掉"--vo=null"用默认设置播放也基本不掉帧。但根据TA之前的回复说是没效果?@EdveR 能再测试下不?确保其他都是默认设置,如果开启较高的scaling和deband,渲染也是有可能成为第二个瓶颈的。(如果我单纯只是在我已有的配置文件里加上vd-lavc-threads=16,照掉帧不误,一定得命令行--no-config取消掉profile=gpu-hq和较贵的scaling算法)
EDIT:mpv貌似不推荐超过16个线程。我测下来确实16个线程也够用了。总之比默认自动识别出9线程(8逻辑核+1)强多了。
已修改原文,推荐在软解压力大的视频上使用高线程数。
EdveR
发表于 2018-12-11 21:57:55
本帖最后由 EdveR 于 2018-12-12 00:17 编辑
cczzhh 发表于 2018-12-11 07:33
这只是在渲染步骤试图降低计算量,然而实际是解码性能不够。即使"vo=null"只解码不渲染输出都会掉帧。测试 ...
我用E3V3(4C8T)设--vd-lavc-threads=64时(大概)表现最好,使用默认设置CPU明显没有跑满,之前改16线程也没有。32可以跑满,掉帧减少。64虽然也是CPU满载,但是掉帧进一步减少,且比较稳定。再往上128、256我也试了下,基本没有改善了(甚至还会变糟),说明是CPU的极限了。而且数字越大占用内存越多、启动越慢,感觉和madVR的CPU queue size差不多,不是播放时用的解码线程,而是占用CPU和RAM的大小。