自制杜比视界资源
在收集电影资源的时候,你是否遇到过这种情况:有些资源的流媒体版本拥有杜比视界 HDR ,而更高码率蓝光原盘版本则没有。但是两份资源都存下来过于耗费存储空间了,秉持着“我可能用用不着,但必须有的”原则,难道没有两全其美的方法吗?直到有一天,我在逛论坛的时候发现了一个神奇的命令行工具—— dovi_tool
对,就是它,有了它我们就可以将流媒体版本的杜比视界层提取出来,再“搬”到蓝光版本上,这样就能达到既要…又要…的目的了。废话不多说,动手最重要!
在开始之前,你需要了解这些知识:
如何区分单层与双层杜比视界【Dolby Vision】—— 知乎
还需要准备 ffmpeg
工具
简单来说,我们所做的就是利用工具将流媒体版本(单层杜比视界 或者叫杜比视界 profile 5 )资源中的 RPU 层提取出来,再将其注入到蓝光原盘资源中。所以接下来的方法仅适用于流媒体版的单层杜比视界。
另外再开始之前,我们还要检查一下两个资源的总帧数和帧率是否匹配,不然最终的视频就会出现亮度波动的情况。
首先我们需要分离出待提取资源 A 和待注入资源 B 的 h265 裸流
1 | ffmpeg -i A.mp4 -codec copy -bsf hevc_mp4toannexb -f hevc A_output.hevc |
这里同样也能提取 mkv 文件,要注意的是这里的提取必须要使用 ffmpeg
工具,不然后面用 dovi tool
可能会报错。
接下来使用 dovi 工具提取 RPU 层 ,并将其转换为向后兼容 HDR10 的杜比视界 profile 8 。
1 | dovi_tool -m 2 extract-rpu A_output.hevc |
如果是 profile 5 转换为 profile 8 ,请将参数更改为 3
;
最后把转换好的 RPU.bin
注入到 B 的 h265 裸流中就大功告成了。
1 | dovi_tool inject-rpu RPU.bin -o B_output.hevc |
如果制作成功了,在 Mediainfo 会显示这样的信息:
1 | HDR format: Dolby Vision, Version 1.0, dvhe.08.06, BL+RPU, HDR10 compatible / SMPTE ST 2086, HDR10 compatible |
是不是非常简单?本人尝试了一下使用该方法制作的资源,效果也是非常不错的,在电视上完美呈现了杜比视界动态 HDR 的优点,你也可以试一试这个 demo 来看看实际效果如何。
这个工具还有更多有趣的玩法,感兴趣的同学可以阅读 官方文档。如果对你有帮助的话,不妨给这个项目加个 star 。