【Windows】如何將SDR視頻轉換為HDR并封裝為DolbyVision 8.4
在此簡要記錄一下工作流程,由于本人并非相關行業(yè)從業(yè)者(可以說是毫無關系),無法對其原理和問題進行解釋。
首先必須鳴謝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
我也短暫嘗試過其他方法,但至今沒有突破,把目前可用的方法記錄下來,期望能和大家一同解決。
(目前發(fā)現(xiàn)可能的直接轉換的軟件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 ,學習版可自行搜索
?杜比視界專業(yè)驗證工具(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.工程設置
創(chuàng)建一個新工程
項目設置
到工程設置– 項目設置(Master Settings)
將時間線分辨率設置為 3840x2160 Ultra HD 或者更高的分辨率
選擇使用 4:4:4 SDI
當使用雙路輸出設置時,HDR與映射后的SDR同時輸出,一般單路即可。
選擇使用 dual outputs on SDI(SDI雙路輸出)
根據(jù)你的連線選擇SDI設置
將數(shù)據(jù)級別設置為Full
將視頻比特深度設置為10bit


2.色彩管理
切換到色彩管理
選擇需要使用的色彩科學(此處較為靈活,可按照下圖通常的設置)
3.杜比視界版本及母版監(jiān)視器設置
選擇激活杜比視界選擇框
建議使用4.0版本
根據(jù)你所連接HDR參考監(jiān)視器來設置母版監(jiān)視器選項(沒有也可以設置)
例如,將母版監(jiān)視器選項設置為ST 2084 PQ / P3 D65 / 1000 nits
點擊保存。

4.杜比視界元數(shù)據(jù)分析選項
在調色菜單欄,點擊杜比視界頁面,可以選擇多個選項來分析杜比視界元數(shù)據(jù)
全部:分析時間線上的所有鏡頭
所選:分析所選擇的鏡頭?
混合: 分析多個選中鏡頭,在分析時,平均分析結果
幀: 分析所選中鏡頭的當前一幀,然后用這一幀的分析結果來表征整個鏡頭,這個分析選項對于分析有多種光照場景的鏡頭非常有用。

調色完成后,轉到交付界面,設置如圖所示:

如果你的電腦支持杜比視界編碼,在高級設置-杜比視界配置文件那里會出現(xiàn)配置文件選項:

此時添加到渲染隊列就完成了,出來的就是杜比視界8.4配置的影片。
如果沒有出現(xiàn)這些選項,可以聯(lián)系杜比購買杜比視界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??蓞⒖糷ttps://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=“總幀數(shù)(如10000)”
(可以在ffmpeg 輸出的信息encoded xxx frames獲得總幀數(shù),其他在Stream那一行)
2.?創(chuàng)建杜比視界metadata xml文件
2.1從命名管道ffmpeg_233讀取數(shù)據(jù)(管道名稱是任意的),在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
(若出現(xiàn)error則說明視頻不符合Dolby Vision8.4的規(guī)格,需要返回重新調整,利用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格式后面必須出現(xiàn)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)(增加多個音軌,連續(xù) -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
?
?