ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

用Claude写代码做视频全攻略:7大路线、5案例与提示词模板

用Claude写代码做视频全攻略:7大路线、5案例与提示词模板

最近我一直在用 Claude Opus 5.5 帮我写代码做视频,说实话,效果比我预期好太多。以前要折腾一下午的动画,现在十几分钟就能搞定。如果你也经常做视频,尤其是数据可视化、信息图表、或者需要批量生成的内容,这篇文章一定要看完。我会梳理 7 类技术路线,拆解 5 个真实案例,再送你一套可以直接套用的提示词框架。

写代码做视频不是新鲜事,但过去门槛很高,得精通 Python、OpenGL 或视频编辑脚本。现在有了 Claude 这种能直接理解自然语言并生成完整代码的 AI,整个流程被压缩到“说需求—拿代码—出视频”三个阶段。你不需要是程序员,只需要能清晰描述想要的效果,剩下的交给代码生成模型。这篇文章就围绕这个核心,帮你把“用 AI 写代码做视频”这件事彻底吃透。

1. 为什么用代码做视频?我的核心判断

很多人一听“写代码做视频”就觉得是程序员的事,其实完全不是。我自己做了快十年的视频内容,从传统剪辑到动态图形,再到现在的 AI 辅助生成,最大的感受是:视频制作的本质正在从“操作软件”转向“描述需求”。Claude 这类能生成可执行代码的模型,恰好把这条链路打通了。

1.1 传统视频制作流程的瓶颈

传统做一条数据可视化视频,通常要用 After Effects 手动拉关键帧、绑数据、调曲线,再加上渲染,一套下来至少半天。如果数据更新了,又得全部重做。更别提批量生成几十个不同产品、不同文案的视频,那基本是噩梦。这种重复劳动消耗了大量时间,留给你真正做创意和内容策划的精力反而很少。

1.2 代码视频的底层优势

代码生成视频的本质是用程序逻辑控制画面元素。比如你想让一个数字从 100 增长到 10000,传统做法是画两个关键帧让数字变化,但用代码就是写一个循环,让数字每帧增加对应值。好处是精确、可复用、可批量。配合 Claude 这种能理解英文自然语言的模型,你只需要告诉它“让数字从 100 涨到 10000,用渐变色背景,增长率指数变化”,它就能给你写出对应的 Python 或 JavaScript 代码。这种高精度自动化,是传统剪辑软件做不到的。

2. 7 类技术路线逐一拆解(附核心思路)

我用 Claude Opus 5.5 试了很多种方式,最后总结出 7 类最实用的技术路线。每一类我都给出了适用场景和关键代码思路,你可以直接参考。

2.1 路线一:程序化动画生成(P5.js / Processing)

这类路线适合做艺术感强的动画,比如流动的粒子、旋转的几何体、不断变化的线条。原理就是通过代码控制每一帧的画布内容。Claude 可以生成完整的 P5.js 代码,你只需要在浏览器里打开一个 HTML 文件就能看到动画效果。

实操时我一般会这样给提示词:“请写一段 P5.js 代码,生成一个 1920x1080 的动画,背景深蓝色,有 200 个白色粒子按正弦波轨迹移动,粒子大小随机,每帧刷新率 60fps。”然后 Claude 会生成一段 40 行左右的代码,保存为 HTML 后直接用浏览器打开,再录屏就行。

关键点在于:一定要在提示词里明确画布尺寸、帧速率、颜色、元素数量、运动逻辑。这些参数直接决定视频的质量。P5.js 比较适合短平快的动态视觉,不擅长复杂的三维场景,但做抽象背景特别合适。

2.2 路线二:数据可视化驱动(Matplotlib / Plotly + FFmpeg)

这是我最常用的一类,适合把表格数据变成动态图表。传统 Excel 图是静态的,但用 Python 的 Matplotlib 可以把每一帧的数据变化渲染成图片,再用 FFmpeg 拼成视频。Claude 在这方面特别强,它能帮你写出完整的 Python 脚本,包括读取 CSV、生成动态折线图、柱状图动画。

一个典型场景是“公司季度销售数据可视化”。我会让 Claude“写一个 Python 脚本,使用 pandas 读取 sales.csv 文件,用 matplotlib 生成一个动态折线图,横轴是季度,纵轴是销售额,每季度之间用 30 帧的动画过渡,最终保存为 mp4 格式。”Claude 会给出类似下面的代码骨架:

import matplotlib.pyplot as plt import pandas as pd from matplotlib.animation import FuncAnimation df = pd.read_csv('sales.csv') fig, ax = plt.subplots() x = df['quarter'] y = df['sales'] def update(frame): ax.clear() ax.plot(x[:frame], y[:frame], color='#FF6B6B') ax.set_title(f'Quarterly Sales - Q{frame}') ani = FuncAnimation(fig, update, frames=len(x), interval=200) ani.save('sales_video.mp4', writer='ffmpeg')

