Dolby Vision处理工具dovi_tool完整使用指南
【免费下载链接】dovi_tooldovi_tool is a CLI tool combining multiple utilities for working with Dolby Vision.项目地址: https://gitcode.com/gh_mirrors/do/dovi_tool
dovi_tool是一个功能强大的命令行工具,专门用于处理Dolby Vision内容。该工具集成了多种实用功能,为视频工程师和开发者提供了完整的Dolby Vision解析、转换和编辑能力。
项目概述
dovi_tool基于Rust语言开发,不仅提供了CLI工具,还包含了dolby_vision库,可作为Rust或C语言库使用。C兼容库也被称为libdovi,为跨平台开发提供了便利。
环境配置与安装
系统要求
- Rust 1.85.0或更高版本
- Linux系统需要安装fontconfig依赖
- 或者通过
--no-default-features --features internal-font构建选项绕过系统字体
构建步骤
- 克隆项目代码:
git clone https://gitcode.com/gh_mirrors/do/dovi_tool- 进入项目目录并构建:
cd dovi_tool cargo build --release构建完成后,可执行文件将位于target/release/dovi_tool。
核心功能详解
元数据工具集
dovi_tool提供了一系列强大的元数据处理工具:
info命令用于解析和显示RPU信息,支持摘要模式和特定帧的详细数据输出。使用--summary或-s参数可以获取概要信息。
示例获取第124帧的元数据:
dovi_tool info -i RPU.bin -f 123generate命令允许从不同源生成二进制RPU文件:
- 从Dolby Vision XML元数据文件生成
- 从配置JSON文件生成
- 从HDR10+元数据JSON文件生成
- 从madVR HDR测量文件生成
示例从XML文件生成RPU:
dovi_tool generate --xml dolbyvision_metadata.xml -o RPU_from_xml.bineditor命令通过JSON配置文件编辑二进制RPU文件。所有索引从0开始,且包含在内。
示例编辑RPU:
dovi_tool editor -i RPU.bin -j assets/editor_examples/mode.json -o RPU_mode2.binexport命令将二进制RPU文件导出为包含相关信息的文本文件。
示例导出完整RPU列表到JSON:
dovi_tool export -i RPU.bin -d all=RPU_export.jsonplot命令将RPU元数据绘制成图表,输出为PNG图像。
示例绘制L1图表:
dovi_tool plot RPU.bin -t "Dolby Vision L1 plot" -o L1_plot.pngHEVC解析与处理
dovi_tool支持多种HEVC源文件处理命令:
convert命令在单层HEVC文件中转换RPU。使用--discard参数可以丢弃增强层。
示例转换为profile 8.1并丢弃EL:
dovi_tool -m 2 convert --discard file.hevcdemux命令将单轨双层Dolby Vision分离为基础层和增强层文件。
示例分离文件:
dovi_tool demux file.hevcmux命令将增强层交织到基础层HEVC比特流中,是demux的逆操作。
示例合并BL和EL:
dovi_tool mux --bl BL.hevc --el EL.hevcextract-rpu命令从HEVC文件中提取Dolby Vision RPU。支持profile 4、5、7和8。
示例提取RPU:
dovi_tool extract-rpu video.hevcinject-rpu命令将RPU NAL单元交织到HEVC编码比特流中的切片之间。
remove命令从视频中移除增强层和RPU数据。
转换模式详解
dovi_tool提供了多种RPU处理模式:
- 模式0:解析RPU,原样重写
- 模式1:将RPU转换为MEL兼容
- 模式2:将RPU转换为profile 8.1兼容
- 模式3:将profile 5转换为8.1
- 模式4:转换为profile 8.4
- 模式5:转换为profile 8.1,保留映射
实用场景示例
专业视频处理流程
批量处理Dolby Vision文件
for file in *.hevc; do dovi_tool extract-rpu "$file" -o "${file%.hevc}_RPU.bin" done与FFmpeg集成处理
ffmpeg -i input.mkv -c:v copy -bsf:v hevc_mp4toannexb -f hevc - | dovi_tool -m 2 convert --discard -元数据分析与可视化
生成元数据报告
dovi_tool info -i RPU.bin --summary > metadata_report.txt dovi_tool plot RPU.bin -p l1 -o metadata_plot.png格式转换与兼容性处理
将FEL转换为MEL
dovi_tool -m 1 extract-rpu video.hevc高级配置选项
dovi_tool支持多种配置选项来满足不同的处理需求:
裁剪选项使用-c或--crop参数将活动区域偏移设置为0(表示无黑边条)。
HDR10+处理使用--drop-hdr10plus参数在写入输出HEVC时忽略HDR10+元数据。
起始码设置通过--start-code参数设置HEVC NALU起始码:
four:默认值,始终写入4字节起始码annex-b:根据规范变化起始码
开发集成
对于需要深度集成的开发者,dovi_tool提供了完整的API接口:
Rust库集成直接使用dolby_vision库进行开发。
C语言支持通过libdovi实现跨语言调用。
最佳实践建议
- 测试先行:在处理关键数据前,先对命令进行测试验证
- 备份数据:重要操作前确保有数据备份
- 参数验证:仔细检查命令参数,确保符合预期
- 版本兼容:注意不同版本间的功能差异
通过掌握dovi_tool的各项功能,视频工程师和开发者能够高效处理Dolby Vision内容,确保视频质量和工作效率。
【免费下载链接】dovi_tooldovi_tool is a CLI tool combining multiple utilities for working with Dolby Vision.项目地址: https://gitcode.com/gh_mirrors/do/dovi_tool
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考