制作一条教程类视频,通常比想象中更麻烦。
先要读懂原文、整理脚本,再拆分章节、写旁白、准备画面提示词。等图片和配音生成以后,还要继续制作视频片段,最后把画面和声音合成到一起。
其中任何一个环节出了问题,后面的工作都可能跟着重来。尤其是教程视频,内容不仅要准确,画面与旁白还得对得上,确实很耗时间。
这次我换了一种做法:使用 Ace Data Cloud Studio,让 Agent 帮我把任务拆开,然后按照脚本、旁白、图片、视频的顺序逐步完成。
整个过程不是点一下按钮就不管了,而是每完成一个阶段就检查一次。哪里不合适,就在进入下一阶段前调整。这样既能控制最终效果,也不用同时在多个平台之间来回切换。
下面这张插图,就是我理想中的工作状态:电脑在处理视频,我在旁边喝咖啡、看手机,偶尔回来检查一下进度。

¶ 那么,具体应该怎么开始?
这次的任务很明确:选择一篇现有的博客文章,把它改编成一条完整的视频。
我选择的是 Ace Data Cloud 上的一篇教程文章:
接下来打开:
进入 Studio 后,可以直接从创作任务开始,不需要提前搭建一套复杂的工作流。

¶ 把视频创作 Skill 交给 Studio
我提前准备了一份视频创作 Skill。
它的作用不是直接生成最终视频,而是先把原始文章整理成适合视频表达的结构,包括视频应该分成哪些章节、每一章要讲什么、旁白怎么写、画面展示什么,以及图片和视频分别使用什么提示词。
使用时,把 Skill 文件拖放到 Studio 的对话框中,然后告诉 Agent 这次要处理的文章地址和具体要求。
我给出的需求大意是:
阅读指定的博客文章,把它改编成视频。请先输出完整章节,包括每章的标题、说明、旁白,以及图片和视频的生成提示词。整个任务一步步完成,不要一次生成全部内容。

¶ 先整理视频大纲,不要急着做画面
提交任务后,Agent 会先阅读文章,然后根据文章内容整理视频章节。
生成的内容比较完整,每个章节都有标题、内容说明、旁白,以及对应的图片和视频 Prompt。这样一来,后面不管是生成静态画面,还是制作视频片段,都有一份比较清楚的执行清单。
例如,原文中介绍 SERP API 的部分,被单独整理成了一个章节,并补充了画面应该展示的内容。

Agent 还会估算每个章节的时长。第一次生成时,这条视频被拆成了八个章节,预计总时长大约为两分半钟。

这里建议先停一下,认真检查内容,不要马上开始生成图片。
因为这一阶段的修改成本最低。如果等到图片、音频和视频都已经生成,再回头改旁白,前面的素材很可能都要跟着重做。
¶ 缩短旁白,控制视频节奏
我检查后发现,第一版旁白有点长。
教程视频并不是信息越多越好。旁白太长,观众听起来会累,视频节奏也容易拖沓。更麻烦的是,画面需要配合更长的语音,后面生成视频时也会增加难度。
所以我直接让 Agent 缩短旁白,要求保留关键信息,去掉重复说明和比较书面化的句子。
调整后,每个章节的旁白大约控制在八到九秒,整体节奏明显轻快了不少。

旁白变短以后,不能只修改文字,还要同步调整图片和视频的 Prompt。否则很容易出现一种情况:旁白已经讲到下一个重点,画面还停留在上一段内容。
我的处理方式是,让 Agent 根据新的旁白重新整理画面描述,确保每个章节的视觉内容仍然与旁白一致。
¶ 设置统一底图,保持画面风格
脚本确认以后,就可以开始生成图片和旁白了。
在正式生成前,我给 Agent 指定了一张底图,也就是视觉参考图。
这不是必须的,也可以只使用文字说明。但如果整条视频包含多个章节,我还是建议准备一张底图。它可以帮助模型保持相对统一的色彩、构图和品牌风格,避免前后几个镜头像来自完全不同的视频。
由于前面修改过旁白时长,我也要求 Agent 重新生成对应的画面 Prompt,不再继续使用旧版本。

¶ 选择合适的旁白音色
画面要求确定后,Studio 会根据任务需要调用配音工具。
音色没有绝对的好坏,主要看视频类型。教程类视频一般不需要太夸张的情绪,声音清楚、稳定,语速不要过快就可以。
如果自动选择的音色不合适,也可以直接要求 Agent 更换。最好先生成一小段试听,确认音色、语速和停顿都没问题,再批量处理剩余章节。

这次图片使用的是 GPT Image 2,配音使用的是 Fish Audio。这些模型都可以在 Studio 中直接调用,只要提前设置好对应的连接器,不需要再单独编写接口代码。
后面生成视频时也是一样,Agent 可以继续调用已经连接的视频模型。图片生成需要一些时间,这个阶段耐心等一会儿就行。
¶ 先看样图,确认方向再批量生成
我没有一开始就生成全部图片,而是先让 Agent 做了两张样图。
这样做看起来多了一步,实际上更省时间。通过样图,可以提前检查画面比例、整体风格、品牌元素和构图,也可以判断画面是否适合后续制作成视频。
如果样图不合适,只需要调整 Prompt 或底图,不会浪费后面全部章节的生成费用。

两张样图确认没有明显问题后,我再让 Agent 完成其余内容。
最后,八个章节所需的图片和音频片段全部生成完成。接下来要做的,就是逐个检查画面和旁白。

