現(xiàn)了一個新思路:用 Remotion + Claude Code 像寫代碼一樣自動化生成短視頻)
1. 從剪輯時間線到 React 組件短視頻批量生產(chǎn)的真實痛點如果你做過短視頻大概率經(jīng)歷過這種循環(huán)打開剪輯軟件拖素材、對時間軸、調(diào)關(guān)鍵幀、導(dǎo)出然后第二天老板說“把品牌色換成新的再出 20 條不同文案的版本”。這時候你會發(fā)現(xiàn)傳統(tǒng)剪輯軟件里那些鼠標(biāo)拖拽出來的效果根本沒法批量復(fù)用。每換一個文案就得重新對齊一遍時間線純體力活。Remotion 這個開源工具給出的思路很直接視頻就是 React 組件時間軸就是幀數(shù)動畫就是 CSS 和 JS 的函數(shù)。你用寫網(wǎng)頁的方式寫視頻每一幀畫面由代碼決定那么“批量生成 100 條不同文案的視頻”就變成了“循環(huán) 100 次、每次換一個 props 渲染”。像素級精準(zhǔn)控制、組件復(fù)用、自動化批量產(chǎn)出這些在剪輯軟件里要靠插件和腳本勉強實現(xiàn)的能力在代碼世界里是天然存在的。但問題也在這里。Remotion 要求你懂 React、會寫 CSS 布局、理解useCurrentFrame和interpolate這些 API。對于前端開發(fā)者來說不算難對于內(nèi)容創(chuàng)作者來說門檻就高了。最近 Remotion 推出了 Agent Skills配合 Claude Code 這類編碼助手可以把“寫 Remotion 組件”這件事交給 AI 來輔助完成。你只需要用自然語言描述場景Claude Code 幫你生成組件代碼你在本地用npx remotion studio預(yù)覽滿意后npx remotion render導(dǎo)出成片。這篇文章聚焦一個具體場景用 React/CSS 組件化思維替代傳統(tǒng)剪輯軟件以 Remotion 為渲染引擎、Claude Code 輔助生成場景代碼實現(xiàn)短視頻批量產(chǎn)出。我會交付可復(fù)制的 Remotion 工程結(jié)構(gòu)、npx初始化命令、Claude Code 的接入配置以及從組件到成片的完整驗證流程。適合誰有基礎(chǔ)前端知識、想做自動化視頻產(chǎn)出的開發(fā)者或者愿意讓 AI 幫你寫代碼的內(nèi)容創(chuàng)作者。2. 前置準(zhǔn)備TaoToken 接入 Claude Code 與 Remotion 環(huán)境搭建在開始寫 Remotion 組件之前需要先把兩件事準(zhǔn)備好一個是 Remotion 的本地工程環(huán)境另一個是 Claude Code 的模型接入。Remotion 本身是 npm 包用npx就能初始化Claude Code 需要配置一個可用的模型服務(wù)端點這里我用 TaoToken 來做接入因為它提供了兼容 Anthropic 的 API 格式配置起來比較直接。先確認(rèn)本地環(huán)境。你需要 Node.js 18 以上版本npm 或 pnpm 都行。打開終端執(zhí)行node -v npm -v如果版本太低去 Node.js 官網(wǎng)下載 LTS 版本安裝。然后創(chuàng)建一個 Remotion 工程。Remotion 官方提供了腳手架命令直接運行npx create-videolatest my-video-project這個命令會問你幾個問題選擇模板我選 Blank 空白模板、是否使用 TypeScript選 Yes、包管理器選 npm。等待依賴安裝完成后進入目錄cd my-video-project npm run dev瀏覽器會自動打開http://localhost:3000你會看到一個 Remotion Studio 的界面左邊是組件列表右邊是預(yù)覽窗口。默認(rèn)模板里有一個Composition定義了視頻的寬高、幀率、時長。到這里Remotion 環(huán)境就緒。接下來配置 Claude Code 的模型接入。Claude Code 是 Anthropic 推出的終端編碼助手默認(rèn)走官方 API。如果你已經(jīng)有可用的 API Key可以直接在終端里設(shè)置環(huán)境變量。TaoToken 的 API 地址是https://taotoken.net/api兼容 Anthropic 的 Messages API 格式。在終端里執(zhí)行export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEY你的TaoToken API KeyAPI Key 可以在 TaoToken 控制臺的 API Keys 頁面創(chuàng)建地址是https://taotoken.net/console/api-keys。創(chuàng)建后復(fù)制出來替換上面的占位符。如果你用的是 Windows PowerShell把export換成$env:語法$env:ANTHROPIC_BASE_URLhttps://taotoken.net/api $env:ANTHROPIC_API_KEY你的TaoToken API Key配置完成后在終端里運行claude命令如果能看到 Claude Code 的交互界面說明接入成功。你可以先問一句“幫我寫一個 Remotion 的 Hello World 組件”測試模型是否能正常返回代碼。這里有一個細(xì)節(jié)需要注意Remotion 的 Agent Skills 需要單獨安裝。在項目根目錄執(zhí)行npx skills add remotion-dev/skills這個命令會把 Remotion 相關(guān)的技能描述文件下載到本地Claude Code 在生成代碼時會參考這些技能定義輸出的組件更符合 Remotion 的 API 規(guī)范。安裝完成后你的工程目錄里會多出一個.skills文件夾里面包含 Remotion 的組件模板、動畫函數(shù)說明、渲染配置示例。環(huán)境準(zhǔn)備好之后整個工作流就清晰了你在終端里用自然語言描述視頻場景Claude Code 生成 Remotion 組件代碼你在 Remotion Studio 里預(yù)覽效果調(diào)整滿意后用npx remotion render導(dǎo)出 MP4。下一節(jié)我會給出具體的配置文件和可復(fù)制的組件代碼。3. 可復(fù)制配置Remotion 工程結(jié)構(gòu)、Claude Code settings 與組件代碼這一節(jié)直接給可復(fù)制的內(nèi)容。先看 Remotion 工程的核心結(jié)構(gòu)。用npx create-videolatest初始化后目錄大概是這樣my-video-project/ ├── src/ │ ├── Root.tsx # 注冊所有 Composition │ ├── Composition.tsx # 默認(rèn)視頻組件 │ └── index.ts # 入口文件 ├── remotion.config.ts # Remotion 渲染配置 ├── package.json ├── tsconfig.json └── .skills/ # Agent Skills 技能文件Root.tsx是注冊視頻的地方每個Composition定義一條視頻的寬高、幀率、時長和對應(yīng)的 React 組件。我把它改成一個批量生成的例子// src/Root.tsx import { Composition } from remotion; import { ProductPromo } from ./ProductPromo; export const RemotionRoot: React.FC () { return ( Composition idProductPromo component{ProductPromo} durationInFrames{300} fps{30} width{1080} height{1920} defaultProps{{ title: 新品上市, subtitle: 限時優(yōu)惠, brandColor: #FF6B35, }} / / ); };這里durationInFrames{300}表示 10 秒視頻30fps × 10swidth和height是豎屏 1080×1920適合短視頻平臺。defaultProps是傳給組件的參數(shù)后面批量生成時只需要換這些 props。接下來是ProductPromo.tsx組件用 React 和 CSS 實現(xiàn)一個簡單的產(chǎn)品宣傳動畫// src/ProductPromo.tsx import { AbsoluteFill, interpolate, useCurrentFrame, useVideoConfig, spring, } from remotion; type Props { title: string; subtitle: string; brandColor: string; }; export const ProductPromo: React.FCProps ({ title, subtitle, brandColor, }) { const frame useCurrentFrame(); const { fps } useVideoConfig(); const titleOpacity interpolate(frame, [0, 30], [0, 1], { extrapolateRight: clamp, }); const titleScale spring({ frame, fps, config: { damping: 12 }, }); const subtitleY interpolate(frame, [30, 60], [50, 0], { extrapolateRight: clamp, }); return ( AbsoluteFill style{{ backgroundColor: #0A0A0A, justifyContent: center, alignItems: center, fontFamily: sans-serif, }} h1 style{{ color: brandColor, fontSize: 120, opacity: titleOpacity, transform: scale(${titleScale}), margin: 0, }} {title} /h1 p style{{ color: #FFFFFF, fontSize: 48, opacity: interpolate(frame, [30, 60], [0, 1], { extrapolateRight: clamp, }), transform: translateY(${subtitleY}px), marginTop: 40, }} {subtitle} /p /AbsoluteFill ); };這段代碼里useCurrentFrame拿到當(dāng)前幀號interpolate把幀號映射成透明度或位移spring生成彈性動畫。所有動畫都是幀驅(qū)動的渲染時每一幀都會重新計算樣式所以導(dǎo)出結(jié)果和預(yù)覽完全一致。然后是 Claude Code 的配置文件。在項目根目錄創(chuàng)建.claude/settings.json內(nèi)容如下{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: 你的TaoToken API Key }, permissions: { allow: [ Read, Write, Bash(npx remotion:*), Bash(npm run:*) ] } }這個文件讓 Claude Code 在項目內(nèi)自動使用 TaoToken 的端點并且允許它執(zhí)行 Remotion 相關(guān)的命令。注意ANTHROPIC_API_KEY要替換成你在 TaoToken 控制臺創(chuàng)建的真實 Key。如果你不想把 Key 寫進文件也可以用環(huán)境變量方式Claude Code 會優(yōu)先讀取系統(tǒng)環(huán)境變量。三件套對照表配置項值說明Base URLhttps://taotoken.net/apiTaoToken 的 Anthropic 兼容端點API Key控制臺創(chuàng)建在https://taotoken.net/console/api-keys生成Model IDclaude-sonnet-4-20250514Claude Code 默認(rèn)模型可在 settings 里指定如果你用的是 Cline 或者 CC Switch 這類工具配置邏輯一樣Base URL 填https://taotoken.net/apiAPI Key 填 TaoToken 的 KeyModel ID 填 Claude 的模型標(biāo)識。Cline 的 MCP 配置里把anthropic的 baseURL 指向 TaoToken 即可。配置完成后在終端里運行claude進入交互模式輸入幫我在 src/ProductPromo.tsx 里加一個背景漸變動畫從深藍到紫色持續(xù) 2 秒。Claude Code 會讀取現(xiàn)有組件生成修改后的代碼你確認(rèn)后它會直接寫入文件。Remotion Studio 會熱更新你立刻能看到效果。4. 驗證請求從組件到成片的完整渲染流程配置寫好了接下來驗證整條鏈路能不能跑通。我分三步走先在 Remotion Studio 里預(yù)覽組件再用 Claude Code 生成一個新場景最后用npx remotion render導(dǎo)出 MP4。第一步啟動 Remotion Studio。在項目根目錄執(zhí)行npm run dev瀏覽器打開http://localhost:3000左側(cè)邊欄會列出ProductPromo這個 Composition。點擊它右側(cè)預(yù)覽窗口會播放 10 秒的動畫標(biāo)題從透明變清晰并帶彈性縮放副標(biāo)題從下方滑入。如果你看到這個效果說明組件代碼沒問題。第二步用 Claude Code 生成一個新場景。在終端里運行claude輸入提示詞在 src 目錄下新建一個 DataChart.tsx 組件用 Remotion 實現(xiàn)一個柱狀圖動畫。 要求5 根柱子高度從 0 增長到目標(biāo)值每根柱子延遲 5 幀啟動 顏色用 #4A90D9背景白色時長 150 幀30fps。 然后在 Root.tsx 里注冊一個 id 為 DataChart 的 Composition。Claude Code 會生成DataChart.tsx并修改Root.tsx。你回到 Remotion Studio刷新頁面左側(cè)會多出DataChart這個 Composition。點擊預(yù)覽應(yīng)該能看到柱子依次生長的動畫。如果動畫不對你可以繼續(xù)在 Claude Code 里說“第二根柱子的延遲改成 10 幀”它會精準(zhǔn)修改對應(yīng)代碼。第三步導(dǎo)出成片。在終端里執(zhí)行npx remotion render ProductPromo out/product-promo.mp4這個命令會把ProductPromo這個 Composition 渲染成 MP4 文件輸出到out/product-promo.mp4。渲染過程中終端會顯示進度條完成后你會看到文件大小和耗時。我實測下來10 秒的 1080×1920 視頻在 M1 Mac 上大約 20 秒渲染完成。如果畫面復(fù)雜、圖層多時間會相應(yīng)增加。批量生成怎么做Remotion 提供了--props參數(shù)可以從 JSON 文件讀取參數(shù)。創(chuàng)建一個props.json{ title: 春季大促, subtitle: 全場五折, brandColor: #E91E63 }然后渲染時指定npx remotion render ProductPromo out/spring-sale.mp4 --propsprops.json如果你想批量生成 100 條不同文案的視頻寫一個 Node.js 腳本循環(huán)讀取 CSV 或 JSON 數(shù)據(jù)每次調(diào)用npx remotion render并傳入不同的 props 文件。這就是代碼化視頻生產(chǎn)的核心優(yōu)勢渲染引擎是確定性的輸入相同 props 就輸出相同視頻批量任務(wù)可以并行調(diào)度。驗證成功的標(biāo)志out/目錄下出現(xiàn) MP4 文件用播放器打開畫面、動畫、文字都符合預(yù)期。如果渲染失敗終端會報錯下一節(jié)我會列出常見錯誤和排查方法。5. 常見報錯排查401、local proxy failed、reading choices 與 OAuth 問題這一節(jié)整理我在配置和渲染過程中真實遇到的報錯以及對應(yīng)的解決方法。你如果卡在某一步可以先對照這里排查。報錯一401 UnauthorizedError: 401 Unauthorized {error:{type:authentication_error,message:invalid x-api-key}}這個錯誤說明 Claude Code 請求 TaoToken 時 API Key 無效。檢查三個地方第一ANTHROPIC_API_KEY環(huán)境變量是否設(shè)置正確有沒有多余空格第二Key 是否在 TaoToken 控制臺被刪除或過期第三ANTHROPIC_BASE_URL是否寫成了https://taotoken.net/api注意末尾不要加/v1TaoToken 的兼容層會自動處理路徑。如果你用的是.claude/settings.json確認(rèn) JSON 格式?jīng)]有語法錯誤可以用cat .claude/settings.json | python -m json.tool驗證。報錯二local proxy failedError: local proxy failed: connect ECONNREFUSED 127.0.0.1:7890這個錯誤通常是因為系統(tǒng)里設(shè)置了本地代理但代理服務(wù)沒有運行。Claude Code 會讀取HTTP_PROXY或HTTPS_PROXY環(huán)境變量。如果你之前配置過代理現(xiàn)在代理關(guān)了就會報這個錯。解決方法在終端里執(zhí)行unset HTTP_PROXY HTTPS_PROXY或者在.claude/settings.json里顯式設(shè)置HTTP_PROXY: 和HTTPS_PROXY: 。注意這里只是清理本地環(huán)境變量不涉及任何網(wǎng)絡(luò)工具的使用。報錯三reading choices 相關(guān)錯誤Error: reading choices of undefined這個報錯一般出現(xiàn)在用 OpenAI 兼容格式請求 TaoToken 時。TaoToken 的/api端點兼容 Anthropic Messages API返回格式是content數(shù)組不是 OpenAI 的choices。如果你用的工具默認(rèn)走 OpenAI 格式需要把請求路徑改成 Anthropic 格式或者把 Base URL 指向 TaoToken 的對應(yīng)端點。Claude Code 本身走 Anthropic 格式不會出現(xiàn)這個問題如果你用 Cline 或其他工具檢查它的 API 提供商設(shè)置是否為 Anthropic。報錯四OAuth 相關(guān)錯誤Error: OAuth token expired or invalidClaude Code 在某些版本里會嘗試 OAuth 登錄。如果你已經(jīng)用 API Key 方式配置不需要 OAuth。出現(xiàn)這個報錯時檢查是否同時設(shè)置了ANTHROPIC_API_KEY和 OAuth 憑證兩者沖突。解決方法刪除~/.claude/下的 OAuth 緩存文件只保留 API Key 配置。具體路徑是~/.claude/credentials.json刪掉后重新運行claude。報錯五Remotion 渲染時內(nèi)存不足Error: JavaScript heap out of memoryRemotion 渲染是把每一幀截屏合成復(fù)雜畫面會吃內(nèi)存。解決方法在remotion.config.ts里設(shè)置Config.setConcurrency(2)降低并發(fā)幀數(shù)或者用--concurrency1參數(shù)。另外把視頻分辨率從 4K 降到 1080P 也能顯著減少內(nèi)存占用。如果還是不夠在package.json的渲染腳本里加NODE_OPTIONS--max-old-space-size4096。報錯六Composition 找不到Error: No composition with id ProductPromo found檢查Root.tsx里Composition的id屬性是否和渲染命令里的一致。Remotion 的 id 區(qū)分大小寫ProductPromo和productpromo是兩個不同的 id。另外如果你在Root.tsx里用了條件渲染或動態(tài)注冊確保組件在渲染時已經(jīng)掛載。排查完這些基本能覆蓋 90% 的配置和渲染問題。如果遇到其他報錯把終端完整輸出復(fù)制給 Claude Code讓它幫你分析通常幾輪對話就能定位。6. 語義一致 CTA從單條視頻到批量生產(chǎn)線的下一步走到這里你已經(jīng)有了一個可運行的 Remotion 工程能用 Claude Code 生成組件代碼能渲染出第一條 MP4。接下來如果想把它變成真正的批量生產(chǎn)線有幾個方向可以繼續(xù)。第一把 props 數(shù)據(jù)源接到外部。比如從 Google Sheets、Airtable 或者本地 CSV 讀取文案和品牌色用 Node.js 腳本循環(huán)調(diào)用npx remotion render每次傳入不同的 props。這樣你只需要維護一張表格就能生成成百上千條視頻。第二用 Remotion 的Series和Sequence組件組合多場景。一條 30 秒的視頻可以拆成開場、產(chǎn)品展示、價格、CTA 四個場景每個場景是一個獨立組件用Series串聯(lián)。Claude Code 可以幫你生成每個場景的骨架你只需要調(diào)整文案和配色。第三把渲染任務(wù)放到 CI/CD 里。Remotion 官方提供了 GitHub Actions 模板你 push 代碼后自動渲染并上傳到對象存儲。這樣團隊里非技術(shù)成員只需要改表格視頻自動產(chǎn)出。如果你在配置 Claude Code 接入時遇到問題或者想換一個更穩(wěn)定的模型端點可以試試 TaoToken 的 API 服務(wù)。它的 Anthropic 兼容端點配置簡單適合用來驅(qū)動 Claude Code 做代碼生成。API Key 在控制臺創(chuàng)建文檔里有詳細(xì)的接入說明。對于長期做視頻自動化、需要頻繁調(diào)用模型生成組件的場景Coding Plan 提供了更劃算的額度方案適合把這條生產(chǎn)線跑成日常流程。模型對話頁面可以快速測試模型響應(yīng)接入文檔里有完整的 Base URL 和參數(shù)說明。如果你只是想先驗證 Remotion 和 Claude Code 的配合效果從 API Keys 創(chuàng)建一個 Key按本文的配置跑通第一條視頻再決定要不要擴大規(guī)模。最后分享一個我踩過的坑Remotion 的interpolate函數(shù)默認(rèn)會在輸入范圍外繼續(xù)外推導(dǎo)致動畫在結(jié)束后出現(xiàn)異常值。記得加extrapolateRight: clamp和extrapolateLeft: clamp讓動畫在邊界處停住。這個細(xì)節(jié)在官方文檔里不太顯眼但實際渲染時經(jīng)常遇到。