leonvent 发表于 2021-10-14 23:15:28

折腾一下这次UHD紫罗兰剧场版的杜比视界播放(折腾随笔)

本帖最后由 leonvent 于 2021-11-30 14:47 编辑

当然要播放杜比视界,肯定是需要支持杜比视界的显示设备/电视与播放器。

最近破财买了C1 OLED与A90J,正好可以试试

但是播放器是个问题,只是单纯播放杜比视界的BDMV,有各种各样的设备可以选择,例如越狱后的OPPO203与LX500/800,以及山寨这两个机器的播放器。

但是要配上复杂的特效字幕(为了ssnake最后作品),能用的播放器就很少了。基本上就剩支持杜比视界的安卓盒子才有可能。


以下杜比视界简称为DV



BDINFO
PLAYLIST REPORT:

Name:                   00000.MPLS
Length:               2:20:31.423 (h:m:s.ms)
Size:                   62,061,815,808 bytes
Total Bitrate:          58.89 Mbps

(*) Indicates included stream hidden by this playlist.

VIDEO:

Codec                   Bitrate             Description   
-----                   -------             -----------   
MPEG-H HEVC Video       50992 kbps          2160p / 23.976 fps / 16:9 / Main 10 @ Level 5.1 @ High / 10 bits / HDR10 / BT.2020
* MPEG-H HEVC Video   106 kbps            1080p / 23.976 fps / 16:9 / Main 10 @ Level 5.1 @ High / 10 bits / Dolby Vision / BT.2020




从文件信息来看第二个DV轨道码率很小,makekmkv上也提示紫罗兰剧场版是MEL DV

MEL与FEL的区别我之前写过一些介绍,可能不是很严谨,如果大家有补充可以指教

https://www.bilibili.com/read/cv9740085

通俗讲的双层DV是包含了BL+EL+RPU这三个部分。什么是BL+EL+RPU,我就不详细展开说DV里各类XML的组成了,这里就简单说明他们是做什么用的。

BL :基础层,一个基本的视频,一个基本的“原料”。通常是一个YUV420 10BIT HDR10视频,普通的设备播放DV视频无法激活DV,原因就是播放器只能读取到这个BL层。

RPU:杜比视界中必须要有的一个部分,通常里面包含着各类的“指导”数据,用于明确告知电视,如何转换颜色空间,HDR的动态映射(tone mAPPing)等等。用比喻的说法PRU是一个视频处理条例,明确写着BL层的视频应该如何渲染,显示。

EL:简单的理解这是一个扩展层。一个标准的杜比视界,会把YUV420 10BIT 的BL层视频,合成YUV422 12BIT 视频。这个EL层就是扩展数据,用于扩展BL的视频有效信息。 让最终成品有更多的色阶,更多的颜色。


单层杜比视界:就是 BL+RPU的组合,也称为 MEL - 迷你杜比视界层。这种杜比视界只有“指导”数据,大部分的内容是HDR的动态映射(tone mapping)的metadata。杜比公司通常用profile5或者profile8来封装进mp4/ts这些文件。

双层杜比视界:就是完整的BL+EL+RPU的组合,也称为 FEL - 完整杜比视界层。它是商业上唯一使用的12bit 视频源商品。杜比公司通常用profile7来封装进mp4/ts这些文件。
这是个MEL DV,这个就好办了。大部分安卓杜比视界硬件上最高就是支持到MEL,更高级的FEL大部分是碟机专属。


最后挑来挑去,我选择了S922XJ芯片的am6b plus,s922xj是至今为止唯二被证实可以播放FEL杜比视界的盒子芯片(另一个是今年的谷歌盒子)
当然以shield tv这种杜比官方认证盒子也是可以应付这次紫罗兰的MEL杜比视界

为了加载复杂字幕特效,无意外是需要mkv容器才可以封入字体文件与ASS字幕幕文件,那我们需要从BDMV上制作dv mkv,这个dv MKV可不是mkvtoolnix能直接制作的。

MAKEmkv这个抓碟软件,是可以直接读取BDMV转换成DV MKV,但是这个过程无法封入字幕字体文件,所以最后只能用传统的方式手工制作了。不过我觉得外挂sup字幕也是可以的,把特效转换sup作为外部字幕,不过我还没这么试过,看完后面的教程,有条件的可以试试这种方式。



接下来我用tsmuxer载入BDMV的时候发现正片在结构是分成了两个m2ts,索性我就把它们合并成一个m2ts






