video-editing (路由器)
您透過執行小型、單一用途的腳本並讀取其 JSON 輸出來編輯影片,而不是透過觀看影片。僅在決策點查看影格(證明圖、全解析度靜態圖)。
使用哪個技能
| 使用者想要... | 技能 |
|---|---|
| 將長錄影分割成片段、建議裁剪點、移除無效的前導內容 | auto-cut |
| 在影片上疊加鉤子 / 標題 / "POV:" 文字 | hook-overlay |
| 字幕、說明文字、逐字稿、尊重單字邊界的裁剪 | captions |
| 修正音量、移除靜音、乾淨的接合、淡入淡出 | audio-polish |
| 無縫循環、GIF、表情 GIF、貼圖 | loops-gifs-stickers |
| 知道渲染是否正常、聯絡單、審核步驟 | render-qc |
| 將影片上傳到 YouTube | youtube-publish |
預設處理管道(從原始螢幕錄影到發布的 Short)
auto-cut -> hook-overlay -> captions -> audio-polish -> render-qc -> youtube-publish
建議、 板 PNG + 轉錄、 修剪靜音、 驗證、 試運行、
批准、 疊加 ASS、燒錄 loudnorm 證明圖、 上傳為私人、
分割、修剪 (最後視覺步驟) (最後音訊步驟) 使用者批准 ledger
並非每個任務都需要每個步驟:音樂剪輯會跳過字幕;GIF 會跳過發布。當目標不明確時請詢問;否則陳述計畫並執行。
嚴格規則(所有技能)
- 絕不觸碰原始檔案。 輸出會放在來源檔案旁邊的
edit/目錄中(腳本預設如此)。 - 先計畫,再裁剪。 在執行破壞性或耗時步驟前,提出裁剪點 / 鉤子 / 設定並取得使用者的同意。
- 絕不在單字內裁剪。 對於語音,將裁剪點對齊到單字間隙 (
captions/snap-to-words)。 - 每次音訊裁剪都加上約 30 毫秒的淡出。 點擊聲來自於對非零樣本進行裁剪。
- 片段從內容開始。 沒有黑色影格、載入畫面或前一個畫面的尾巴 (
auto-cut/trim-lead,由render-qc檢查)。 - 文字保持在安全區域內。 鉤子板位於頂部區域,最多 2 行;字幕位於底部平台 UI 上方;沒有重疊。
- 順序很重要。 先裁剪,再疊加,然後是字幕(最後的視覺步驟),接著是音量(最後的音訊步驟),最後是 QC。
- 對每個最終渲染進行 QC,使用
render-qc/verify-render,然後向使用者展示證明圖或實際的 MP4 檔案。不要根據縮小的預覽來判斷。 - 批准是人類的職責。 除非使用者在本次對話中明確表示,否則絕不傳遞
--approved或--allow-public。 - 秘密資料不得進入 git 或日誌。 OAuth 客戶端和令牌應存放在環境變數或被 gitignore 忽略的檔案中;絕不能將它們列印出來。
- 優先使用不同旗標重新執行腳本,而不是手動編寫 ffmpeg 指令。 每個腳本都支援
--help和--help --json。
安裝檢查
ffmpeg -version && ffprobe -version # 必要(任何最近的版本;不需要 drawtext)
node --version # >= 18
npm install # 在儲存庫根目錄執行一次(安裝 sharp)
python3 -m pip install faster-whisper # 僅用於 captions/transcribe.py
如果 ffmpeg 不在 PATH 中,請設定 FFMPEG_PATH 和 FFPROBE_PATH 環境變數。
風格包
brands/example.json 包含畫布大小、字型、顏色、鉤子板幾何形狀和字幕樣式。請為每個頻道/品牌複製一份,並傳遞 --brand brands/<name>.json。使用系統字型或開放授權字型 (--font-file);絕不能提交商業字型。