Reels 編輯 — 第一級 (簡潔極簡風) 是做什麼的?
將錄製的影片從 01-crudo/ 轉換成 9:16 直式 Reel,乾淨、可供審閱:去除靜音、加入卡拉 OK 字幕、適度移動與淡出效果。
基本規則:先製作 DRAFT(草稿);只有在獲得使用者核准後,才能產出最終版本。未經詢問,切勿使用任何付費服務。
整個流程皆為本機運作且免費(Python + FFmpeg + Whisper)。腳本(scripts)已置於 scripts/ 資料夾中。請勿改寫:直接使用它們。
步驟 0 — 準備工具(僅第一次需要)
首先執行 python scripts/verificar_entorno.py:它會檢查 Python、FFmpeg(含本套件使用的濾鏡)以及 Whisper,並回報缺少哪些項目。如果一切正常,請繼續步驟 1。如果有問題,請根據下方指令解決。請默默確認這些元件是否存在。如果缺少任何項目,請以友善訊息告知正在安裝(例如「我正在準備工具,第一次需要幾分鐘」):
python --version
ffmpeg -version
ffprobe -version
python -c "import whisper"
如果缺少某項:
- Python:請使用者從 python.org 下載安裝(記得勾選「Add Python to PATH」),然後重新開啟終端機。
- FFmpeg(Windows):
winget install Gyan.FFmpeg— 然後重新開啟終端機。在 Mac 上:brew install ffmpeg。 - Whisper:
pip install openai-whisper(第一次會下載small模型,完全免費且在使用者自己的電腦上執行)。
如果無法安裝某項,別卡住:說明缺少什麼,並提供最簡單的替代方案。
步驟 1 — 檢查素材
- 列出
01-crudo/中的檔案(以及02-assets/中的資源)。 - 如果只有一個影片,就直接用它。如果有多個,詢問使用哪一個。如果資料夾是空的,請使用者將影片複製到該處。
- 確認影片長度與是否有音訊:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "01-crudo/NOMBRE.mp4" - 最多提出一個關於偏好的問題,且只在必要時(例如:是否有口頭禪需要手動剪掉?)。否則,使用預設值繼續進行。
步驟 2 — 產生 DRAFT(草稿)
執行完整流程(轉錄 → 清理靜音 → 匯出直式影片):
python scripts/pipeline.py "01-crudo/NOMBRE.mp4"
每個步驟的功能說明(以便需要分開執行或調整時使用):
| 步驟 | 腳本 | 結果 |
|---|---|---|
使用 Whisper (small,逐字時間戳記) 轉錄 | scripts/transcribir.py | 02-assets/subtitulos/NOMBRE.srt 與 .words.json |
| 移除靜音(> 0.5 秒,低於 -35 dB) | scripts/limpiar_silencios.py | 02-assets/sin_silencios/NOMBRE.mp4 與 .timeline.json |
| 匯出 9:16 含字幕、縮放與淡出 | scripts/exportar_reel.py | 03-output/NOMBRE.mp4 |
limpiar_silencios.py 中的可用調整參數(僅在使用者要求或結果需要時才使用):
--silence-duration 0.35→ 剪掉更短的停頓(節奏更快)。--cut-range INICIO FIN(可重複)→ 剪掉原始影片中指定時間範圍的片段(單位:秒)。這是剪掉口頭禪(「呃」、「嗯」、「就是說」)或拍壞的片段的方法:請在02-assets/subtitulos/NOMBRE.words.json中讀取這些片段,找到時間點,然後作為範圍傳入。如果剪輯點較多,請先向使用者顯示清單再套用。--speed-range INICIO FIN VELOCIDAD(可重複)→ 在指定時間範圍內(以原始影片秒數為準)設定不同速度,例如--speed 1.32 --speed-range 13 21.8 1.5。用於加快較慢或解說部分的節奏,保留重要部分為正常速度。如果使用者要求最大長度(例如 55 秒),請調整--speed直到符合,並使用ffprobe測量。--speed 1.1→ 輕微加速並保持音調(範圍 0.5 到 2.0)。僅在使用者要求時使用。
若要僅重新執行清理步驟並進行調整,然後再匯出:
python scripts/limpiar_silencios.py "01-crudo/NOMBRE.mp4" --cut-range 12.4 13.1
python scripts/exportar_reel.py "02-assets/sin_silencios/NOMBRE.mp4" "02-assets/subtitulos/NOMBRE.srt" --output "03-output/NOMBRE_draft.mp4"
請將草稿命名為 _draft 後綴(若需多次迭代則依序為 _draft2、_draft3……),避免覆蓋舊版本。如果使用 pipeline.py,請將輸出重新命名為 NOMBRE_draft.mp4。
風格標準(已內建於腳本中 — 未經要求請勿修改)
- 格式:直式 9:16,1080×1920,30 fps。
- 卡拉 OK 字幕:暖白色文字,淡金色高亮當前字詞,深藍色半透明背景,最多兩行,位於安全區域內(遠離底部邊緣以及應用程式的按鈕)。
- 移動:低強度縮放與平移,最多 2.5%。不要在已經很豐富的影像上疊加其他效果或圖形。
- 結尾:淡出效果(影像與音訊)。
- 音訊:原始音訊保持乾淨,標準化至 -14 LUFS,不添加音樂或裝飾性音效(個人片頭音效為選擇性,請參閱下方說明)。
- 節奏:精簡重點;如果使用者要求強調關鍵字,請使用金色,但不要過度使用。
個人片頭音效(選擇性)
預設情況下,Reel 不會添加任何額外音效。如果使用者希望在開頭加上品牌音效,該音效必須是他們自己擁有的:請詢問他們是否已有檔案(.wav 或 .mp3),或協助他們建立一個屬於自己的音效(例如使用 FFmpeg 或 Python 合成,或使用他們擁有使用權的資源)。然後在匯出時將其混入語音下方:
python scripts/exportar_reel.py "02-assets/sin_silencios/NOMBRE.mp4" "02-assets/subtitulos/NOMBRE.srt" --sonido "ruta/a/mi_sonido.wav" --output "03-output/NOMBRE_draft.mp4"
- 如果音效蓋過語音,請在
scripts/exportar_reel.py中調低SOUND_VOLUME(預設為 0.55)。 - 未經詢問並確認可使用,請勿下載或使用任何第三方或付費音效。
步驟 3 — 交付草稿前先檢查
在聲明草稿準備好之前:
- 確認檔案存在於
03-output/中,並使用ffprobe測量其長度。 - 擷取 2–3 個影格,確認字幕顯示正常且未超出安全區域:
檢查這些截圖,完成後刪除ffmpeg -y -ss 5 -i "03-output/NOMBRE_draft.mp4" -frames:v 1 "03-output/_chequeo.png"_chequeo.png。 - 比較原始與最終的影片長度。
如果出現任何錯誤(Whisper 無法轉錄、FFmpeg 錯誤),請用簡單的語言解釋問題,修正後重試。不要交付字幕不同步或被截斷的草稿。
步驟 4 — 呈現並等待核准
開啟草稿供使用者聆聽與觀看:
- Windows:
start "" "03-output/NOMBRE_draft.mp4" - Mac:
open "03-output/NOMBRE_draft.mp4"
用幾行摘要說明:
- 檔案路徑與長度(原始 → 最終)。
- 剪掉了哪些內容(靜音,以及(如果有的話)口頭禪或手動段落)。
- 套用了哪些處理(字幕、縮放、淡出)。
最後詢問:「您核准這個草稿,還是需要調整哪些部分呢?」(音訊、字幕、節奏、縮放、剪輯點)。
在收到明確的「是」之前,請不要產出最終版本。
步驟 5 — 迭代並交付最終版本
- 如果要求修改:套用變更,產生新的草稿(
_draft2),然後回到步驟 3。 - 當使用者核准時:使用相同的匯出指令,但設定
--output "03-output/NOMBRE_final.mp4"來匯出最終版本。 - 提供最終檔案的完整路徑,並建議可發布至 Reels / TikTok / Shorts。
規則
- 在使用任何付費服務之前,務必先詢問(包括 API、雲端編輯器、音樂庫、AI 語音等)。標準流程不需要任何付費服務。
- 使用本機 Whisper 進行轉錄。請勿將影片上傳至外部服務。
- 不要刪除或覆蓋
01-crudo/中的檔案。原始影片永遠保留。 - 將結果儲存在
03-output/,中間檔案儲存在02-assets/。 - 使用簡單的語言溝通:使用者可能不熟悉剪輯或程式設計。
- 如果使用者要求的內容超出第一級範圍(例如複雜動畫、動態圖形、多機位、色彩校正),請誠實告知:此流程僅涵蓋清理、字幕與適度移動;並提議將其作為獨立步驟處理。