Communitygithub.com

clabza16/skills-edicion

編輯一支直式影片(Instagram Reel 或 TikTok),內容為人物面對鏡頭說話,並加入每段剪輯的縮放、開場鉤子、標題、卡拉 OK 字幕、自動打字對話框、Finder 風格清單、扇形截圖、另一個影片的分割畫面,以及結尾的追蹤按鈕。

skills-edicion 是什麼?

這是一款針對直式社交媒體影片(Instagram Reel 或 TikTok)的自動化編輯技能,專門處理人物面對鏡頭說話的片段。它不會修改說話內容,而是疊加視覺編輯層,包括:每個剪輯切換時的縮放效果、從第一幀就清晰可見的開場鉤子、標題、卡拉 OK 字幕、自動打字對話框、Finder 風格清單、扇形截圖、與另一個影片的分割畫面,以及結尾的追蹤按鈕。使用者只需提供已剪輯的影片(已去除靜音與不良鏡頭),系統會自動進行語音轉文字(使用 Whisper)、偵測剪輯點、定位人物臉部位置,然後自動生成一份詳細的編輯計畫(plan.json),最後透過 Remotion 渲染出最終影片。這項技能適用於各種開發環境(macOS、Windows、Linux),但需要預先安裝 ffmpeg、whisper-cli、Node.js 與 Google Chrome。它特別適合用來快速製作具有專業感的社交媒體影片,讓使用者專注於內容創作,而將繁複的剪輯與特效工作自動化。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clabza16/skills-edicion/tree/HEAD/editar-reel

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

編輯 Reel

處理一支直式影片(人物面對鏡頭說話,已剪輯完成:無靜音或不良鏡頭),讓它可以直接上傳。不會修改說話內容:只在上面疊加編輯層。

範本位於 plantilla/(Remotion)。所有螢幕上顯示的內容都在 plantilla/public/plan.json 中描述;你的工作是根據準則編寫該計畫,而不是進行程式設計。

前置要求(開始前請先檢查)

  • ffmpeg 和 whisper-cli(whisper.cpp)。Mac:brew install ffmpeg whisper-cpp。Windows:winget install Gyan.FFmpeg 以及從 https://github.com/ggml-org/whisper.cpp/releases 下載 whisper.cpp 的壓縮檔(將 whisper-cli.exe 放在 PATH 中)。
  • Node 18 或更新版本(Windows:winget install OpenJS.NodeJS),並已安裝 Google Chrome。
  • 如果缺少任何項目,請在獲得使用者許可後自行安裝;如果安裝程式要求使用者密碼,請讓使用者自行輸入。不要半途而廢。
  • 在 Windows 中,.sh 腳本在 Git Bash 中執行(Windows 上的 Claude Code 會使用它)。如果 bash 不可用,請使用其等效命令。

步驟

1. 準備 Reel 資料夾

cp -R <此技能>/plantilla ~/reels/<reel-名稱>
cd ~/reels/<reel-名稱> && npm install
cp <使用者影片> public/video.mp4

影片必須是 1080×1920 直式(如果來源是 4K 直式,請使用 ffmpeg -i in.mov -vf scale=1080:1920 -c:a copy public/video.mp4 降低解析度;切勿為了放大臉部而裁切:人們更喜歡看到自己周圍有空間)。

2. 轉錄並尋找剪輯點

bash <此技能>/scripts/transcribir.sh public/video.mp4 public
bash <此技能>/scripts/cortes.sh public/video.mp4
  • transcribir.sh 會產生 public/palabras.json(每個單字及其對應秒數)並輸出文字。請完整閱讀它。 Whisper 可能會誤辨識專有名詞(例如 "Cloud" 而非 "Claude"):請使用 correcciones.json 進行修正,並執行 python3 <此技能>/scripts/palabras.py public/tokens.json public/palabras.json correcciones.json。如果某個單字無法理解,請詢問使用者;不要猜測。
  • cortes.sh 會輸出鏡頭切換的秒數。這些將放入計畫中的 cortes_s。

3. 定位臉部

隨機選取 6-8 幀,檢查臉部的高度(以像素為單位,相對於 1920):

for t in 1 5 10 15 20 25; do ffmpeg -y -v error -ss $t -i public/video.mp4 -frames:v 1 /tmp/cara_$t.jpg; done

cara_y = 眼睛或鼻子的高度(通常:700-900)。縮放將以該處為中心,標題則放在頭頂上方:同時記錄在臉部最高的那幀中,頭頂的位置。如果頭頂位於 y=450 附近,則上方無法放置標題:請減少標題數量。

