
1. 从video-use这个模糊标题说起它到底想解决什么问题第一次看到video-use这个标题加上项目正文和关键词都是空的我脑子里第一反应是这大概率是一个围绕视频处理能力怎么被调用的工程化项目。结合热搜词里高频出现的 Claude Code、ffmpeg、ElevenLabs、Remotion 这几个词基本可以勾勒出它的轮廓——用 Claude Code 作为编排大脑ffmpeg 做底层音视频处理ElevenLabs 负责语音合成Remotion 负责用代码渲染视频画面最终把视频制作这件事变成一套可编程、可复用、可自动化的流程。说白了传统做视频是打开剪辑软件拖时间线、切片段、配音、加字幕全靠手工。而 video-use 这类项目想干的事是让你用自然语言或者一段脚本把我要做一个什么样的视频描述清楚剩下的交给工具链自动完成。这个思路对做内容批量生产、做产品演示视频、做数据可视化视频的人来说价值非常大。我先把话说在前面这篇文章不是官方文档的翻译而是我基于这套工具链的实际使用经验把video-use背后涉及的核心技术点、选型逻辑、踩坑记录和可复现的操作步骤完整拆一遍。适合两类人看——一类是想用 AI 工具链批量做视频的内容创作者另一类是熟悉命令行、想把这套流程工程化的开发者。哪怕你之前没碰过 ffmpeg我也会把关键命令和参数讲清楚让你能照着跑起来。需要说明的是由于原始项目正文是空的下面涉及的具体实现细节一部分来自这套工具链的通用实践一部分是我在实际项目中验证过的方案。我会明确标注哪些是常见做法哪些是我的经验补充避免让你误以为所有细节都是项目原文写死的。2. 拆解 video-use 的技术栈四个组件各自扮演什么角色2.1 Claude Code 是导演不是摄像很多人第一次接触 Claude Code会以为它是个写代码的工具跟视频没关系。但在 video-use 这套流程里Claude Code 扮演的是编排层orchestration layer的角色。它负责理解你的意图然后决定调用哪些命令、按什么顺序执行、参数怎么传。举个具体例子。你说把这段 10 分钟录屏里所有停顿超过 2 秒的片段剪掉然后配一段中文旁白Claude Code 要做的是先分析你的需求拆成检测静音段裁剪视频生成旁白文本调用语音合成混音这几个子任务再分别生成对应的 ffmpeg 命令和 API 调用。它本身不处理视频但它决定了整个流水线怎么跑。这里有个关键认知Claude Code 的能力边界取决于你给它的工具描述和上下文。如果你只告诉它有个 ffmpeg 命令它可能只会做简单裁剪如果你把 ffmpeg 的常用滤镜、ElevenLabs 的 API 文档、Remotion 的组件规范都喂给它它就能编排复杂流程。所以 video-use 这类项目的核心竞争力往往不在代码本身而在于怎么把工具能力清晰地暴露给模型。2.2 ffmpeg 是真正干活的摄像剪辑混音ffmpeg 是整个链条里最底层、最不可替代的一环。剪辑、转码、抽帧、混音、加字幕、推流全靠它。它的强大之处在于命令行参数极其灵活但这也是它让人头疼的地方——参数组合太多一个-map写错就导致音视频不同步。在 video-use 场景里ffmpeg 主要承担四类任务素材预处理把各种格式的输入统一转成中间格式比如统一成 H.264 AAC 的 mp4避免后续处理时编码不兼容。片段裁剪与拼接根据时间戳切片段再用 concat 协议拼起来。音频处理提取音轨、降噪、混音、调整音量。字幕与叠加烧录字幕、叠加水印、加转场。我实测下来ffmpeg 处理 1080p 视频用-c:v libx264 -preset medium -crf 23这套参数速度和画质的平衡最好。如果追求速度可以换-preset fast但文件会大一些。这个取舍后面会详细讲。2.3 ElevenLabs 解决没有真人配音的问题视频做好画面之后旁白怎么办传统做法是找配音演员成本高、周期长。ElevenLabs 这类语音合成服务的价值就在于你给它一段文本它返回一段听起来相当自然的语音。在 video-use 流程里它通常被放在生成旁白音轨这一步。实际使用中要注意几个点一是文本要提前做断句和标点处理否则合成出来的语气会很平二是生成的音频采样率要和视频音轨对齐常见是 44.1kHz 或 48kHz不对齐会导致混音时出现杂音三是长文本要分段合成再拼接单次请求太长容易失败或者语气漂移。2.4 Remotion 让视频画面变成可编程的 React 组件Remotion 的思路很特别它把视频的每一帧当成一个 React 组件的渲染结果。你写的是 JSX它帮你逐帧渲染成视频。这对做数据可视化视频、动态图表、代码演示动画特别友好——因为这些内容本来就是用代码生成的用 Remotion 可以直接复用。在 video-use 里Remotion 通常负责程序化生成的那部分画面比如片头动画、数据图表、字幕条。而 ffmpeg 负责把这些生成的片段和实拍素材、旁白音轨合成最终成片。两者是互补关系不是替代关系。组件角色典型任务是否可替代Claude Code编排调度理解意图、生成命令、串联流程可用其他编排方式替代ffmpeg底层处理裁剪、转码、混音、字幕几乎不可替代ElevenLabs语音合成生成旁白音轨可用其他 TTS 替代Remotion程序化画面动画、图表、字幕条可用 AE 模板替代但失去编程性3. 环境搭建从零把这条工具链跑起来3.1 ffmpeg 安装别用系统自带的老版本这一步看似简单但坑最多。很多人直接apt install ffmpeg或者用系统自带的版本结果发现某些滤镜不支持、编码器缺失。我的建议是永远用官方或第三方编译的完整版。Windows 用户去 ffmpeg 官网下载ffmpeg-master-latest-win64-gpl.zip注意选 gpl 版本包含更多编码器解压后把bin目录加到系统 PATH。验证方法是打开新的命令行窗口输入ffmpeg -version能看到版本号和编译配置就对了。macOS 用户用 Homebrew 最省事brew install ffmpeg。但要注意默认安装可能不带某些非自由编码器如果需要处理特定格式得加--with-参数重新编译或者用brew install ffmpeg --with-fdk-aac这类方式。Linux 用户如果追求稳定可以用apt install ffmpeg但版本通常偏旧。想要新版本推荐用静态编译包或者自己编译。自己编译的话./configure --enable-gpl --enable-libx264 --enable-libx265 --enable-libfdk-aac这套配置覆盖了绝大多数场景。提示安装完成后一定要用ffmpeg -encoders和ffmpeg -filters检查你需要的编码器和滤镜是否存在。我踩过一次坑系统自带的 ffmpeg 没有libx264导致所有 H.264 编码命令全部报错排查了半天才发现是安装版本的问题。3.2 Claude Code 的安装与配置Claude Code 的安装方式取决于你的使用场景。命令行版本通常通过 npm 安装npm install -g anthropic-ai/claude-code。安装完成后在项目目录下运行claude就能启动交互界面。VS Code 用户可以在扩展市场搜索 Claude Code 插件安装后在设置里填入 API 密钥。桌面版客户端则适合不习惯命令行的用户安装后登录账号即可。配置环节有几个关键点API 密钥管理不要把密钥硬编码在脚本里用环境变量ANTHROPIC_API_KEY传入。工作目录Claude Code 默认只能访问当前工作目录及其子目录把项目相关文件放在同一个目录树下避免它找不到文件。工具权限首次运行时它会询问是否允许执行 shell 命令建议在受控环境下允许否则它无法调用 ffmpeg。如果你所在地区无法直接使用某些服务这是客观存在的限制需要根据实际情况选择合规的替代方案这里不展开。3.3 ElevenLabs 与 Remotion 的准备ElevenLabs 需要注册账号获取 API Key然后在代码里通过 HTTP 请求调用。它的 Python SDK 用起来最顺手pip install elevenlabs然后几行代码就能合成语音。Remotion 是 Node.js 生态的工具初始化项目用npx create-videolatest它会生成一个包含示例组件的项目结构。核心概念是Composition和Sequence——前者定义视频的尺寸、帧率、时长后者定义某个片段在时间轴上的位置。渲染命令是npx remotion render输出 mp4。这里有个容易忽略的点Remotion 渲染依赖本地的 Chromium首次运行会自动下载。如果网络环境受限需要提前配置好镜像或者手动指定浏览器路径否则会卡在下载环节。4. 把流程串起来一个完整的 video-use 实操案例4.1 需求定义把模糊想法变成可执行任务假设我要做一个 3 分钟的产品介绍视频素材包括一段 5 分钟的录屏、一份产品文案、几张产品截图。目标是剪掉录屏里的冗余部分配上 AI 旁白在关键节点叠加截图最后输出 1080p 的 mp4。这个需求如果直接丢给剪辑软件大概要折腾一两个小时。用 video-use 的思路我把它拆成可执行的任务清单用 ffmpeg 检测录屏中的静音段生成裁剪时间点。按时间点裁剪录屏拼接成精简版。把产品文案分段调用 ElevenLabs 合成旁白音轨。用 Remotion 制作片头动画和截图展示片段。用 ffmpeg 把精简录屏、旁白、Remotion 片段合成最终视频。这个拆解过程本身就是 Claude Code 最擅长的事——你把需求描述给它它帮你生成任务清单和对应的命令。但前提是你要把每个工具的用法讲清楚否则它生成的命令可能跑不通。4.2 静音检测与自动裁剪ffmpeg 的 silencedetect 滤镜这是整个流程里最实用的一步。ffmpeg 有个silencedetect滤镜能检测音频中低于某个阈值的片段并输出时间戳。ffmpeg -i input.mp4 -af silencedetectnoise-30dB:d2 -f null - 21 | grep silence参数解释noise-30dB是静音阈值低于这个音量算静音d2是持续时间超过 2 秒才算一段静音。输出会包含silence_start和silence_end两个时间点。拿到这些时间点后用-ss和-to参数裁剪非静音片段再用 concat 拼接。这里有个坑直接裁剪再拼接容易出现音视频不同步因为关键帧位置不一定在裁剪点上。稳妥的做法是先统一转码成相同参数再拼接# 裁剪单个片段 ffmpeg -ss 00:00:10 -to 00:00:25 -i input.mp4 -c:v libx264 -c:a aac -avoid_negative_ts make_zero clip1.mp4 # 拼接多个片段 ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4filelist.txt里每行写file clip1.mp4。-c copy表示不重新编码速度快但要求所有片段编码参数一致。如果不一致去掉-c copy让它重新编码。4.3 旁白合成与音画对齐ElevenLabs 合成旁白后得到的是一段独立的音频文件。要把它和视频对齐有两种思路旁白驱动画面先确定旁白总时长再调整视频片段长度去匹配。适合旁白是主线的情况。画面驱动旁白先确定视频节奏再把旁白切成对应长度的片段插入。适合画面是主线的情况。我一般用第一种因为旁白的语速和停顿更自然强行拉伸会显得机械。具体做法是合成旁白后用ffprobe获取时长然后计算每个视频片段应该占多长用setpts滤镜调整播放速度。# 获取音频时长 ffprobe -v error -show_entries formatduration -of defaultnoprint_wrappers1:nokey1 voice.mp3 # 调整视频速度匹配音频示例加速1.2倍 ffmpeg -i video.mp4 -filter:v setptsPTS/1.2 -filter:a atempo1.2 output.mp4atempo的范围是 0.5 到 2.0超出范围要拆成多级。比如要 3 倍速就写atempo1.5,atempo2.0。4.4 Remotion 片段与 ffmpeg 成片的合成Remotion 渲染出来的片段是标准 mp4和 ffmpeg 处理的其他素材没有本质区别。合成时用concat或者overlay滤镜。如果是片头这种顺序播放的片段用 concat 拼接即可。如果是截图叠加在录屏上这种画中画效果用 overlayffmpeg -i main.mp4 -i screenshot.png -filter_complex [0:v][1:v]overlayx100:y100:enablebetween(t,10,20) output.mp4enablebetween(t,10,20)表示这个叠加只在第 10 到 20 秒出现。这个技巧在做关键节点弹出截图时特别好用不需要真的把截图做成视频片段。5. 踩坑记录那些文档里不会写的细节5.1 ffmpeg 参数顺序的坑ffmpeg 的参数位置是有讲究的。-ss放在-i前面是快速定位基于关键帧可能不准放在-i后面是精确裁剪解码后再定位慢但准。我一开始不知道这个区别用快速定位裁剪出来的片段总是差几秒排查了很久才发现是参数位置的问题。# 快速但不精确 ffmpeg -ss 00:01:00 -i input.mp4 -c copy output.mp4 # 精确但较慢 ffmpeg -i input.mp4 -ss 00:01:00 -c copy output.mp4做 video-use 这种需要精确对齐旁白的场景一定要用精确模式。5.2 编码器不兼容导致的invalid argument热搜词里有ffmpeg invalid argument这个报错太常见了。原因通常是你指定的编码器在当前 ffmpeg 版本里不存在或者参数组合不合法。比如用了-c:v libx265但安装的 ffmpeg 没编译 x265 支持。排查方法是先ffmpeg -encoders | grep 265看有没有这个编码器没有就换libx264或者重新安装完整版。另一个常见原因是分辨率参数写错比如-s 1920x1080写成了-s 1920*1080星号在 shell 里会被解析成通配符。5.3 音频采样率不匹配导致的杂音ElevenLabs 默认输出 44.1kHz 的 mp3而很多视频素材是 48kHz。直接混音会出现轻微的杂音或者音调偏移。解决办法是在混音前统一采样率ffmpeg -i voice.mp3 -ar 48000 voice_48k.wav-ar 48000指定输出采样率。统一成 wav 格式是为了避免二次压缩损失最后混音时再编码成 aac。5.4 Remotion 渲染的帧率陷阱Remotion 默认 30fps如果你的素材是 25fps 或者 60fps直接拼接会出现卡顿或者丢帧。正确做法是在 Remotion 的Composition里把fps设成和主素材一致或者在 ffmpeg 合成时统一帧率ffmpeg -i input.mp4 -r 30 output.mp4-r 30强制输出 30fps。但要注意如果原素材是 25fps强制转 30fps 会重复帧看起来会有点顿。最好是所有素材从一开始就用相同帧率。5.5 Claude Code 生成命令的验证习惯Claude Code 生成的 ffmpeg 命令大部分时候是对的但不能盲信。我的习惯是先让它生成命令然后加-f null -做空跑测试确认没有报错再真正执行。空跑不会产生输出文件但会完整走一遍处理流程能提前发现参数错误。ffmpeg -i input.mp4 -vf scale1280:720 -f null -这个习惯帮我省了很多时间尤其是处理长视频的时候避免跑到一半才发现参数错了。6. 性能与成本批量生产视频时怎么优化6.1 ffmpeg 编码速度的取舍视频处理最耗时的环节是编码。libx264的-preset参数从ultrafast到veryslow有 9 档速度差好几倍画质和文件大小也差不少。我的经验是preset相对速度适用场景ultrafast最快中间产物、测试fast较快批量生产、对画质要求不高medium中等默认选择平衡最好slow较慢最终成片、追求画质-crf参数控制画质范围 0-51数值越小画质越好文件越大。18 接近无损23 是默认值28 开始有明显压缩痕迹。做视频号内容23 足够了。如果机器有 NVIDIA 显卡可以用h264_nvenc硬件编码速度快很多但画质略逊于同参数的libx264。批量生产时这个取舍很划算。6.2 并行处理多个视频批量做视频时串行处理太慢。可以用xargs -P并行跑多个 ffmpeg 进程ls *.mp4 | xargs -P 4 -I {} ffmpeg -i {} -c:v libx264 -preset fast -crf 23 output_{}-P 4表示同时跑 4 个进程。具体数字取决于 CPU 核心数一般设成核心数的一半到全部。注意不要设太高否则内存和磁盘 IO 会成为瓶颈反而更慢。6.3 ElevenLabs 的调用成本控制语音合成按字符计费长文本成本不低。几个省钱技巧一是提前把文案精简去掉冗余表达二是相同内容的旁白缓存起来不要重复合成三是先用短文本测试音色和语速确定后再批量合成避免返工。6.4 Remotion 渲染的优化Remotion 渲染慢主要慢在逐帧截图。可以开启--concurrency参数并行渲染数值设成 CPU 核心数。另外把复杂的动画简化、减少 DOM 层级、避免在渲染时做网络请求都能明显提速。7. 这套流程适合谁以及我实际用下来的体会video-use 这套工具链最适合的场景是需要批量、结构化生产视频的团队或个人。比如每周要出十几条产品演示视频、数据周报视频、课程讲解视频手工剪辑根本忙不过来用这套流程能把单条视频的制作时间从小时级压到分钟级。但它不是万能的。如果你的视频需要大量创意剪辑、精细调色、复杂转场那还是得用专业剪辑软件。这套流程的优势在于标准化和可复用而不是艺术性。我实际用下来最大的体会是前期把工具链搭好、把模板和脚本沉淀下来后期的边际成本极低。第一次做可能要花半天调试参数但第二次、第三次就是改改文案、换换素材几分钟就能出一条。这种一次投入、长期复用的模式才是 video-use 这类项目真正的价值所在。另外提醒一句Claude Code 生成的命令虽然大部分靠谱但涉及具体参数时最好还是自己过一遍。它有时候会用一些看起来合理但实际不存在的参数组合尤其是 ffmpeg 这种参数极其庞杂的工具。养成生成-验证-执行的习惯能少走很多弯路。