TA的每日心情 | 无聊 2021-4-26 00:25 |
---|
签到天数: 2 天 [LV.1]初来乍到
中级会员
- 积分
- 5463
|
本帖最后由 yyy 于 2021-4-18 18:49 编辑
序
最近看了天气之子的HDR版,被字幕的颜色亮瞎了≡ω≡、
之前看HDR美剧都是手动把颜色调成灰色,但是这次挂的天气之子的字幕颜色比较丰富,就写了这个小程序,然后结束了多年的VCB论坛游客潜水状态= =、
因为用了pyinstaller的缘故,执行文件的尺寸是无论如何压不下来了,没法放进帖子附件,所以直接丢个github的链接
有打包windows, osx, 和linux的版本,不过我自己只测试过windows的。。另外两只能不能用我也不太确定。。。
https://github.com/yyymeow/ssaHdrify/releases
因为第一版,估计是问题多多。。我手上测试过的字幕也没几个。。
欢迎试用+提意见
使用场景
HDR的观影方法繁多。。不一定所有情况都会出现这个问题
在一部分情况下,字幕在渲染时会默认输出为普通的sRGB空间,后与HDR的视频帧进行不带色彩管理的数值叠加
如果直接使用原本为SDR视频制作的字幕,在这种情况下会出现字幕颜色过亮与过饱和,严重影响观影体验
我自己的使用情况是Nvidia shield + VLC和mpchc+madvr,走hdr passthrough接入NV HDR这两种情况
最终设备都是个OLED的HDR电视
HDR显示器和windows自带的HDR模式完全没了解过,也基本没使用过madvr的tonemap,不太确定会发生啥
这一问题最根本的解决方法是修改ASS标准,加入HDR有关元数据,然后坐等各大播放器更新。。不过madvr的mdashi大佬试过一次,无果
(mdashi的那串在https://github.com/libass/libass/issues/297 大佬们都好凶啊。。瑟瑟发抖)
退而求其次,就是手工调整字幕文件里的颜色,降低饱和度和亮度,然后挂在HDR视频上
这个脚本的主要目的就是自动化这一步骤
实际流程上我尽量保证了颜色的准确性,主要是通过sRGB到BT2020的映射来调整颜色,并且用假设的1000nit显示器亮度与100nit的sRGB亮度来调整亮度
进行这个操作的主要原因是,哪怕是在HDR视频里,绝大多数像素依然是sRGB色域和相对来说低亮度的,所以字幕也限制在这个范围内就好了,并不用去强行使用超出sRGB的颜色
但是由于HDR整个管线的不确定性(比如如果播放器做了tonemap,则HDMI内的HDR元数据不一定吻合视频本身的HDR格式,而字幕如果是在tonemap后blend的话其最终效果取决于HDMI设置),以及HDR和SDR视频本身的色差,最终效果也只能算是差强人意
所有需要颜色准确性的情况(比如视频内标牌的翻译想做颜色吻合)都不会得到任何改善
唯一的进步就是处理后的字幕的饱和度和亮度不会太过夸张了。。
使用方法
打开程序会弹出对话框询问字幕文件位置
选择字幕文件(可多选)
选择字幕文件后程序会将修改后的字幕写入一个扩展名为.hdr.ass的新文件,并不会改变原始文件
所以播放的时候要注意选择新的字幕文件
程序同时支持一点聊胜于无的命令行功能,可以手动指定亮度目标等
估计没啥人用≡ω≡、就不浪费时间写了
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|