这时候用到了一个工具v0.0.4_GAMMA_ONLY_FOR_THE_BRAVE_EDITION,这是早期制作DV mkv一个工具
链接:https://pan.baidu.com/s/1b0DacyYnABntGQRjRHXnMA 提取码:2ot1


里面有3个bat命令行文件:
Instructions.bat操作说明 会直接访问makemkv论坛的帖子 Dolby Vision now possible through MP4 Mux.,这是民间研究DV的最全面帖子了
Open_Command_Prompt_HERE.bat操作命令行
MKV_Patcher.batMKV文件DV补丁


我们打开 Open_Command_Prompt_HERE.bat


输入命令行 回车(文件路径自己改一下)
python-3.7.6.amd64\python.exe src\app.py -mux -exp D:\视频文件路径,就是我刚刚合并的.m2ts
然后再打开Open_Command_Prompt_HERE.bat
在这个第二个窗口中输入命令行 回车

src\Gpac\gpac.exe -i pipe://video:ext=hevc:audelim=true -o stdout:ext=ts:pes_pack=none | src\FFmpeg\ffmpeg_win_x64.exe -hide_banner -y -i - -i D:\视频文件路径,就是我刚刚合并的.m2ts -i D:\字幕.ass -attach D:\FOT-TsukuAMDMinStd-E.otf -metadata:s:t mimetype=application/x-truetype-font -attach D:\FRSCRIPT.TTF -metadata:s:t mimetype=application/x-truetype-font-attach D:\FZShuSong_GB18030-Z01.TTF -metadata:s:t mimetype=application/x-truetype-font -attach D:\FZYaSong-M-GBK.ttf-metadata:s:t mimetype=application/x-truetype-font -attach D:\FZYingBiKaiShu-S15.TTF-metadata:s:t mimetype=application/x-truetype-font-attach D:\yumindb.ttf-metadata:s:t mimetype=application/x-truetype-font -map 0:0 -map 1:2 -map 2:0 -c copy -bsf:v hevc_metadata=aud=insert -metadata title="Violet Evergarden the Movie_________________________________________________________________________" D:\你的输出路径.mkv
这个过程封装了了字幕与字体文件,有没有发现"Violet Evergarden the Movie_________________________________________________________________________"这里面居然有73个下划线,不要动它。"Violet Evergarden the Movie"这个字符串里面是可以随便改的

这样我们就有两个并行的命令行窗口,等它跑完吧,SSD下一般是17分钟



最后打开MKV_Patcher.bat
把刚刚生成的mkv拖进去回车,然后输入7,回车打上补丁

就宣告完成


最后成品就是一个DV MKV,不过顺便一提这是按照dv profile 7来配置的DV mkv

视频
ID                           : 1
格式                           : HEVC
格式/信息                        : High Efficiency Video Coding
格式配置 (Profile)               : Main [email protected]@High
HDR 格式                         : Dolby Vision, Version 1.0, dvhe.07.06, BL+EL+RPU, Blu-ray compatible / SMPTE ST 2086, HDR10 compatible
编解码器 ID                        : V_MPEGH/ISO/HEVC
时长                           : 2 时 20 分
宽度                           : 3 840 像素
高度                           : 2 160 像素
画面比例                           : 16:9
帧率模式                           : 恒定帧率 (CFR)
帧率                           : 23.976 (24000/1001) FPS
色彩空间                           : YUV
色度抽样                           : 4:2:0 (Type 2)
位深                           : 10 位
Default                        : 是
Forced                         : 否
色彩范围                           : Limited
色彩原色                           : BT.2020
传输特性                           : PQ
矩阵系数                           : BT.2020 non-constant
制片显示器色彩原色                      : BT.2020
制片显示器亮度                        : min: 0.0001 cd/m2, max: 1000 cd/m2
最大内容亮度 (CLL)                   : 308 cd/m2
最大帧平均亮度 (FALL)               : 123 cd/m2


这个工具还可以支持dv profile 8,就这两种。没有特殊需求dv profile 7的DV mkv是可以的。


现在我们需要在安卓盒子使用社区编译版的 dv版kodi ,这是第三方kodi,dv功能还没有正式加入kodi 19, 也许kodi20会增加这个功能,现在我们就用这个版本吧
https://github.com/fandangos/Kodi-HDR-Edition/tree/updated-dv2