注意,Matplotlib 生成的默认字体偏小,要提醒 Claude 调整字号和图表样式,否则放到社交平台会显得很粗糙。另外,务必让 Claude 加上plt.subplots_adjust()设置留白,避免坐标轴被裁剪。

2.3 路线三:脚本调用视频编辑工具(MoviePy / FFmpeg CLI)

如果你想对已有视频素材做自动化处理,比如批量添加字幕、剪辑头尾、转场特效,那直接在命令行用 FFmpeg 或者用 Python 的 MoviePy 库最方便。Claude 可以生成一整套 Shell 脚本或 Python 脚本,让你一条命令搞定十几个视频。

例如我最近做一个系列视频,需要把每条视频前 3 秒的硬切替换成一个统一的片头动画。我用 Prompt:“生成一个 Python 脚本,使用 MoviePy 对 input_folder 里所有 .mp4 文件,在开头拼接一个 intro.mp4,并在视频右上角添加一个半透明 logo 图片,输出到 output_folder,保持原视频的音频和帧率。”Claude 生成的代码基本能直接跑通,你只需要改一下文件路径。

这条路线的核心技巧在于“善用 moviepy 的 CompositeVideoClip”。很多新手容易在音频渲染上栽跟头,所以记得在提示词里强调“保留原始音频轨道”,否则容易得到静音视频。

2.4 路线四:AI 生成图像+代码合成帧序列

这一条路线的原理是:先用 AI 绘图工具批量生成一系列关键帧图片,再用代码把它们按顺序合成视频。Claude 在这里的主要作用是写“合成视频”的代码,而不是生成图片本身。它可以用 FFmpeg 根据图片序列创建视频,比如“将文件夹内按连续数字命名的 PNG 图片序列,以 24fps 合成 1080p 的 mp4 视频”。

适合做延时摄影风格,或者那种每一帧都不同的手绘风格视频。你在提示词里明确:“图片文件名为 0001.png, 0002.png……,输出帧率 30,画面尺寸 1920x1080,编码用 H.264。”Claude 就会写好一条 FFmpeg 命令。需要强调:如果图片尺寸不统一,要先统一尺寸,否则合成会报错。

2.5 路线五:模板化嵌套动画(HTML/CSS/JavaScript)

有些视频其实就是网页动画的录屏,比如动态海报、滚动数字、点击交互效果。用 HTML/CSS/JS 来做这种动画,然后用浏览器录屏,效果会比剪辑软件更流畅,因为它是直接在浏览器渲染的。

Claude 能写完整的 HTML 页面。我试过一个需求:“做一个产品发布倒计时页面,黑底金字,数字每隔一秒跳动,背景有微弱的粒子效果。”Claude 给了完整的 HTML 文件,用浏览器打开后我会用 OBS 或者浏览器自带录屏功能录下来。这条路线最大的坑是浏览器兼容性。一定要提醒 Claude 用标准的 ES6 语法,避免用那些只在最新版浏览器才能跑的 API。

2.6 路线六:交互式故事线自动生成

这个路线稍微进阶一些,适合做那种剧本分支视频。比如视频开头播放,根据用户的选择跳转不同片段。传统中用非线性剪辑软件做交互视频非常麻烦,但用代码写一个简单的播放器逻辑反而更灵活。Claude 可以用 JavaScript 做 H5 视频播放器,支持点击按钮跳转不同时间点。

实际案例:我帮某公司做过一份员工培训视频,开头问“是否有相关经验”,选“是”跳转到进阶内容,选“否”跳转到基础内容。用 Claude 写的跳转逻辑很清晰,只要把视频分段标注好startTime和endTime,按钮点击后video.currentTime =跳转。注意,这条路线需要一定的前端基础,至少能调试 HTML 问题。

2.7 路线七:自动播报生成(语音合成+字幕+视觉素材拼接)

这是最像“傻瓜式视频制作”的路线。你可以搭建一个流水线:文本 → 语音合成音频 → 自动生成字幕文件 → 截取相关视觉素材 → 用 MoviePy 把音频、字幕、素材合成为完整视频。Claude 可以帮你写整个流程的 Python 脚本,从 10 个文本文件批量生成 10 条语音播报视频。

其中核心是“字幕的对齐”。Claude 可以生成 按照语音时间戳切分的字幕列表,或者直接调用字幕生成库。我的建议是先用文本转语音生成 wav,然后用语音识别服务生成带时间戳的 srt 文件,最后用 MoviePy 的subtitles功能加字幕。这套流程最大的价值是可以完全无人值守,睡一觉醒来视频全做好了。

3. 5 个案例实战拆解(含提示词与关键结果)

