跳转至

翻译说明

中文文档是持续维护中的翻译版本,可能会略滞后于英文文档;如有技术差异,以英文版为准。

解码与检查

CLI 将输入检查、诊断解码和最终渲染分开处理。

检查 JOC 数据

openjoc inspect input.ec3

inspect 会报告访问单元结构、JOC 元数据、配置选择和受限解析结果,但不会写出最终音频文件。

如果需要机器可读输出或更多检查细节:

openjoc inspect input.ec3 --json
openjoc inspect input.ec3 --aus --objects --emdf
openjoc inspect input.ec3 --au-range 10:20 --json
openjoc inspect input.ec3 --verbose

--json 会向标准输出写入带版本的报告。--aus 包含访问单元明细。--au-range START:END 选择一个从零开始计数、包含首尾的范围,不会缩小完整流统计;解析器也接受 --au N 作为单个访问单元范围 N:N 的简写(help synopsis 只列出 --au-range)。--objects 增加每个 OAMD 槽位的统计,--emdf 展开人类可读的 EMDF 配置细节,--verbose 增加有界诊断解释。完整语法见 CLI 参考。

捕获解码器诊断输出

openjoc decode input.ec3 --output decoded

捕获流程会写出元数据清单、真实反映解码结果的组件清单,以及用于诊断的 ReconstructionBasis 行 WAV。这些行是解码器输出,不是原始创作对象的分轨。

如果需要带内部 Base 诊断的受限流式解码:

openjoc decode input.ec3 \\
  --output decoded \\
  --internal-base \\
  --streaming

Rust 数据包 API 每次推送接受一个完整的 E-AC-3 JOC 访问单元:I0 加可选 D0。解复用、任意字节拆分和多个访问单元,属于受限的流式解码器或框架适配器负责的范围。

选择校验配置

auto 是解码的默认策略。etsi-strict 永远不会回退。observed-vendor-compat 是明确的部分兼容策略:它会保留无法解释的扩展数据,但不会赋予这些数据厂商语义。

openjoc decode input.ec3 \\
  --output decoded \\
  --validation-profile etsi-strict

如果流中使用了保留的 OAMD 值,例如原始 warp=3,严格模式拒绝是该配置下预期的结果,不是程序悄悄降级造成的。