这个版本kodi有个好处,就算用只能支持mel dv的安卓盒子(shield tv)播放FEL DV mkv,它是会自动略过el部分(应该吧)。如果你想要把一个FEL DV转换成 mel dv,可以参考一下这个工具的说明,只是一个关键字的事情

这个版本kodi也有个不好的地方,am6b plus是一个可以支持FEL DV mkv播放的设备,但是用这个kodi播放fel dv mkv,快进快退会让视频播放卡顿,有时需要暂定后退,才会恢复,卡死的概率也挺大,虽然是正确处理了EL部分,但很讨厌。播放mel都没问题

kodi怎么用就不提了,直接用kodi播放dv mkv就行,里面字幕与字体封装好了,kodi对字幕特效支持挺不错的。
有些盒子要开启杜比视界功能需要在系统设置上开启dolby vision。
例如am6b plus的选项是dolby vision enable,shield tv就是dolby vision就绪


最后ssnake特意制作的hdr字幕显示效果嘛,对比sdr上观看普通字幕还是有明显差别的,更灰了。有条件的大家都可以来试试
@ssnake





leonvent 发表于 2021-10-14 23:21:12

本帖最后由 leonvent 于 2021-10-23 21:18 编辑

2021.10.23 hdr字幕

屏摄有些曝光,仅供参考,肉眼观看会比sdr版更灰色些,但已经很接近了




UHD DV





Violet Evergarden the Movie 屏摄




Violet Evergarden the Movie 屏摄



不是很严谨的屏摄,但还是能看出字幕颜色正常了,在亮度表现上原盘与压制版DV表现一致(UHD的组在白天拍摄,照片会有些曝光),但压制版在草原上是会有明显blur的效果,色块是没发现,大概率是压制上的问题吧

hdr 转 sdr版本 可以看出这个tone mapping处理,暗部场景整体较为blooming
















keloy 发表于 2021-10-14 23:52:17

请问大佬这种单层dv可以用ios的nplayer直接播放吗?会不会出现颜色错误

joker2000 发表于 2021-10-14 23:55:13

{:4_675:} 紫罗兰剧场版是 profile7 双层,你都看到两个视频轨了还单层呢。。。

leonvent 发表于 2021-10-14 23:56:49

keloy 发表于 2021-10-14 23:52
请问大佬这种单层dv可以用ios的nplayer直接播放吗?会不会出现颜色错误

没试过,这种DV MKV肯定是不行。要在苹果生态上播放杜比视界,需要按照profile 5 制作mel mp4这种格式,而且我也只有在tvos上试过,但ios我从来没尝试过。

leonvent 发表于 2021-10-14 23:58:11

joker2000 发表于 2021-10-14 23:55
紫罗兰剧场版是 profile7 双层,你都看到两个视频轨了还单层呢。。。 ...

不是按照视频轨道数量来区别的,文章开头有解释。

keloy 发表于 2021-10-15 00:07:00

leonvent 发表于 2021-10-14 23:56
没试过,这种DV MKV肯定是不行。要在苹果生态上播放杜比视界,需要按照profile 5 制作mel mp4这种格式, ...

那这样的话压制组会怎么处理,毕竟绝大多数人都是在电脑或手机上看的,如果用mkvtoolnik去除dv层只保留hdr10部分会不会影响原本的色彩

joker2000 发表于 2021-10-15 00:09:02

leonvent 发表于 2021-10-14 23:58
不是按照视频轨道数量来区别的,文章开头有解释。

你拆开来看看到底profile几。

leonvent 发表于 2021-10-15 00:11:33

joker2000 发表于 2021-10-15 00:09
你拆开来看看到底profile几。
BDMV上是profile7 配置的m2ts


而mel dv是可以使用profile 7封装

就像这次UHD紫罗兰剧场版就是这种类型用profile 7封装mel dv

如果你认为我还是错的,没有问题,你永远是对的。
                        

keloy 发表于 2021-10-15 00:14:20

leonvent 发表于 2021-10-14 23:58
不是按照视频轨道数量来区别的,文章开头有解释。

我记得lolihouse以前压制旭日时重制过hdr信息,以下是原话:
我们还是选择了编码为更平民化一些的 HEVC yuv420p10,HDR metadata 也参考网飞官方的 HDR Web-DL 填入了静态 tone mapping 信息,忽略了网飞提供的 Dolby Vision 动态 metadata。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 折腾一下这次UHD紫罗兰剧场版的杜比视界播放(折腾随笔)