光说路线太虚,我来拆 5 个我自己或身边朋友真实做过的案例,每个案例都附上了当时用的提示词和踩坑点。请注意,所有案例均基于虚构项目,仅供思路参考。

3.1 案例一:某公司季度财报数据可视化视频

需求:把一份 12 页的 Excel 销售数据做成一条 90 秒左右的动画视频,用于内部汇报。

我用 Claude 写了一个 Python 脚本,用 Matplotlib 动态渲染每个季度的柱状图,并在最后做一个 3D 饼图。提示词如下:

基于附件 sales.xlsx,用 pandas 读取数据,制作动画图表。动画分为 4 个段落:第一段折线图展示月度趋势,第二段柱状图对比季度总量,第三段用饼图展示部门占比,第四段展示累计销售额。每段动画持续 5 秒,图表之间用淡入淡出切换。最终输出 1920x1080 的 mp4 文件。

整个流程下来,从写代码到出片,大约花了 40 分钟,而如果手动在 AE 里做,至少需要一整天。这里要注意的是:动画之间淡入淡出用matplotlib.transforms很复杂,我直接让 Claude 用subplots把四张图并列输出,再后期用剪辑软件加转场,反而更快。

3.2 案例二:产品宣传片的批量字幕生成

需求:某电商平台有一批 30 秒产品介绍视频,需要自动生成中英双语字幕,并按品牌标准格式化。

这个案例我用的是“自动播报生成”路线,先用 Claude 写脚本调用语音识别接口生成时间轴,再按要求生成双语 srt 文件,最后用 FFmpeg 烧录硬字幕。提示词核心是:

写一个 Python 脚本,读取 each video.mp4 的音轨,转写为带时间戳的文本。再根据文本生成一个双语 srt,第一行中文,第二行英文。然后调用 ffmpeg 将 srt 烧录到视频右下角,字幕字体样式为白色、3px黑色描边、Arial,大小 24 号。

过程中碰到一个坑:FFmpeg 烧录中文需要指定中文字体文件,否则会显示方块。Claude 生成的命令默认用的 Arial,明显不适合汉字,我补充了一句“使用系统中的 Noto Sans CJK SC 字体”,才解决。这类细节只有实际操作过才会懂。

3.3 案例三:动态海报生成(用 HTML/CSS 做安利风格动画)

需求:A 同学是一名设计师,想给客户做一款“品牌元素飘动”的海报动画,以便在朋友圈传播。

我们选择了 P5.js 路线。Claude 生成了一段 50 行的 P5.js 代码,使得十多个品牌主图形以不规则贝塞尔曲线运动,背景是纯色渐变。保存为 HTML 后,A 同学在浏览器打开,直接用屏幕录制软件输出成 10 秒的短视频。效果非常惊艳,客户当场确认。

关键提示词:“写一个 HTML 文件,使用 p5.js 库,在 1080x1920 画布上让一组品牌 logo 文字和图形做轻柔的浮游运动,运动轨迹为三角函数叠加,透明度 80%,背景从浅粉渐变到浅蓝。” 这里必须用手机竖屏尺寸 1080x1920,因为最终是发朋友圈。另外,为了让文字边缘更平滑,记得在代码里开启pixelDensity(2),否则手机上看会有毛边。

3.4 案例四:教程视频的章节自动标记

需求:某讲师录了一节 45 分钟的编程课,想生成带章节锚点的视频目录,方便学生跳转。

我们用 script automation 和 FFmpeg 解决。Claude 给出了一个 Python 脚本,读取视频音轨和配套的 PPT 屏幕录制,通过比对静音段自动识别章节切换点,同时提取对应时间点的压缩截图作为章节预览图。脚本最终输出一个 JSON 文件和一个带 chapter 信息的 mp4。

提示词核心:“分析 long_video.mp4,用 ffmpeg 的 silencedetect 检测静音,找出 15-25 秒之间的静音段作为章节分割点。然后使用 scene detection 找出 PPT 翻页的关键帧,两者对齐作为章节起始,并生成一个 JSON 映射表。”

实测过程中要特别小心静音阈值设置,太高会把正常停顿也切掉,太低又检测不到切换。我让 Claude 调整了好几次,最后找到 -30dB 这个经验值,并且最小静音时长设为 1.2 秒,效果才稳定。

3.5 案例五:教育培训机构的批量开场片头制作

需求:某培训机构有 200 位老师,每位都需要一条带自己名字的定制片头,用于课程上线。用剪辑软件手动加名字不现实,必须全部自动化。

Claude 被要求生成一个 Python 脚本,读取一个 excel 名单,并用 Pillow 库生成不同名字的开场图,再用 FFmpeg 把中文名字文字和背景音效合成为 5 秒短片。提示词:

