- 文档首页
证书中心
C2PA
最佳实践
含 C2PA 内容转码与重封装写入最佳实践
最佳实践
含 C2PA 内容转码与重封装写入最佳实践
含 C2PA 内容转码与重封装写入最佳实践
本文介绍在含 C2PA 内容转码或重封装场景下,如何写入符合 C2PA Conformance 要求的 Manifest。适用于输入文件已含 C2PA Manifest,服务对其做格式转换、码率调整、容器切换等非编辑性变更,需要保留原始 provenance 链路的场景。
- 视频云 / ImageX 等媒体处理服务对已含 C2PA 的输入文件做转码(如 H.264 → H.265)或重封装(如 MKV → MP4)。
- 变更本身不修改画面/音频内容,只改变编码或封装。
- 目标是保留原始 Manifest(原始来源、编辑历史),并在链路上追加本次转码/重封装动作。
- 通过 -p / --parent 指定转码 / 重封装前的父文件。c2patool 会自动把父文件登记为 relationship=parentOf 的 ingredient、构建 c2pa.ingredient.v3 assertion,并生成通过 parameters.ingredientIds 绑定该 ingredient 的 c2pa.opened 作为首个 action。无需在 Manifest 中手写 c2pa.opened,也不要使用 url / hash 占位写法。
- Manifest 的 actions 只声明本次实际发生的动作,按变更类型取值:
- 纯转码(改编码,含分辨率缩放)→ c2pa.transcoded
- 纯重封装(仅换容器)→ c2pa.repackaged
- 裁剪、加水印、调色等编辑性变更 → c2pa.edited
- Actions Assertion 仍需在 label 后紧跟 "created": true,并在 actions data 中设置 allActionsIncluded: true。
- 原始 Manifest 会随父文件 ingredient 自动纳入新的 Manifest Store,无需业务侧手动搬运。
说明
若变更包含内容编辑(如裁剪、加水印、调色),action 取 c2pa.edited,Manifest 结构与签名方式不变,同样通过 -p 指定编辑前的父文件。
- 接收到含 C2PA 的输入文件后,业务侧完成转码 / 重封装动作,并保留变更前的原始文件,作为签名时通过 -p 指定的父文件。
- 准备只包含本次实际动作(c2pa.transcoded / c2pa.repackaged / c2pa.edited)的 Manifest JSON;签名命令中通过 -p / --parent 指定变更前的父文件,c2patool 自动补全 c2pa.opened 与 parentOf ingredient 的绑定。
- SDK 组装签名结果,将新 Manifest 追加到 Manifest Store 并写入产物文件。
- 使用 C2PA Verify 检查原始 Manifest 与新增 Manifest 的结构、签名和内容绑定结果。
最近更新时间:2026.10.14 16:01:57