#18487·mpv

添加 --sub-sdr-peak 以独立设置 SDR 字幕亮度

作者: carycary246创建于 2026年9月15日更新于 2026年9月15日
标签meta:feature-request

被通缉者的预期行为

** 背景情况** `--sub-hdr-pak'提供了一个有用的方法,在不改变字幕名义RGB/color值的情况下控制字幕亮度. 例如:"(sub-hdr-pak=100")将白字幕文本在下扩散-白亮度下而保持名义上为白色而提供,而不是要求子色来改变RGB值.

然而,随着`副hdr-pak ' 最近的承诺,这一选择改为人类发展报告产出选择。 以目前的vo=gpu-next执行,它只有在源视频具有HDR传输功能时才被应用.

这使得在提供特别提款权视频时对特别提款权字幕没有相应的控制.

** 请求的特性** 加上-sub-sdr-pak--auto|-sdr|-10-1000>',以控制文本字幕和OSD字幕色空间为SDR时的散-白亮度.

语义可以反射出`-sub-hdr-pak':

  • 自动( 默认): 保存当前的行为 。
  • sdr:使用标准的SDR参考白色(203 cd/m2).
  • 数字值:使用cd/m2中的该值作为字幕扩散-白色级别。

例如:"sub-sdr-peak=100"会导致名义上白色字幕文本(RGB 1.0,1.0,1.0)以100 nits来提供,而不是将字幕RGB改为#b0b0b0.

这对想要降低字幕亮度同时保留字幕颜色和ASS风格的用户有用.

为什么不用"亚颜色"? 亚色'改变字幕的实际RGB值。 分色'aaaaa'不等于为白色字幕RGB分配更低的亮度。 特别是,改变RGB值会影响有色字幕,ASS风格,以及字幕颜色之间的预期关系.

`-sub-sdr-pak'将控制副标题的颜色-空间/发光解释,类似于现有的人类发展报告备选方案。

** 拟议执行** 已存在的“ libass overlay color () ” 为字幕构建了“ pl color space ” , 并使用“ color.hdr.max luma” 来指定扩散- 白色级别。 因此,这不应要求修改副标题。

现有的:

如果(src + pl color  transfer is hdr(src->params.color. transfer)) ——
p->next opts->sub hdr 峰值) 页面存档备份,存于互联网档案馆.
{
颜色.hdr = (struct pl hdr metadata){
.max luma = p- >next opts- >sub hdr pak, (中文(简体) ).
* ;
} 如果( ref  luma ) !pl color  transfer is hdr( color. transfer)) { 。
颜色.hdr.max luma = ref luma;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
`(a). `
可以是“ 如果( src + pl color  transfer is hdr( src- > params.color. transfer) ) 。
p->next opts->sub hdr 峰值) 页面存档备份,存于互联网档案馆.
{
颜色.hdr = (struct pl hdr metadata){
.max luma = p- >next opts- >sub hdr pak, (中文(简体) ).
* ;
} 如果 (!pl color  transfer is hdr (color. transfer) )\\\\x
p- > next opts- > sub  sdr  峰值)
{
颜色. hdr.max luma = p- > next opts- > sub sdr 峰值;
} 如果( ref  luma ) !pl color  transfer is hdr( color. transfer)) { 。
颜色.hdr.max luma = ref luma;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

可以变成:

如果(src + pl color  transfer is hdr(src->params.color. transfer)) ——
p->next opts->sub hdr 峰值) 页面存档备份,存于互联网档案馆.
{
. . . . . . .