我 lav+madvr 显示输入 hvc1, hdr 正常
https://img.nga.178.com/attachments/mon_202406/22/9aQk8m-426wZhT3cSsg-ao.jpg
lav+d3d11 硬解显示输入: nv12(12 位) 输出也是 nv12(12 位) , 这是成 8bit 了??
https://img.nga.178.com/attachments/mon_202406/22/9aQk8m-kuiaZhT3cSsg-bq.jpg
用 potplayer 默认的解码器显示输入 hvc1, 输出也正常
那第二种 lav 为什么 10bit 先弄成 8bit 呢, lav 设置参数里边输出格式都打勾了???
我看 lav 主要作用是显示器不支持 hdr 的时候可以 10bit 转成 8bit,然后再给默认渲染器处理效果好一些; 但是如果显示器支持 hdr, 我用默认解码器(我看是 d3d11) , 然后渲染器也选 d3d11 passthrough hdr to display, 这样是不是 lav 用不用都一样了???
https://img.nga.178.com/attachments/mon_202406/22/9aQk8m-5b0ZlT3cSsg-c4.jpg
这个图是显卡 8bit 的时候截的, 12bit hdr 的时候 p010-rgb10a2->b12r12g12a(display) 我显卡为什么只有 12bit 和 8bit, 不应该 10bit 吗?最后一步转成 12bit 会有损耗吗?
1
cpstar 152 天前
这个 12bit ,这三个截图,也妹有任何显性的数据标识啊。不会是把 nv12 的 12 当作 12bit 了吧?
然后排除 LAV 的情况(我没有用过),用 PotPlayer ,配置 D3D11+H/W ,HDR 上播放 HDR 一切正常,但 SDR 上播放 HDR 一片糊,关掉 H/W ,PotPlayer 则会把 bt2048 映射到 sdr 上,HDR 视频播放就正常了。 |
2
test1199 OP @cpstar nv12 是 8bit 啊, 我说的 12bit 是电视上放的时候显卡设置为 12bit, 不好截图, 所以后来远程登陆, 用 8bit 显卡截的图;我的疑问是 lav 为什么自己把 10bit 的 hdr 降到 8bit 了, 第二个图...
这是显卡设置图: https://img.nga.178.com/attachments/mon_202406/22/9aQk8m-fflvZcT3cSy8-wz.jpg |
3
jim9606 151 天前
我理解 LAV 只管解码不管渲染的,输出 NV12/P010/DXVA ( DXVA/D3D11VA 输出,可能 8/10bit ),你说的 HDR 转 SDR 还有 10 转 8 一般是 Renderer 负责的(MPC/madVR/Build-in D3D11VR),除非 Renderer 不支持 10bit 输入才会由 LAV 做 10 转 8 。
我怀疑是 MPCVR 设置有错,默认应该是 Texture=Auto 8/10bit Integer 的,更新下 MPCVR 或者强制 10bit/16bit float? 另外貌似输出 HDR 的前提是开启系统 HDR ,目前 MPCVR 可以自动开启,可能要全屏。 LAV 具体输出了啥可以看 LAV 自己的托盘图标。 |