本节摘要:发布环节的第一件事不是点上传,而是履行 AI 生成内容的标识义务。多地法规已对此提出明确要求——中国大陆自 2025 年 9 月起施行生成合成内容标识相关办法并配套强制性国家标准,其他地区也有各自规定。本节不复述条文,讲三层东西:一是原则——标识分显式(人可见的画面角标、片头字卡、简介声明)与隐式(机器可读的元数据与水印),两者互补且都不可只做一半;二是查证方法——规范随时会变,正确姿势是发布日从官方渠道核实现行版本并留档查证记录,而不是背二手摘要;三是实现——元数据写入与画面角标的 ffmpeg 做法,以及竖屏横屏双版本、封面、标题简介的交付变体组织。所有具体要求以现行法规与各平台规范为准。
AI 生成内容标识的通行原则是双轨:显式标识给人看——画面角标、片头字卡、简介或评论区声明,让观众在观看当下即知内容由 AI 生成或合成;隐式标识给机器读——写入文件元数据或嵌入不可见水印,让传播链路上的平台与检索系统能自动识别。两轨互补:显式标识可能被截图裁掉,隐式标识可能被转码抹掉,所以合规实践是两层都做。中国大陆自 2025 年 9 月起施行的《人工智能生成合成内容标识办法》及配套强制性国家标准即按此思路规定了显式与隐式标识要求(此处只述原则,条文以官方发布为准);其他法域也有类似要求,跨境分发时按目标法域核实。
标识双层结构与失效模式 显式(给人看) 隐式(给机器读) 画面角标 / 片头字卡 元数据字段 / 不可见水印 │ 裁剪、二压后消失 │ 转码、重封装后丢失 └────────── 互补 ────────────┘ 两层都做,且留档标识记录
规范条文与平台细则更新频繁,任何写进书里的具体条款都可能过期。正确的操作流程是四步:第一步,从官方渠道获取文本——法规原文看主管部门发布渠道,平台细则看各平台创作者规范或规则中心,不以自媒体转述为准;第二步,发布日复核——每次发布前把适用规范的现行版本再过一遍,重点核对标识形式、尺寸、位置与免责声明要求;第三步,留档——把查证日期、来源、要点摘录记进 compliance 台账;第四步,差异对照——多平台分发时做一张要求对照表,取并集执行。这套流程本身比任何条文摘录都更保值。
四步流程的产出物就是 compliance 台账,一行一次查证,字段要能回答"何时、查了什么、依据在哪、结论如何":
# compliance/log.jsonl —— 规范查证留档,每行一次查证(示意,字段自定义) {"date": "2026-10-16", "scope": "平台甲·竖屏信息流", "source": "该平台创作者规范·规则中心(官方渠道)", "checked": ["标识形式与位置", "声明文案要求", "封面与成片一致性"], "result": "通过", "artifact": "deliverables/vertical/labels.txt"} {"date": "2026-10-16", "scope": "法规·生成合成内容标识", "source": "主管部门官方发布渠道", "checked": ["显式标识要求", "隐式标识要求"], "result": "已核对现行版本", "artifact": "compliance/notes.txt"}
台账里查证对象记"范围"而不追求罗列全部细节,重点是来源可回溯:日后复核能顺着 source 找回官方原文,而不是依赖当时的摘录。
元数据标识的成本几乎为零,应当成为管线的默认动作:
# set_metadata.sh —— 元数据隐式标识(字段口径示意,以现行规范为准) ffmpeg -y -i deliverables/final.mp4 \ -metadata comment="本视频由 AI 生成合成流水线制作" \ -metadata title="雨夜最后一单(AI 生成短剧)" \ -c copy deliverables/final_tagged.mp4
必须清醒的认识是:元数据在转码、重封装、多数平台上传处理中极易被剥离。所以隐式标识是必要非充分条件——它的失效可能性正是"两层都做"的理由。若采用水印类隐式方案(嵌入不可见标记),同样以所用水印技术的抗转码说明为准,并在交付记录中注明。
写入是否成功,不必打开剪辑软件,一条命令核对:
# check_metadata.sh —— 用 ffprobe 核对元数据字段是否在位 ffprobe -v error -show_entries format_tags=title,comment \ -of default=noprint_wrappers=1 deliverables/final_tagged.mp4
想体会"必要非充分",可以做个自证练习:把 final_tagged.mp4 转码出一份副本,再用同一条命令查——多数转码链路下 comment 字段已经消失。这不是脚本写错了,正是转码剥离的实证:隐式层随时可能失效,显式层必须同时在。
# add_badge.sh —— 画面角标显式标识(中文字体需 fontfile,写法示意) ffmpeg -y -i deliverables/final_tagged.mp4 \ -vf "drawtext=fontfile=assets/fonts/SourceHanSansCN-Regular.otf:text='AI 生成内容':fontsize=28:fontcolor=white@0.85:x=w-tw-24:y=64:box=1:boxcolor=black@0.35:boxborderw=8" \ -c:a copy deliverables/final_badge.mp4
角标设计的三个口径:位置避让字幕区(第 7.2 节样式模板的 margin 区域)与平台界面热区(点赞评论栏、进度条),发布前在目标平台真机预览一次;样式以"可读而不抢戏"为度,半透明底衬保证亮画面下可辨;时长与显隐节奏按平台现行要求执行——有的场景要求全程在画面内。片头字卡与简介声明是角标的补充形态,简介文案进交付变体目录(下一节)随片交付。
同一成片面向不同平台与版位,交付物是一组而不是一个:竖屏九比十六主版本、横屏十六比九备用版本(由分镜期就规划好的双构图生成,而不是事后裁切硬凑)、封面图(从关键帧挑选或模板合成,封面内容须与成片一致,封面党式错位会伤账号信任)、标题与简介(模板化生成后人工润色,声明文案一并放入)。
# make_delivery.py —— 按平台组织交付变体目录(竖屏/横屏/文案) import json, os, shutil VARIANTS = {"vertical": (1080, 1920), "horizontal": (1920, 1080)} def prepare(spec_file="build/delivery_spec.json", root="deliverables"): spec = json.load(open(spec_file, encoding="utf-8")) for name, (width, height) in VARIANTS.items(): target = os.path.join(root, name) os.makedirs(target, exist_ok=True) source = spec["masters"].get(name, spec["masters"]["vertical"]) shutil.copy(source, os.path.join(target, "video.mp4")) for key in ("cover", "title", "description", "labels"): if spec.get(key): dst = os.path.join(target, f"{key}.txt") with open(dst, "w", encoding="utf-8") as f: f.write(str(spec[key])) print(f"{name}: 交付物就绪(目标 {width}x{height},以实际成片为准)") if __name__ == "__main__": prepare()
交付变体目录同时容纳合规产物:labels.txt 即该变体的标识与声明文案,compliance 记录(查证日期、依据、标识方式)随台账归档——它们在第 11.2 节的交付清单里是正式交付物,不是附属品。
展开后的目录形态(示意布局):
# deliverables —— 一套素材多个出口的目录形态(示意布局) deliverables/ ├─ vertical/ 竖屏主版本出口 │ ├─ video.mp4 双层标识齐全的成片 │ ├─ cover.png 与成片同源的封面 │ ├─ title.txt 标题(人工润色稿) │ ├─ description.txt 简介(含声明文案) │ └─ labels.txt 标识与声明文案清单 ├─ horizontal/ 横屏备用出口(结构同上) └─ compliance/ 查证记录与标识留档
目录形态的价值在交接:任何人接手,看结构就知道每个出口该有什么;缺一个文件,眼睛就能定位——这是第 11.2 节交付清单的雏形。
把前五节的原则收成一张按时间推进的核查清单。每行的通过口径都写成可执行的判据(思路同第 8.1 节的验收条件),具体尺寸与措辞以各平台现行规范为准:
| 时点 | 核查项 | 通过口径(示意) | 留档物 |
|---|---|---|---|
| 定稿日 | 现行规范复核 | 官方渠道核对标识形式、位置与声明要求 | compliance 台账 |
| 交付前 | 隐式标识在位 | ffprobe 查得到标识字段 | 核对输出记录 |
| 交付前 | 显式标识可读 | 真机预览:角标可读,避开字幕区与平台热区 | 预览记录 |
| 交付前 | 变体齐全 | 双比例版本、封面、标题简介、labels 同目录 | 目录清单 |
| 上传后 | 平台回显一致 | 页面呈现的标识与声明和交付物一致 | 发布记录 |
| 例行 | 再编辑约束写明 | 交付说明含"再编辑需延续标识义务"提示 | 交付说明 |
清单的意义与流水线各站检查点一脉相承:发布环节的改动代价同样存在跃升——发布前改是重渲染,发布后改是删稿重传,声誉成本更不可逆。
问题一:平台转码后,元数据还在吗。 多数平台的上传处理会剥离或重写字段。别指望它,把它当必要非充分:隐式层尽力写,显式层兜底,两层记录都留档。
问题二:角标在真机上被界面元素遮挡。 预览就是为了抓这个。回到第四节调位置参数重新渲染,不要手动贴图——位置参数在模板里,一次修正、全部变体受益。
问题三:横屏备用版也要重新走标识吗。 要。每个变体都是独立交付物,独立过第六节清单;文案可以复用,核对不能省略——竖屏版过检不代表横屏版的角标位置也对。
问题四:封面需要标识吗。 以现行规范为准的原则下,稳妥做法是封面与成片同责:同源关键帧加同步角标,简介声明不省略。封面与内容错位本来就伤账号信任(第五节),合规与账号健康在这里是同一件事。
问题五:合作方要一版无角标的工程文件做二剪。 工程版本按合作约定与目标法域现行规范交付,但交付记录写明:再编辑与再发布的标识义务由承接方延续,并在交付说明里留痕。原则不因交接而消失,只是责任随文件转移。
片子发得出去还不够,管线要交得出去。下一节是全书的最后一节:把配置、资产、文档、台账组织成一份任何人都能接手的交付清单。