读取 teacher_names.xlsx,为每个教师生成一个 1920x1080 的 PNG 图片,背景为品牌蓝,正中偏上显示教师姓名,字体为思源宋体 48 号,下方显示“金牌讲师”头衔。然后批量用 FFmpeg 将图片拼接为 5 秒 30fps 视频,背景音乐用同一个 audio.mp3 轨道。

这个案例极大的提升了效率,200 条视频不到半小时全部生成。核心心得是:尽量避免用复杂特效,否则单条视频渲染时间会成倍增长。批量任务要把所有参数统一,用固定模板是最高效的。

4. 可复用提示词框架:我总结的万能模板

很多人问“为什么我给 Claude 写的提示词运行效果不好?”绝大多数原因是提示词含糊、没有给上下文、或者参数不明确。经过大量测试,我总结了一套特别适合“写代码做视频”场景的提示词框架,分四层结构使用。

4.1 第一层:角色与目标设定

先让 Claude 明白它在扮演什么角色。这一段我通常写“你是一名资深视频处理专家,精通 Python、JavaScript 和 FFmpeg。请根据以下需求编写可直接运行的代码。”这种方式能大幅提升生成代码的质量,因为模型会更倾向于输出完整、符合专业人士习惯的格式。

4.2 第二层:输入与输出约束

明确输入什么、输出什么。比如文件路径、格式、分辨率、帧率、编码器、语言。我一般会给出一个示例:“输入为 input_video.mp4(1080p,每秒 25 帧),输出为 output_video.mp4(H.264 编码,重采样为 30fps)。”强烈建议把所有文件路径参数都用假定的占位符写清楚,并说明是否包含音频。

4.3 第三层:执行步骤拆解

把大任务拆成小步骤,让 Claude 逐步生成。比如“第一步:加载视频并裁剪;第二步:检测静音段;第三步:添加字幕;第四步:导出保存”。每步之间用自然语言连接。这样生成的代码可读性高,出了问题也知道在哪一段修改。

4.4 第四层:质量与错误控制

提示词一定要包含“请添加合理的错误处理,比如文件不存在时打印警告并跳过,以及包含详细的中文注释”。这样生成的脚本不容易在跑数据时突然崩溃。我也常加一条“请优先使用标准库和非过时的第三方库,避免依赖未安装的包”,免得在环境搭建上折腾太大。

一个可以直接抄的提示词示例:

你是一名视频自动化专家,请写一个 Python 脚本。输入:video_folder 下所有 MP4 视频,输出:把每个视频长度裁切成 10 秒以内的片段,并在每个片段左下角加上一个半透明的时间戳文本。请使用 moviepy 处理,并加入 try-except 异常处理,生成代码要包含一段如何在终端运行的说明。

这个模板我迭代到第 15 版后,基本可以做到“改路径就能用”。只要掌握这个语感“角色-输入-步骤-错误控制”,就能应付绝大多数视频制作需求。

5. 避坑指南与经验分享

用 Claude 写代码做视频,整体体验很好,但坑也不少。这节我重点分享最典型的三个问题和我的独家解决技巧。

5.1 常见问题一:默认字体导致中文乱码

很多视频场景都要添加中文文字,但 Claude 生成的代码默认用的 Arial 或 Helvetica,这绝对会导致中文显示为方块。解决办法是在提示词里明确指定你机器上的中文字体路径或名称,例如“使用系统中文字体 Noto Sans CJK SC”。如果不知道字体在哪儿,可以先用fc-list :lang=zh命令查看。

5.2 常见问题二:视频尺寸、帧率不匹配导致卡顿

当视频由多个素材拼接时,如果素材的分辨率或帧率不一致,FFmpeg 或 MoviePy 常常处理错误或干脆输出损坏的文件。建议在提示词第一轮就明确“所有视频统一缩放为 1920x1080,帧率重采样为 30fps”。不要信任源视频本身的属性,先统一再做后续处理。

5.3 常见问题三:编码与音频通道出错

例如需要保留立体声音频时,MoviePy 默认可能只保留单声道;或者输出 H.264 时少了libx264库。提示词里最好直接写“音轨保留双声道,视频编码器用 libx264,音频编码器用 aac”。否则跑完才发现没声音或音质差,又得重做。

最后再分享一个小技巧:拿到 Claude 生成的代码后,不要急着全量跑,先丢一小段测试视频试跑。这是我踩过几次坑之后总结出来的经验,可以帮你快速定位问题,同时避免浪费大量处理时间在错误的数据上。每次我接到新任务,第一件事就是把文件路径替换成一个小测试目录,哪怕只有 2 秒素材,也足以验证整条流水线是否正确。然后再放心处理真实素材。这套思路配合上面的提示词框架,基本能解决 90% 的视频自动化需求。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进