You need to enable JavaScript to run this app.
文档中心
证书中心

证书中心

复制全文
下载 pdf
最佳实践
含 C2PA 内容转码与重封装写入最佳实践
复制全文
下载 pdf
含 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,无需业务侧手动搬运。​
Manifest JSON 示例​
​
{​
"claim_generator_info": [​
{​
"name": "ByteDance Media Transcode Service",​
"version": "0.0.1",​
"specVersion": "2.4.0"​
}​
],​
"assertions": [​
{​
"label": "c2pa.actions.v2",​
"created": true,​
"data": {​
"actions": [​
{​
"action": "c2pa.transcoded",​
"description": "transcoded C.jpg to D.jpg with lower resolution"​
}​
],​
"allActionsIncluded": true​
}​
}​
]​
}​
​
转码/重封装 action 取值对照​
​
操作类型​
action 值​
适用场景​
转码(改编码)​
c2pa.transcoded​
H.264 → H.265、码率调整、分辨率缩放。​
重封装(仅换容器)​
c2pa.repackaged​
MKV → MP4、TS → MP4(编码不变)。​
编辑裁剪​
c2pa.edited​
裁剪、加水印、调色等编辑性变更;同样通过 -p / --parent 指定编辑前的父文件,Manifest 中写 c2pa.edited。​
​
说明​
若变更包含内容编辑(如裁剪、加水印、调色),action 取 c2pa.edited,Manifest 结构与签名方式不变,同样通过 -p 指定编辑前的父文件。​
端到端接入流程​
  1. 接收到含 C2PA 的输入文件后,业务侧完成转码 / 重封装动作,并保留变更前的原始文件,作为签名时通过 -p 指定的父文件。​
  1. 准备只包含本次实际动作(c2pa.transcoded / c2pa.repackaged / c2pa.edited)的 Manifest JSON;签名命令中通过 -p / --parent 指定变更前的父文件,c2patool 自动补全 c2pa.opened 与 parentOf ingredient 的绑定。​
  1. 调用 C2PASign,使用指定的 C2PA 证书实例完成签名。​
  1. SDK 组装签名结果,将新 Manifest 追加到 Manifest Store 并写入产物文件。​
  1. 按需调用 C2PAVerify 验证 C2PA 证书实例签名。​
  1. 使用 C2PA Verify 检查原始 Manifest 与新增 Manifest 的结构、签名和内容绑定结果。​
常见问题​
​
问题​
说明​
输入文件没有 C2PA 也走这个流程吗?​
不会。输入无 C2PA 时应使用 c2pa.created 场景(参考 纯 AI 生成内容写入最佳实践 或通用规范)。​
转码后原始 Manifest 会丢失吗?​
不会。c2patool 会将原始 Manifest 作为 ingredient 引入新 Manifest Store,形成完整溯源链。​
如果既做转码又做加水印呢?​
属于编辑性变更,应使用 c2pa.edited action,并在 Manifest 中记录具体编辑参数。​
​
相关文档​
最近更新时间:2026.10.14 16:01:57
这个页面对您有帮助吗?
有用
有用
无用
无用