欢迎光临散文网 会员登陆 & 注册

【Windows】如何将SDR视频转换为HDR并封装为DolbyVision 8.4

2023-07-29 15:53 作者:刻刻帝零番  | 我要投稿

在此简要记录一下工作流程,由于本人并非相关行业从业者(可以说是毫无关系),无法对其原理和问题进行解释。

首先必须鸣谢B站用户@nilaoda、@翼格小和奏和@izwb003以及,参考文章https://www.cnblogs.com/izwb003/p/use_dee_encode_dv8_4.html,及https://github.com/Map987/use_dee_encode_dv8_4/blob/main/README.md

还有杜比官方的教程https://professionalsupport.dolby.com/s/article/Quick-Start-Guide-Dolby-Vision-DaVinci-Resolve-Studio?language=zh_CN

我也短暂尝试过其他方法,但至今没有突破,把目前可用的方法记录下来,期望能和大家一同解决。

(目前发现可能的直接转换的软件Tekno3D HDR-X https://tekno3d.com/, 需要80刀一月,似乎能和Compressor一样调用硬件加速)

第一章    准备工具

达芬奇18 Studio版(或更新版本)

官方地址https://www.blackmagicdesign.com/products/davinciresolve/whatsnew,学习版可以自行搜索。

 杜比视界编码引擎(Dolby Encoding Engine)

官方地址https://customer.dolby.com/content-creation-and-delivery/dolby-encoding-engine-with-dolby-ac-4-v521 ,学习版可自行搜索

 杜比视界专业验证工具(Dolby Vision Professional Verification Toolkit - Lite)

官方地址https://customer.dolby.com/content-creation-and-delivery/dolby-vision-professional-verification-toolkit-lite-v430 ,学习版可自行搜索。

FFmpeg

官方地址 https://www.ffmpeg.org/

dovi_tool

官方地址 https://github.com/quietvoid/dovi_tool/releases

mp4muxer

官方地址 https://github.com/DolbyLaboratories/dlb_mp4base/tree/master/bin

mp4box

官方地址 https://gpac.wp.imt.fr/downloads/ (文章建议使用22年1月前的版本,大概是因为新版修改了命令)

Mediainfo 

官方地址 https://mediaarea.net/zh-CN/MediaInfo

16G以上内存

此时你应该拥有以下文件:

dee_dv_mdgen.exe

dee_dv8_preproc.exe(dee_dv5_preproc.exe亦可)

dovi_tool.exe

dvesverifier.exe

ffmpeg.exe

license.lic

mp4box.exe

mp4demuxer.exe

mp4muxer.exe

mediainfo.exe

将它们打包为一个文件夹,命名为Tools。

第二章    用达芬奇软件将SDR转换为HDR


安装达芬奇软件,不建议安装在C盘。

1.工程设置

创建一个新工程

项目设置

到工程设置– 项目设置(Master Settings)

将时间线分辨率设置为 3840x2160 Ultra HD 或者更高的分辨率

选择使用 4:4:4 SDI

当使用双路输出设置时,HDR与映射后的SDR同时输出,一般单路即可。

选择使用 dual outputs on SDI(SDI双路输出)

根据你的连线选择SDI设置

将数据级别设置为Full

将视频比特深度设置为10bit

2.色彩管理

切换到色彩管理

选择需要使用的色彩科学(此处较为灵活,可按照下图通常的设置)

3.杜比视界版本及母版监视器设置

选择激活杜比视界选择框

建议使用4.0版本

根据你所连接HDR参考监视器来设置母版监视器选项(没有也可以设置)

例如,将母版监视器选项设置为ST 2084 PQ / P3 D65 / 1000 nits

点击保存。


4.杜比视界元数据分析选项

在调色菜单栏,点击杜比视界页面,可以选择多个选项来分析杜比视界元数据

全部:分析时间线上的所有镜头

所选:分析所选择的镜头 

混合: 分析多个选中镜头,在分析时,平均分析结果

帧: 分析所选中镜头的当前一帧,然后用这一帧的分析结果来表征整个镜头,这个分析选项对于分析有多种光照场景的镜头非常有用。


调色完成后,转到交付界面,设置如图所示:

如果你的电脑支持杜比视界编码,在高级设置-杜比视界配置文件那里会出现配置文件选项:

此时添加到渲染队列就完成了,出来的就是杜比视界8.4配置的影片。

如果没有出现这些选项,可以联系杜比购买杜比视界Trim License(全名The Dolby Vision Mastering and Playback Annual License,购买地址https://visionlicensestores.dolby.com/SSO/SignIn/PRD_INTL)

也许不如买一台支持编码的电脑便宜。

如果你不想放弃的话,可以先导出渲染视频,虽然它此时还只是一个HDR文件。

第三章 将HDR输出为Dolby Vision 8.4

将刚才导出的视频文件重命名为footage.mp4,把它和Tools文件夹放在同一目录下,为方便管理,建议一起放进一个新文件夹下,采用英文命名。以管理员权限在该目录运行cmd。可参考https://blog.csdn.net/weixin_43702620/article/details/105776215,然后在目录的地址栏上输入cmd即可打开。

1. 预压制

1.1如有N卡,请用N卡加速,

输入命令:

Tools\ffmpeg -hwaccel_output_format cuda -c:v hevc_cuvid -i footage.mp4 -c:v hevc_nvenc -fps_mode cfr -x265-params colorprim=bt2020:colormatrix=bt2020nc:transfer=arib-std-b67:annexb=1:aud=1:hash=1:repeat-headers=1:sar=1:level-idc=0:no-info=1 -bsf:v filter_units=remove_types=39 -b:v 35M -y _hlg.hevc

(_hlg.hevc 即为输出的视频文件,后缀h265亦可)

没有请用intel核心显卡加速:

Tools\ffmpeg -hwaccel_output_format qsv -c:v hevc_qsv -i footage.mp4 -c:v hevc_qsv -fps_mode cfr -x265-params colorprim=bt2020:colormatrix=bt2020nc:transfer=arib-std-b67:annexb=1:aud=1:hash=1:repeat-headers=1:sar=1:level-idc=0:no-info=1 -bsf:v filter_units=remove_types=39 -b:v 35M -y _hlg.hevc

A卡的命令可以自行查找,输入Tools\ffmpeg -codecs 查看支持的编解码信息。

若不能使用硬件加速,请输入以下命令:

Tools\ffmpeg -i footage.mp4 -fps_mode cfr -c:v libx265 -x265-params colorprim=bt2020:colormatrix=bt2020nc:transfer=arib-std-b67:annexb=1:aud=1:hash=1:repeat-headers=1:sar=1:level-idc=0:no-info=1 -bsf:v filter_units=remove_types=39 -b:v 35M -y _hlg.hevc

1.2之后在cmd里输入

set db_height=“分辨率AxB的A值(如3840)”

set db_width=“分辨率AxB的B值(如2160)”

set db_framerate=“FPS值“(如60)”

set db_frame_count=“总帧数(如10000)”

(可以在ffmpeg 输出的信息encoded xxx frames获得总帧数,其他在Stream那一行)

2. 创建杜比视界metadata xml文件

2.1从命名管道ffmpeg_233读取数据(管道名称是任意的),在cmd窗口输入:

Tools\dee_dv_mdgen --input-format raw:pix_fmt=yuv420p16le:chroma=rec2020:width=%db_height%:height=%db_width%:framerate=%db_framerate%:eotf=hlg:streaming=1:frame_count=%db_frame_count% --mastering-display preset=bt2020_1000 --output-metadata metadata.xml --progress 1 --overwrite 1 --input named_pipe://\\.\pipe\ffmpeg_233

2.2再开一个cmd窗口,输入命令:

Tools\ffmpeg -i _hlg.hevc -pix_fmt yuv420p16le -f rawvideo -y \\.\pipe\ffmpeg_233

完成后我们会得到一个metadata.xml文件

3. 生成杜比视界RPU文件并嵌入视频

3.1在第一个cmd窗口输入:

Tools\dee_dv8_preproc --input-format raw:pix_fmt=gbrp16le:width=%db_height%:height=%db_width%:framerate=%db_framerate%:streaming=1:frame_count=%db_frame_count% --input named_pipe://\\.\pipe\ffmpeg_233 --input-metadata metadata.xml --output-rpu _output.rpu --output NULL --progress 1 --overwrite 1 --L11 4,0,00

在第二个cmd窗口输入:

Tools\ffmpeg -i _hlg.hevc -pix_fmt gbrp16le -f rawvideo -y \\.\pipe\ffmpeg_233

(这个过程貌似无法加速,分析一分钟大约要一个小时)

完成后得到一个_output.rpu文件。

 3.2使用dovi_tool嵌入rpu到视频:

Tools\dovi_tool.exe inject-rpu -i _hlg.hevc --rpu-in _output.rpu -o injected_output.hevc

4.转换至Profile 8.4并校验

4.1

Tools\dovi_tool -m 4 convert injected_output.hevc --discard -o injected_converted.hevc

4.2

Tools\dvesverifier.exe -i injected_converted.hevc --dv-profile 8.4 --progress --stop-on-error

(若出现error则说明视频不符合Dolby Vision8.4的规格,需要返回重新调整,利用mediainfo查看是否是HLG的HDR视频文件。)

5.进行封装

5.1使用杜比官方工具进行封装:

Tools\mp4muxer -i injected_converted.hevc -o _output_dolby.mp4 --dv-profile 8 --dv-bl-compatible-id 4 --hvc1flag 0 --mpeg4-comp-brand mp42,iso6,isom,msdh,dby1 –overwrite

 5.2使用mp4box将原始音轨封装进去:

Tools\mp4box -add _output_dolby.mp4#1:name= -add footage.mp4#2:name= -brand mp42isom -ab iso6 -ab msdh -ab dby1 -itags tool= -new _output_dolby_new.mp4

用mediainfo查看导出的文件信息,如图:

注意HDR格式后面必须出现HLG compatible字样,此时可以用于B站投稿。

 (若想收藏,可封装为MKV Tools\mp4box -add _output_dolby.mp4#1:name= -add footage.flac#1:name= -brand mp42isom -ab iso6 -ab msdh -ab dby1 -itags tool= -new _output_dolby_new.mkv)(增加多个音轨,连续 -add 即可)

5.1.1

若有单独提取出来的音轨且是mp4muxer支持的格式(AC3、EC3等,如dolby.ec3),也可以直接在mp4muxer封装

Tools\mp4muxer.exe --dv-profile 8 --dv-bl-compatible-id 4 --input-file injected_converted.hevc --input-file dolby.ec3 --output-file output_dolby.mp4

附注:

若已经封装为MKV,可用以下命令转为MP4,信息不变:

Tools\ffmpeg -y -i _output_dolby.mkv -strict experimental -loglevel error -stats -map 0:v? -map 0:a? -dn -map_chapters -1 -movflags +faststart -c:v copy -c:a copy -strict -2 _Output_File.mp4

若想提取封装好的轨道,可用以下命令:

Tools\mp4demuxer --input _output_dolby.mp4 --output _output.hevc





 

 














【Windows】如何将SDR视频转换为HDR并封装为DolbyVision 8.4的评论 (共 条)

分享到微博请遵守国家法律