4. 撰寫計畫

複製 plantilla/public/plan.json 的格式(這是一個完整的範例)。如果沒有其他影片或截圖,請刪除 split 和 pantallazos:它們指向範例檔案,但這些檔案並未隨專案一起提供。cortes_s 必須按順序且不重複。規則:

節奏

  • 每個鏡頭一個縮放(zooms,每個剪輯區間一個),交替使用不同比例:1.0 → 1.16 → 1.0 → 1.26……在剪輯點切換比例可以掩蓋跳動。切勿超過 1.3:會導致畫面模糊。
  • 每 3-5 秒在螢幕上顯示新內容,但一次只呈現一個概念:切勿同時顯示標題和對話框。

開場鉤子(前 2 秒決定一切)

  • gancho.linea 從第一幀開始可見,無進入動畫:它也是封面。
  • 不要重複說話內容。 如果聲音說「有 300 萬人看過這個」,文字應該寫其他令人震驚的內容(例如「我的 AI 做的」)。如果重複,它就只是一個字幕,白白浪費了。
  • 第一幀的最佳選擇是動態效果:一個 split,上方顯示結果(病毒式影片、前後對比),下方顯示人物,並在第一句話結束時關閉。

每個元素在對應的詞語出現時

  • 在 palabras.json 中找出該事物被提及的詞語的精確秒數,並讓元素在該詞語前 0.15-0.3 秒 開始出現。在詞語之後才出現的標題會讓人感覺延遲。
  • lista[].filas[].marcar_s = 使用者提到該行的秒數。

何時使用何種元素

說話內容元素
簡短的點子("秘訣:skills")titulos(大寫的短 kicker + 文字;*詞語* 會被強調)
使用者請 AI 做事chat,必須是完全一樣的訊息(如果你沒有,請問使用者)
具體名稱:資料夾、檔案、工具、步驟lista(最多 7 行)
"看看結果"pantallazos(最多 3 張實際結果的截圖)或內含影片的 split
結尾 "追蹤我"cierre,包含使用者的帳號

誠實原則(不可協商): 螢幕上只能顯示真實的內容。對話框必須顯示實際輸入的訊息;數字必須是真實的數字。如果你不確定,請詢問或不顯示。

安全區域: 範本已將所有內容放置在 x 110-900 和 y 250-1290 之間,遠離 Instagram 的按鈕和說明文字區域。不要將元素移出此範圍。

5. 在完整渲染前檢查單張幀

npx remotion still Reel out/f0.png --frame=0

為每個元素取一幀(在該秒數 × 30 的位置)並檢查它們。確認:臉部從未被遮擋(清單和截圖會刻意讓背景變暗,但文字不應遮擋臉部),文字沒有被裁切,鉤子在幀 0 時可讀。

如果渲染卡在 "Waiting for root component to load",請使用系統的 Chrome:--browser-executable="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"(Mac)或 --browser-executable="C:\Program Files\Google\Chrome\Application\chrome.exe"(Windows)。

6. 渲染與最終檢查

npx remotion render Reel out/reel.mp4
ffmpeg -v error -i out/reel.mp4 -f null - && echo "檔案正常"
ffmpeg -y -v error -i out/reel.mp4 -vf "fps=1,scale=216:384,tile=10x3" -frames:v 1 out/hoja.jpg

檢查 out/hoja.jpg(每秒一幀的拼貼圖)。如果有幀顯示為「馬賽克」或黑色(Remotion 中的影片有時會發生此情況),請使用 remotion still 單獨渲染該幀,然後用以下命令貼上:ffmpeg -i out/reel.mp4 -i fix.png -filter_complex "[0:v][1:v]overlay=enable='eq(n,N)'" -c:a copy out/reel_ok.mp4。

之後,將影片傳遞給 sonido-reel 技能來處理音樂、特效和最終音量。

已知問題

  • 字幕出現單字黏在一起("Yesto"):<span> 之間的空白在渲染時會遺失。範本已使用邊距分隔;如果你逐詞添加文字,請使用相同方法。
  • 不要在影片上使用 filter: blur() 或 backdropFilter:會導致黑色或馬賽克幀。若要變暗,請在頂部放置一層半透明顏色層。
  • Split 中的上方影片可能有自己的文字:調整 recorte_y 以顯示乾淨的區域,或使用 broll_desde_s 選擇另一個秒數。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能