Reels with reel-kit
你是在使用者電腦上編輯真實影片素材。你需要一個能執行 shell 指令並讀取檔案的工具(例如 Claude Desktop 中的 Desktop Commander 擴充功能,或 Claude Code)。如果沒有這樣工具,請告知使用者並引導至 docs/guia-windows.md。請勿在聊天沙盒中嘗試使用上傳的檔案來完成此工作。
設定
- 找到
reel-kit資料夾(如果找不到,問使用者一次)。所有指令都從該資料夾執行。 - 首次使用:執行
npm install和pip install numpy。確認ffmpeg -version和node -v可以正常運作。 - 選取本技能
styles/資料夾中與主題相符的樣式檔案(yoga.md、aikido.md)。如果沒有符合的,從yoga.md開始,並與使用者協商差異。向使用者詢問該 reel 所呈現的事實(名稱、日期、地點、網址);絕對不要自行虛構。
工作流程
- 檢視素材。 針對每個長影片:
python tools/reel.py sheet <video> --every 10。閱讀out/sheets/中的 sheet 圖片,找出精彩片段。在選定精確時間前,對有潛力的部分使用更細的間隔(--every 2)。 - 選擇片段。 寫入
out/<name>-clips.tsv,以 tab 分隔,每個片段一行:id<TAB>source path<TAB>start<TAB>end(秒數或 mm:ss)。遵循樣式檔案來決定片段長度以及每個片段必須包含的內容。 - 裁剪。
python tools/reel.py cut out/<name>-clips.tsv。每個片段會變成直式的 1080x1920 影片,存放在public/clips/;橫式素材會根據動態進行裁剪(--frame center為固定中心裁剪,--frame keep為縮放但不追蹤)。僅在電腦有 NVIDIA 顯示卡時加上--gpu。此指令會為每個片段輸出一行 JSON,包含其精確長度。 - 描述 reel。 建立
reels/<name>.json(格式如下),貼入步驟 3 中的片段行。 - 渲染。
python tools/reel.py render <name>會產出out/<name>.mp4,並針對社群媒體進行響度正規化。 - 檢查。 擷取 3-4 幀畫面(
ffmpeg -i out/<name>.mp4 -vf "fps=1/4,scale=360:-2,tile=4x1" -frames:v 1 out/<name>-check.jpg)並檢視,然後再告知使用者已完成。告知使用者檔案路徑和影片長度。
之後使用者要求的變更(「移除慢速部分」、「不要音樂」):編輯 TSV 或 JSON 檔案,然後執行變更之後的步驟即可。使用新的名稱(<name>-v2)保留先前的版本,以便使用者可以回溯。
reels/.json
{
"clips": [{ "file": "clips/a1.mp4", "seconds": 6.5 }],
"transition": "fade",
"fadeSeconds": 0.5,
"clipVolume": 0,
"music": { "file": "music/calm.mp3", "volume": 0.5 },
"accent": "#7FA88B",
"intro": [{ "kicker": "Yoga · Murcia", "title": "Clase abierta", "sub": "Sábado 10:00" }],
"outro": { "text": "Reserva tu plaza", "url": "example.com", "image": "poster.jpg", "seconds": 3.5 }
}
- 只有
clips是必填的。路徑相對於public/;音樂放在public/music/,圖片放在public/。 transition:"cut"(硬切,預設值)或"fade"。clipVolume:1 保留原始聲音,0 則靜音。音樂會在結尾自行淡出。intro:文字卡片,每張 2.5 秒,覆蓋在開頭片段上。outro:結尾畫面,包含文字、網址和/或圖片(海報、標誌)。- 僅使用使用者提供或確認其擁有使用權的音樂。
規則
- 影片處理很耗資源。一次只執行一個 ffmpeg 或渲染作業;這些工具已經以低優先級執行。
- 僅在使用者想要手動預覽和調整時,才使用
npm run studio。 - 若要變更外觀本身(字型、排版),請編輯
src/Reel.tsx;Remotion 的官方技能(npx skills add remotion-dev/skills)對此有幫助。