Claude Code 做视频实战:从对话出片到批量自动化流水线

📅 发布时间:2026/9/28 5:14:23
Claude Code 做视频实战:从对话出片到批量自动化流水线
1. 别误读能直接做视频——它到底把什么自动化了最近两天Claude Code 现在能直接做视频了这个说法在好几个群里被转发不少人第一反应是Anthropic 是不是把剪映和 PR 直接塞进终端里了或者 Claude 终于会渲染视频了我试完第一轮之后可以明确说理解跑偏了。Claude Code 做视频本质上是把写代码做视频这条链路全部搬进了对话里——你只需要描述需求它完成工程拆分、素材处理、写脚本、改脚本、跑脚本、根据报错反复迭代最后在终端里把 mp4 交给你。中间不需要你手动打开任何剪辑软件也不需要你亲自调试哪怕一行代码。所以叫直接做视频指的是人这一层被极简了不是机器凭空多出了一个渲染引擎。这个能力适合谁如果你是个独立开发者、自媒体运营、电商运营、搞自动化办公的人哪怕完全不懂剪辑但只要有一台能跑 Node.js 的电脑就能用自然语言批量生产视频。传统剪辑软件解决的是手工操作效率问题Claude Code 解决的是需求到成片的工程链路问题。前者是手艺活后者是流水线。不过也别指望它是万能的。它做不了复杂的 MG 动画调不了五彩斑斓的黑更没法把一个没素材的人变出素材来。它真正的强项是结构化视频图文快闪、字幕压制、视频拼接、转码裁剪、逐帧动画、批量出片。这些恰恰是日常运营里最消耗时间、又最适合程序化的活。我自己的一个例子给合作方做一条 30 秒的课程宣传视频要求 6 张配图、每屏一句口播文案、结尾带二维码和联系方式。从起 prompt 到拿到成品大约 26 分钟其中有 15 分钟是在等它自己排查一个字体渲染问题。换成手工在剪辑软件里做光卡字幕对时间轴就得半小时往上走而且改一个文案就要从头对一遍。2. 视频能力的底层原理为什么编码智能体能出片我先把结论放这儿Claude Code 能做视频是因为视频本身在工程上就是图片序列加时间轴加音频轨道的组合而这些元素全部可以用代码来编排。智能体只是把这个编排过程自动化了。2.1 视频制作的工程化拆解任何一条短视频拆开看无非几层画面层静态图片、动态画面、视频片段本质是帧序列时间层每个画面在什么时间出现、持续多久、怎么转场字幕层文字内容、字号、字体、位置、出现时间音频层背景音乐、旁白、音效各自有入点和出点编码层最后 ffmpeg 把上面所有东西合成一个 H.264 的 mp4传统剪辑软件把这些层做成时间轴让你拖拽而代码方案Python 的 moviepy、命令行工具 ffmpeg是把这些层写成可执行逻辑。Claude Code 做的事就是理解你用自然语言描述的需求把它翻译成上面这套逻辑代码然后执行给你看结果。2.2 智能体在工作流里充当的角色一个典型的对话出片流程里Claude Code 会依次扮演这些角色产品经理把你一句做一个简单的图文视频拆解成需要裁剪素材、需要处理转场、需要加字幕、需要压制音频后端工程师写出 Python 脚本用 moviepy 编排每个素材的时长和位置运维检查环境里有没有 ffmpeg、有没有依赖库没有就装测试运行脚本发现字体缺失或者字幕溢出然后修改代码重新跑验收员最后用 ffprobe 检查成片的分辨率、时长、码率是否符合预期这就是为什么它敢称直接做视频——全部环节都由同一个智能体包圆了你只需要在关键时刻说继续这里不对字幕换白底。2.3 能直接跑的视频类型清单实测下来下面几类视频 Claude Code 可以稳定产出我对每类都试过视频类型实现方式出片质量适用场景图文快闪Pillow 生成画面 moviepy ImageClip 按时间排列高产品介绍、活动宣传文字字幕压制ffmpeg subtitles filter 烧录或软字幕高课程剪辑、口播视频多段素材拼接moviepy concatenate_videoclips中高混剪、片头片尾合并逐帧动画OpenCV 逐帧处理后再编码中简单动画、动态图表批量模板出片Python 脚本循环 参数代入高批量生成卡片视频这里面最稳的是图文快闪和字幕压制因为它们的逻辑足够简单脚本出错概率低而且出片效果直接可控。逐帧动画对性能要求高1080p 下几十秒的视频在普通笔记本上渲染要等很久建议先拿短视频试。3. 环境准备装好、连上、把活儿分清楚在做视频之前你得先把 Claude Code 本身跑起来。这个步骤我踩过的坑不少尤其是从零开始配置环境的时候所以这里把一套稳妥路径写完整。3.1 安装 Claude Code前提是电脑上有 Node.js 18 以上的运行时没有的话先去官网装 LTS 版本然后终端执行node -v # 确认版本低于 18 的先去升级安装 Claude Code 本体用 npm 全局安装就可以npm install -g anthropic-ai/claude-code装完验证claude --versionWindows 下建议用 WSL 里的 Ubuntu 跑能避开很多路径和权限问题如果你是在 Windows 原生环境Git Bash 也能用但后续 ffmpeg 路径配置稍微麻烦一点。macOS 直接终端跑就行没什么特殊要求。如果你是 Ubuntu/Debian 系遇到 node 版本太低或 npm 装不上的情况先检查一下是不是没装 build-essentialsudo apt update sudo apt install -y build-essential3.2 认证与模型接入安装完之后直接运行claude会进入登录流程。正常情况下它会让你在浏览器里完成账号授权。如果你打算走 API 方式比如在服务器或者 CI 环境里跑那就设置环境变量export ANTHROPIC_API_KEY你的key另外现在很多第三方模型服务也兼容 Claude Code 的接入方式比如 DeepSeek 提供 Anthropic 兼容端点。这类配置一般是这样export ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic export ANTHROPIC_API_KEY你的DeepSeek key设置完后跑claude确认能正常对话就行。这类兼容端点好处是成本低、国内访问稳定缺点是模型指令遵循能力和官方的 Claude 模型有差距做复杂视频项目时偶尔要多交代几遍。3.3 VSCode 集成让操作界面顺手一点虽然 Claude Code 可以在纯终端里跑但 VSCode 集成会让整个操作体验上一个台阶尤其是要来回查看生成的文件、对比脚本输出的时候。在 VSCode 扩展市场搜 Claude Code安装后按CmdShiftPmacOS或CtrlShiftPWindows输入 Claude Code回车就会在集成终端里启动会话。它会把对话、文件树、终端输出整合在一个面板里改代码、看报错都不用切窗口。做视频项目时我强烈建议用 VSCode 而不是裸终端因为你会频繁打开生成的 mp4 文件去检查效果。VSCode 内置的媒体预览可以直接看视频省去来回切换播放器的步骤。3.4 用 CLAUDE.md 立规矩这是很多人忽略的一步。Claude Code 会读取项目目录下的CLAUDE.md作为长期记忆你可以把视频项目的规矩写进去。比如我自己的模板# 视频项目规范 - 所有素材放在 assets/ 目录输出统一放在 output/ 目录 - 视频标准1920x108030fpsH.264 编码AAC 音频 - 优先使用 Python moviepy 处理视频ffmpeg 用于压制和转码 - 字幕默认使用思源黑体路径 /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc - 生成脚本需要带命令行参数允许覆盖输出文件名有了这个文件每次会话开始 Claude Code 会自动加载这些约束不用每次重新交代一遍。这能大幅减少它自由发挥导致的返工。4. 第一次实操用对话产出一条 30 秒图文视频环境搞定了我们直接来一条小的。目标一条 30 秒图文视频6 张图片每张停留 5 秒配上字幕和背景音乐最后压成 1080p 的 mp4。4.1 准备素材先建一个工作目录和素材文件夹mkdir video-demo cd video-demo mkdir -p assets output往 assets 里放 6 张图片可以是网上下载的、AI 生成的或者干脆自己截屏。如果你手头一张图都没有也没关系让 Claude Code 用 Pillow 现场生成 6 张带文字的占位图claude然后在会话里直接说帮我在 assets 目录里生成 6 张 1280x720 的占位图编号 img_1.png 到 img_6.png每张用不同背景色中间写上第X屏的文字。然后用 moviepy 做一个 30 秒的图文视频每张图片展示 5 秒图片之间用淡入淡出转场给每张图片配上底部字幕字幕文案我提供给你最后放到 output/ 目录文件名 demo_v1.mp4。这段指令信息量很足Claude Code 会依次安装缺失依赖Pillow、moviepy、生成占位图、写视频脚本、运行、导出。整个过程可能耗时几分钟中途会有命令执行确认直接回车放行。4.2 它背后到底在跑什么很多人看它执行会一头雾水我解释一下关键的代码逻辑。典型的 moviepy 图文快闪脚本核心部分长这样from moviepy.editor import * from PIL import Image # 生成占位图 for i in range(1, 7): img Image.new(RGB, (1280, 720), colors[i]) # 在图片上绘制文字 # 保存到 assets/img_{i}.png # 读取图片生成视频片段 clips [] for i in range(1, 7): clip ImageClip(fassets/img_{i}.png).set_duration(5) clip clip.crossfadein(0.5).crossfadeout(0.5) # 淡入淡出 clips.append(clip) video concatenate_videoclips(clips, methodcompose) video video.set_audio(AudioFileClip(assets/music.mp3).subclip(0, 30)) video.write_videofile( output/demo_v1.mp4, fps30, codeclibx264, audio_codecaac )它做的事情和手工剪辑完全一样只是全部交给代码。Crossfade 控制转场时长set_duration 控制每张图的停留秒数最后统一编码输出。你只需要检查结果是否符合预期。4.3 第一次出片后的验收清单视频出来后让 Claude Code 帮你自动验收而不是打开播放器看一遍就完事。可以直接在会话里说用 ffprobe 检查 output/demo_v1.mp4确认分辨率、时长、帧率、视频编码、音频编码再抽第 3 秒和第 15 秒的帧确认画面内容正常。它通常会执行一串命令最后给你一张反馈表。如果时长不是 30 秒整、分辨率不对、或者音频缺失它会自己修脚本重新输出。这里值得一提的是验收这一步必须做很多脚本一次跑通但参数遗漏比如忘记加音频轨。让它用工具检查比自己肉眼看靠谱得多。4.4 让成片真正有网感的微调基础版出来之后通常还得打磨细节。我会让它做这几类微调字幕加一层半透明黑底避免文字和背景糊在一起每张图持续时间调整配合口播语速背景音乐在最后 2 秒淡出避免戛然而止结尾追加 1 秒黑场加公众号二维码画面这些微调全部用自然语言提出就行比如最后加一屏二维码停留 3 秒压在黑底上。Claude Code 会读之前的脚本在合适的位置插入新逻辑重新渲染。这种迭代式出片是它对手工剪辑方式最大的优势——改需求成本极低。5. 进阶玩法把出片变成一条自动化流水线跑通第一支视频之后你会发现最值钱的方向不是一次聊出一个视频而是让它长出一套流水线以后每次只需要换素材、换文案就能批量产出成片。5.1 素材自动获取与预处理让视频项目摆脱手动找素材的瓶颈通常用这几个手段Pillow 直接生成封面和标题图如果你有标准模板比如课程封面、营销海报可以用代码把文字动态填进去批量生成几百张都不费力OpenCV 从长视频截取关键帧直播回放、课程录像这类素材可以让脚本每隔 10 秒抽一帧画面再结合图像清晰度筛选自动选出可用镜头requests 抓取公共图片源需要大量配图时可以用合法授权的图库 API 按关键词批量下载存进素材库这些预处理逻辑可以让 Claude Code 一次性写好之后每次只更新素材目录即可。比如我做一个系列课程宣传视频时每次只需要把新课程的 3 张配图放进 assets然后说用上次的模板换素材输出新视频省去全部重复工作。5.2 字幕对齐的工程化处理字幕是最容易翻车的环节核心问题是中文字幕需要字体支持且时间轴要和画面匹配。实操中我推荐两条路径。第一条是软字幕用 ffmpeg 把 SRT 字幕嵌入 MP4 作为单独轨道代码生成时间轴后压制ffmpeg -i input.mp4 -i subtitles.srt -c:v libx264 -c:a aac -c:s mov_text output.mp4第二条是烧录硬字幕Claude Code 更倾向于直接用 moviepy 的 TextClip 渲染到画面上。如果你走这条路特别注意 Linux 服务器上字体问题——默认字体经常不包含中文字形结果就是字幕全是方块。解决办法是给 TextClip 明确指定中文字体路径比如from moviepy.editor import TextClip TextClip(你好, font/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc)检查系统里有哪些字体fc-list :langzh如果没有中文字体Ubuntu 下安装sudo apt install -y fonts-noto-cjk5.3 批量生产一次出十条视频流水线的最后一步是批量。让 Claude Code 写一个主控脚本读取一个 CSV里面是每条视频的文案和素材映射循环调用视频生成函数一次性输出 10 条不同文案的视频claude对话里这样说写一个 batch_generate.py读取 scripts.csv每一行包含 id、title、bg_image、output_name 四个字段循环调用视频生成函数把结果输出到 output/batch/ 目录打印每一条的执行状态。它会自动把之前的视频脚本重构成可复用的函数然后跑 CSV 里的每行记录。这种玩法尤其适合电商展示、知识付费课程宣传这类内容密集型场景一晚上产出几十条基础视频第二天人工挑几条最顺眼的再优化。5.4 多模态回放让 Claude Code 理解已有视频除了生成Claude Code 现在还能反过来看视频。把一段已有视频的若干关键帧抽出来配合描述让它理解内容然后写总结、改分镜、或者重新配字幕。典型的操作用 ffmpeg 把 assets/long_video.mp4 每 5 秒抽一帧放到 frames/ 目录然后根据这些帧帮我总结视频大致内容并建议如何切成三个短视频片段。抽帧命令一般是这样的ffmpeg -i assets/long_video.mp4 -vf fps1/5 frames/frame_%03d.png它把帧读进来后能根据画面内容告诉你有几个场景、每个场景大概在什么时间位置、适合怎么拆剪。虽然不如人眼精确但作为粗剪参考已经足够高效。6. 踩坑实录我遇到的 6 个典型问题与排查思路最后把这些天实操中最容易卡住人的问题列出来。每条我都给出从现象到根因的排查链路方便你复现思路。6.1 渲染时报错找不到 ffmpeg现象moviepy 或 ffmpeg 命令直接提示 command not found。排查链路先确认 ffmpeg 是否真的存在——执行ffmpeg -version。如果确实没有macOS 用 Homebrewbrew install ffmpegUbuntu 用sudo apt install -y ffmpeg。装完再跑ffmpeg -version验证。这个问题的坑在于 moviepy 有时候会用到它自带的 ffmpeg 二进制通过 imageio-ffmpeg 提供和你系统装的不冲突但版本可能更旧遇到编码参数不识别时优先升级系统 ffmpeg 而不是折腾 moviepy 内部。6.2 中文字幕全部显示成方块现象视频出来了但字幕全是方框。排查链路这是典型的字体缺失或未指定字体。在脚本里必须显式指定中文字体路径不能靠默认字体。先fc-list :langzh看系统里到底有哪些中文字体把路径写进 TextClip 的 font 参数。还有一个隐蔽问题即使指定了字体moviepy 在某些平台对 TTC 字体文件支持不稳定如果持续出问题建议把字体转成单个 TTF 文件再引用。6.3 视频文件巨大动不动超过几百 MB现象30 秒视频导出后 500 MB根本没法直接用。排查链路编码参数问题默认无损或高码率输出。让 Claude Code 改编码参数视频用 H.264、CRF 控制在 20-23音频用 AAC 128k 就足够了ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4CRF 值越小画质越好体积越大日常网络传播 23 是性价比比较高的值。追求更小的体积可以上 28但画面复杂场景会出现明显压缩痕迹。6.4 上下文被塞满会话越聊越呆现象项目做到一半Claude Code 开始遗忘之前的命令和约束回答质量明显下降。排查链路短视频项目因为要反复看日志、跑命令上下文膨胀非常快。最粗暴的方法是/clear清空当前会话然后在 CLAUDE.md 里把关键约束写全重新开会话。如果项目特别复杂让它在docs/目录下维护一份项目状态备忘每次会话开始时先让模型读这个文件。别指望 1M 上下文就能无脑堆——输入长了之后模型理解和响应速度都会下降而且 token 成本高得肉疼。6.5 用了多个模型服务切换后效果跳变现象同一个提示词在 DeepSeek 端点上跑得很好换个模型服务之后脚本质量崩了。排查链路不同模型对指令的遵循能力差异很大切换之后别直接上大活。如果用了类似 CCSwitch 这类工具在多模型之间切换切换后先跑一个小样验证能力。另外把复杂需求拆成小步走的提示词比如先让它写分镜脚本你确认后再生成视频代码比一口气交付要稳得多。我在实践中的策略是官方 Claude 模型负责最复杂的一次性成片第三方兼容模型负责批量重复劳动各用其所长。6.6 权限放太开它把项目目录搞乱了现象让它执行命令时没仔细看结果它删掉了一个素材文件夹或者在项目根目录乱建了一堆临时文件。排查链路Claude Code 在执行高危操作前会弹出确认别习惯性一路回车。比较稳妥的做法是在 CLAUDE.md 里写死所有生成文件和临时文件统一放 output/ 和 tmp/不允许修改 assets/ 以外的文件。如果追求自动化跑批、不想频繁确认可以用--dangerously-skip-permissions参数但只建议在隔离环境里用比如专门的构建服务器本地开发环境就别图省事了。最后补一句实在话和 Claude Code 配合做视频我认为最核心的心得是不要把它当成一个全知全能的剪辑师而是当成一个耐性极好、可以无限返工的程序员。你要给它清晰的验收标准给它素材目录和输出目录的边界让它在这个框架里自己折腾。它最值钱的点不是第一次就做对而是你提出任何修改意见它都能迅速改完重新渲染。建议从一条 10 秒的图文视频开始玩素材就用 3 张截图、一段免费音乐把整条链路跑通了再往上加复杂度。跑通一次之后后面所有视频项目就只是换素材、换文案的重复劳动了。如果你是在服务器上跑批量的场景不妨再研究一下把生成逻辑封装成 HTTP 服务接上自动化工具那已经是另一个层面的效率提升了。