课程:第 11 章 AI 视频自动化(Coze)
日期:2026-03-23
昨天回顾
昨天学习了"基本招式"的三板斧------添加字幕、添加音频、添加图片。
核心收获就一句话:时间线是万恶之源,也是万水之源。
无论是字幕、音频还是图片,核心逻辑都是三步走:
① 确定时间线(timelines)
② 组装素材数据(*_infos)
③ 提交到草稿(add_*)
还明白了:视频本质就是一个 JSON 文件。Coze 生成 JSON,剪映小助手搬运 JSON,剪映渲染 JSON。
今天学了什么?
今天进阶了,从"添加素材"迈向"处理视频本身"------学会了对既有视频进行自动化处理,还掌握了让画面动起来的关键帧动画。
11.8 基本招式-添加视频
前面学的都是"从零生成"------AI 生成文案、配音、图片,最后组装成视频。但真实场景中,用户往往已经有一个视频素材,想要的是自动化加工。
比如:用户上传一段旅游视频,想自动配上字幕、BGM、转场特效。
这就是今天要解决的问题:以既有视频为核心,建立精确时间基准的自动化流程。
11.8.1 思路分析
核心目标:建立以视频为基准的"主时间线"
与之前"从文本生成一切"的流程不同,本节的核心输入是一个既有的视频文件。工作流的目标发生了根本性转变:不再是创造内容,而是"导入"和"结构化"一个已有的、带有时长信息的复杂媒体对象,并以其为标准,建立整个项目的时间框架。
流程关键设计与原理:
-
"文件预处理"与"云端化"优先
- 视频文件体积大、格式复杂,无法像文本一样直接在节点间传递
- 结构统一:通过 str_to_list 节点,确保即使单个视频也以列表结构处理
- 上传云端:通过 upload_video_oss 节点,将本地视频上传至 OSS,并同步解析出视频元数据(时长、分辨率、编码信息)
- 输出 oss_video_url,是视频工作流的基石
-
"时长提取"与"时间标准化"
- 这是最核心的步骤,确立了视频作为"时间主人"的地位
- 提取时长:从上传后解析的 video_info 中获取视频总时长(单位:秒)
- 单位转换:通过代码节点将秒转换为微秒(μs),确保时间计算的超高精度
- 构建主时间轴:timelines 节点利用微秒级时长,生成与视频播放长度完全一致的时间轴
-
"数据封装"与"上轨"
- video_infos 节点:扮演"粘合剂"角色,将云端视频地址 + 主时间轴绑定,生成结构化数据
- add_videos 节点:将封装好的视频数据提交到空白草稿中
💡 本节在课程体系中的定位
本节是"基本招式"的收官之作,引入了"以既有媒体资产(视频)为核心"的另一种自动化范式。与前几节"从零生成"的模式形成互补。
掌握本节后,你将具备处理更复杂场景的能力:为用户上传的原始视频自动匹配字幕、添加转场特效、混入背景音乐,或与 AI 生成的解说片段进行混剪。
11.8.2 搭建教程
Step 1:配置开始节点
- 新增输入参数:
video_url,类型选择 File(用于接收待处理的视频文件)
Step 2:字符串转列表节点
- 节点:str_to_list
- 作用:将单个字符串格式的视频参数统一转换为列表结构,为后续节点提供标准化的数据输入
Step 3:上传至 OSS 节点
- 节点:upload_video_oss
- 作用:将原始视频文件上传到 OSS,生成可稳定访问的视频地址,并同步解析视频基础信息
Step 4:提取时长并转换为微秒
- 通过代码节点,将获取到的视频时长(秒)转换为微秒
- 这是关键一步,确保时间计算的超高精度
Step 5:构建主时间轴
- 节点:timelines
- 输入:转换后的微秒级时长
- 输出:与视频播放长度完全一致的时间轴
Step 6:封装视频数据
- 节点:video_infos
- 输入:oss_video_url + timelines
- 输出:结构化数据(描述"在某个时间段播放某个视频")
Step 7:创建草稿并提交视频
- 节点:create_draft + add_videos
- 作用:创建空白草稿,将封装好的视频数据提交到主轨道
11.9 进阶技能:关键帧动画
学完添加视频,顺带把关键帧动画也学了。这是让视频"动起来"的核心技能。
关键帧(Keyframe)是什么?
想象你是一个木偶戏导演,关键帧就是木偶的"关键动作"。你只需要定义几个关键动作,中间的过渡动画会自动生成。
关键帧动画的四大金刚:
- X 位移:画面水平移动(左←→右)
- Y 位移:画面垂直移动(上↑↓下)
- 缩放:画面放大/缩小(推进/拉远镜头)
- 透明度:画面渐变(淡入/淡出)
11.9.1 关键帧核心参数
无论哪种关键帧,都需要配置这几个参数:
| 参数 | 含义 | 示例 |
|---|---|---|
| ctype | 关键帧类型 | KFTypeX(X位移)、KFTypeScale(缩放)、KFTypeAlpha(透明度) |
| offsets | 时间点(百分比) | 0|50|100 |
| values | 属性值 | -200|200(位移)、1|1.2|1(缩放)、0|1(透明度) |
| segment_infos | 作用的视频片段 | 视频片段信息 |
💡 动画曲线小技巧
- values 设置为 -200|200:画面从左滑到右
- values 设置为 -200|0|200:画面从左滑到中间,再滑到右(中间会"回中")
- 通过增加关键帧数量,可以精细控制动画轨迹
11.9.2 关键帧写入视频草稿
生成关键帧数据后,还需要一个节点把它真正写入视频:
- 节点:add_keyframes
- 输入:
draft_url:目标草稿地址keyframes:关键帧描述数据
- 输出:更新后的草稿链接
完整关键帧工作流:
add_videos(视频画面上轨)
↓
关键帧数据生成节点(X位移/缩放/透明度)
↓
add_keyframes(关键帧写入草稿)
关键收获
1. 两种自动化范式
| 模式 | 核心输入 | 典型场景 |
|---|---|---|
| 从零生成 | 文本 | AI 创作视频 |
| 既有视频处理 | 视频文件 | 视频加工、混剪 |
2. 视频处理的核心流程
上传视频(upload_video_oss)
↓
提取时长 + 单位转换(秒→微秒)
↓
构建主时间轴(timelines)
↓
封装数据(video_infos)
↓
提交到草稿(add_videos)
这一套组合拳,是处理**任何外部媒体文件(视频、音频)**的通用模板。
3. 关键帧动画的本质
关键帧不是"每帧都设置",而是只设置关键动作,让系统自动生成过渡。
| 关键帧类型 | 效果 | 典型应用 |
|---|---|---|
| X 位移 | 水平移动 | 字幕滚动、片头飞入 |
| Y 位移 | 垂直移动 | 字幕上升、镜头升降 |
| 缩放 | 放大/缩小 | 镜头推进、拉远 |
| 透明度 | 渐变 | 淡入淡出、过渡 |
4. 微秒时间单位
- 1 秒 = 1,000,000 微秒(100万)
- 剪映所有时间相关参数都用微秒
- 为什么要用微秒?精度。视频编辑需要极高的时间精度,秒级不够用。
下一步
- 挑战终极目标:做一个完整的"视频自动化加工"工作流
- 输入:用户上传的原始视频
- 输出:自动加字幕、BGM、转场的成品视频
- 尝试混剪:把多个视频片段 + AI 生成的配音进行智能拼接
- 研究"特效"相关节点:添加转场、调色等
相关链接
项目链接
课程开源链接🔗:https://github.com/datawhalechina/coze-ai-assistant/blob/main/Course_Center/chapter11/chapter11.md
课程日常更新链接🔗:https://zxdwhda-share.feishu.cn/wiki/ZSspwjpT4ioMXAkNYdfcOKE1nqd
课程推荐学习链接🔗:https://zxdwhda-share.feishu.cn/wiki/JNcKwVqA4ie6zykefvqcew62nWd
未完待续,第五天继续...