检查时不要只看单张图片好不好看,还要把图片和旁白放在一起判断。图片表达的内容要与旁白一致,同一个人物或界面不要突然发生明显变化,旁白中提到的重要信息最好能在画面中有所体现,相邻章节的风格和色调也应尽量统一。
¶ 提前规定视频的生成方式
图片和音频准备好以后,就可以开始制作视频片段了。
不过,为了少走弯路,我没有直接让 Agent 自由发挥,而是先补充了一些规则,包括每段视频对应哪个章节、使用哪张图片作为起始画面、视频时长如何匹配旁白,以及运镜幅度和风格一致性等。
教程画面应该保持清楚,不要加入无关元素,也不要随意改变画面中的品牌、界面和主体。相邻视频的风格尽量保持一致,正式批量生成前先做一个片段检查效果。

这些限制并不是越多越好,但关键要求最好提前说清楚。如果完全不做约束,单独看每一段视频可能都不错,拼在一起却容易出现风格跳动、运镜差异过大或者人物不一致的问题。
¶ 先做一个视频片段
和前面生成图片一样,我还是采用了“先做样片”的方式。
先生成第一个片段,检查动态效果、运镜、画面稳定性以及整体风格。如果第一个片段就有问题,可以马上调整,不必等所有片段都完成。

第一个片段完成后,我检查了一遍,整体效果还可以,没有明显的画面跳动,运镜也比较自然。
确认方向没问题后,再让 Agent 继续生成剩余的视频片段。

¶ 用 FFmpeg 在本地合成视频和旁白
所有视频片段生成以后,还剩最后一步:把视频和对应的旁白合成到一起。
Studio 可以帮忙完成前面的创作工作,但我更习惯把最后的合成放到本地执行。这样下载和管理文件更方便,也能清楚控制每一段音视频。脚本修改后可以重复执行,出现问题时也更容易定位。
我的做法是让 Agent 生成一段 Bash 脚本,然后使用本地安装的 FFmpeg 执行。
#!/usr/bin/env bash
set -euo pipefail
videos=(
"https://platform2.cdn.acedata.cloud/grok/0d91b61a-5c15-412d-9eb3-ed3ba3c2b289.mp4"
"https://platform2.cdn.acedata.cloud/grok/24c98593-2d2c-41da-82ff-85101ef65564.mp4"
)
voices=(
"https://platform2.cdn.acedata.cloud/fish/eef753c1-4b5b-400f-8fce-acedd2621ce9.mp3"
"https://platform2.cdn.acedata.cloud/fish/52dd45d8-1e6d-4a67-8f02-0473c56d960f.mp3"
)
mkdir -p output
for i in "${!videos[@]}"; do
n=$(printf "%02d" $((i + 1)))
ffmpeg -y \
-i "${videos[$i]}" \
-i "${voices[$i]}" \
-map 0:v:0 \
-map 1:a:0 \
-c:v copy \
-c:a aac \
-b:a 192k \
-ar 48000 \
-ac 2 \
-af "apad" \
-shortest \
-movflags +faststart \
"output/scene-${n}-narrated.mp4"
done
这段脚本会按照数组中的顺序,将每一个视频片段与对应的旁白合成。
-map 0:v:0 用来选择第一个输入中的视频轨道,-map 1:a:0 选择第二个输入中的音频轨道。-c:v copy 会直接复制视频,不重新编码;-c:a aac 则把旁白转成兼容性更好的 AAC 音频。
-af "apad" 会在音频不足时补充静音,-shortest 让输出在较短的音视频轨道结束时停止,-movflags +faststart 可以让 MP4 更适合网络播放。
正式使用时,把 videos 和 voices 数组补充完整,并确保视频和音频的顺序一一对应即可。
¶ 交给本地 Codex 执行脚本
脚本生成后,我没有继续让在线 Agent 处理下载和合成,而是直接复制到本地,交给 Codex 执行。
可以让它检查本地是否已经安装 FFmpeg,创建项目文件夹,保存 Bash 脚本,下载素材并执行合成命令。处理完成后,再检查输出文件是否完整,并按顺序整理最终片段。
这样做的好处很直接:下载和合成都在本地完成,可以节省不少 Token,生成的素材也会直接保存在电脑里,后面继续剪辑、加字幕或者备份都比较方便。

¶ 最终效果
全部片段合成完成后,整体效果比我预期的更好。
视频的章节结构比较清楚,画面风格也保持了基本一致。旁白经过缩短后,没有最初那么拖沓,教程内容听起来更加紧凑。
更重要的是,整个过程不是把任务一次性交给模型后碰运气,而是拆成多个阶段逐步确认。
脚本不合适,就先改脚本;旁白太长,就先缩短旁白;图片风格不对,就先调整样图;视频运镜有问题,就先修改第一个片段。这样一路检查下来,最后返工的地方反而更少。

¶ 最后聊聊这次的感受
这次做下来,我觉得最重要的一件事,就是不要一开始就把所有内容都生成出来。无论是图片、配音还是视频,先做一两个样品看看效果,发现问题可以马上调整,不会等到全部完成后再大面积返工。
整个任务也不要想着一步到位。先整理脚本,再修改旁白,然后准备图片、音频和视频。每完成一个阶段就检查一下,虽然看起来多了几个步骤,实际上会省下不少时间。
最后的视频合成也没有必要继续放在 Studio 中完成。创作部分交给 Studio,本地下载和合成交给 FFmpeg,各自做擅长的事情,操作起来更顺手,也能减少不必要的消耗。
说到底,Ace Data Cloud Studio 最方便的地方,并不是替我们按一下按钮直接生成成片,而是把原本零散的创作流程串了起来。我们只需要在关键节点检查和调整,剩下的重复工作就可以交给 Agent 慢慢完成。

