写了个调整HDR视频字幕过亮过饱和问题的小程序ssaHdrify
本帖最后由 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的新文件,并不会改变原始文件
所以播放的时候要注意选择新的字幕文件
程序同时支持一点聊胜于无的命令行功能,可以手动指定亮度目标等
估计没啥人用≡ω≡、就不浪费时间写了
Nvidia shield 也是 Android TV
如果直接使用 Android 上的 MX Player / VLC / Kodi 去播 HDR 影片 + 一般 ssa/ass 字幕
會有問題嗎?
本帖最后由 孤雨独火 于 2021-4-19 03:38 编辑
tonyhsie 发表于 2021-4-19 03:23
Nvidia shield 也是 Android TV
如果直接使用 Android 上的 MX Player / VLC / Kodi 去播 HDR 影片 + 一般 ...
安卓的这几个app播hdr问题一样的,而且这几个也是用的libass{:11_837:}
不过android tv的话厂商倒是可以用像素对比度增强这类技术去针对字幕改善这方面,就看他们有没有这个意识和想法去做了
tonyhsie 发表于 2021-4-19 03:23
Nvidia shield 也是 Android TV
如果直接使用 Android 上的 MX Player / VLC / Kodi 去播 HDR 影片 + 一般 ...
神盾盒子自带的播放器没有字幕亮度功能么?
奈非的hdr视频的时候字幕就会过亮....我看神盾盒子是说目前是对流媒体来说最强的盒子.....应该有这个功能吧
我现在使用的这个芝杜盒子我印象里外挂字幕除了sup格式的都可以改亮度
本帖最后由 yyy 于 2021-4-19 10:33 编辑
小笠原翔子 发表于 2021-4-19 10:03
神盾盒子自带的播放器没有字幕亮度功能么?
奈非的hdr视频的时候字幕就会过亮....我看神盾盒子是说目前是 ...
shield作为一个主攻欧美市场的产品,内置播放器实在是乏善可陈 (其实我都忘了有没有内置播放器了。。)
因为主流用户都是直接用各家的APP,而不会播本地视频
所以最后还是上VLC之类的{:8_741:}
调字幕亮度或者透明度的确是最简单有效的方法
但是通常来说比较适合SRT。。挂ASS的时候很容易影响ASS本身效果,尤其是特效字幕
(其实我就是懒≡ω≡、、每次HDR SDR切换还要去调一次字幕,不如直接把ASS改了一劳永逸)
另外记得上次折腾的时候HDR视频硬解模式下VLC的字幕渲染也有问题。。又不能指望盒子软解。。不知道后来修复了没
还有。。VLC渲染ASS字幕的时候字体也是个大坑。字体直接打包进MKV的话能正常使用,但是自己remux mkv势必影响做种,对不起良心≡ω≡、
ASS其实支持内嵌字体功能。。之前试过自动把字体中用到的字符子集提出来打包成新字体 (否则就是一个ASS大几十M了),然后内嵌进ASS里
理想很丰满。。然鹅载在了libass上https://github.com/libass/libass/issues/266
我现在看HDR基本是连电脑了。。。。心累。。。。还好电视比较给力,直通HDR没啥太大的幺蛾子。。
不然还要去折腾MadVR的tonemap 人参太过艰难{:8_747:}
孤雨独火 发表于 2021-4-19 03:32
安卓的这几个app播hdr问题一样的,而且这几个也是用的libass
不过android tv的话厂商倒是可以 ...
因為我自己也會用 Android TV 的 MX player 來播一些 HDR 影片 + ass 字幕
好像沒有遇到類似的問題,故有此一問
最近看了天气之子的HDR版,被字幕的颜色亮瞎了≡ω≡、
之前看HDR美剧都是手动把颜色调成灰色,但是这次挂的天气之子的字幕颜色比较丰富,就写了这个小程序,然后结束了多年的VCB论坛游客潜水状态= =、其實我主要看的 HDR 片源也是美劇
倒是沒在上面看過天氣之子 HDR 版,有空再來試試會不會也一樣有字幕相關的問題
tonyhsie 发表于 2021-4-19 10:34
因為我自己也會用 Android TV 的 MX player 來播一些 HDR 影片 + ass 字幕
好像沒有遇到類似的問題,故有 ...
唔好神奇
我哪天去试试看MX player,说不定有啥玄学操作
tonyhsie 发表于 2021-4-19 10:34
因為我自己也會用 Android TV 的 MX player 來播一些 HDR 影片 + ass 字幕
好像沒有遇到類似的問題,故有 ...
天气之子非但有hdr 原盘甚至是带杜比视界的我记得{:10_781:}
yyy 发表于 2021-4-19 10:31
shield作为一个主攻欧美市场的产品,内置播放器实在是乏善可陈 (其实我都忘了有没有内置播放器了。。)
...
那神盾盒子这个对流媒体最强的盒子到底是怎么来的.....用各家app的话不应该都大同小异么.....
为了避免pc播放hdr需要的各种设置问题....我现在所有hdr视频和仅有的两部带hdr的动画(你名和天气之子)都是选择nas连盒子然后给电视播放了....
早期电脑端potplayer播放HDR也有这个问题字幕亮瞎眼,还手动调过字幕颜色,但后来好像就没这个问题了
页:
[1]
2