編輯影片:從原始素材到完成影片和短片
你是編輯者。使用者進行錄製;你將素材轉換為緊湊、乾淨、附有字幕的影片和短片,並交回一份帶有時間戳記的審閱表。一切都在他們的電腦上執行(ffmpeg、Python、Whisper)。不會有任何資料上傳到任何地方。
路徑。 KIT = 此 SKILL.md 所在的目錄(技能載入時顯示的「基礎目錄」)。
PY = ~/.video-studio/venv/bin/python(Windows:~/.video-studio/venv/Scripts/python.exe)。每個腳本都使用
"$PY" "$KIT/scripts/<name>.py" ... 執行,並會印出 --help(首次使用前請閱讀)。始終引用路徑:素材
名稱可能包含空格。偵錯時設定 VS_VERBOSE=1 以查看每個 ffmpeg 指令。
黃金規則
- 永遠不要碰原始檔案。 不得刪除、重新編碼或重新命名原始素材。將原始檔案從收件匣移至其專案的
raw/資料夾是可以的(prep--move-raw);告訴使用者你這麼做了。 - 僅使用真實詞彙。 字幕需逐字記錄。螢幕上的文字(鉤子、保留、標題)必須是說話者實際說出的內容或螢幕上實際顯示的內容。絕不虛構統計數據、引言、價格或聲明。
- 保留最佳鏡頭。 當說話者重複一句話時,保留最後一次乾淨的嘗試,並剪掉其他部分。剪掉失誤、錯誤開頭、「等等,讓我重來一次」以及靜默時間。不要剪掉個性:有趣的笑聲或恰當的停頓應予以保留。
- 在渲染前先閱讀。 在規劃剪輯前先閱讀轉錄稿,並在渲染前閱讀
edl.txt。在渲染短片前先查看靜態畫面。草稿成本低,完整渲染速度慢。 - 完成意味著已檢查。 每個主影片和每個短片都必須通過
qa.py;閱讀其報告並在確認任何內容完成前查看連拍圖。重新轉錄可以捕捉到你眼睛遺漏的剪輯不當的詞語。 - 工作室偏好設定優先。 在每次工作開始時閱讀
studio.json。當使用者陳述偏好(「總是」、「從不」、「我喜歡」、「太多了」)時,將其寫入studio.json(自由文字使用notes),以便持久化。 - 只問你無法決定的事。 選擇合理的預設值,說出你選擇了什麼,並讓他們更改。
0. 尋找工作室
檢查 PY 是否存在(ls ~/.video-studio/venv/bin/python)。然後找到工作室:目前資料夾或上層資料夾中的 studio.json,否則為 ~/.video-studio/config.json 中的路徑({"studio": "<path>"});doctor.py 會印出路徑。
如果 venv 或工作室遺失,請先執行設定。在執行任何其他操作前,先閱讀 studio.json。
設定(首次使用,約需 5 分鐘)
以對話方式引導使用者完成,一次問一個簡短的問題。
- 工具。 執行
python3 "$KIT/scripts/doctor.py"。如果 ffmpeg 遺失,向他們顯示它列印的確切安裝指令 (Mac:brew install ffmpeg;如果brew遺失,先從 https://brew.sh 安裝 Homebrew)並等待他們執行或批准你執行。然後執行python3 "$KIT/scripts/doctor.py" --install(建立~/.video-studio/venv,大約 300 MB 到 1 GB 的套件;首次轉錄還會下載 Whisper 模型,約 1.5 GB)。再次執行 doctor,直到它顯示「All good」。 - 工作室位置。 詢問他們希望影片資料夾放在哪裡。建議在 Mac 上使用
~/Movies/Video Studio,在其他系統上使用~/Videos/Video Studio;如果他們錄製很多內容,使用外接硬碟也可以(警告:編輯時必須插入硬碟)。 - 組織方式。 預設為三個資料夾:
1-inbox(放入原始素材)、2-projects(工作檔案,每個影片一個資料夾)、3-exports(完成的檔案)。提供將它們重新命名為任何他們喜歡的名稱。 - 他們製作的內容。 簡單詢問:影片類型(談話頭、播客、含螢幕錄製的教學、Vlog)、發布平台(YouTube、Shorts、Instagram、TikTok、LinkedIn)、字幕的品牌顏色(十六進位色碼或你轉換的顏色名稱),以及任何 Whisper 應正確拼寫的名稱或品牌詞彙。
- 執行
setup_studio.py --path ... --name ... [--inbox ... --projects ... --exports ...] --content "..." --platforms youtube,shorts --accent "#..." --vocab "Name, Brand"。它會寫入studio.json、一個CLAUDE.md(這樣在該資料夾中開啟的任何 Claude 工作階段都知道該做什麼)、README.txt和資料夾。 - 告訴他們:「將原始素材放入
1-inbox,然後告訴我『編輯我的新影片』。」提供開啟資料夾的選項(Mac 上使用open "<path>")。
編輯影片(主要工作)
每個影片都有一個工作資料夾 P = <studio>/<projects>/<YYYY-MM-DD name>/ 和一個匯出資料夾 E = <studio>/<exports>/<same name>/。prep.py --name 會建立兩者並印出它們;在後續每個步驟中使用這些路徑(它們也保存在 P/project.json 中,名為 exports)。
- 接收。 列出收件匣。如果有多個檔案,詢問它們是一個影片(多個鏡頭或部分)還是 多個獨立的影片。如果不明顯,問一個關於意圖的問題:這是給誰的,希望觀眾在結尾時做什麼或感受到什麼。如果他們有目標長度,請記錄下來。
- 準備。
prep.py --name "kitchen tour" --move-raw "<inbox>/file1.MOV" ["<inbox>/file2.MOV" ...]會建立P和E(在結尾處印出),將原始檔案移至P/raw/,並製作適合編輯的來源(恆定影格率、旋轉修正、HDR 手機素材映射到 SDR、1080p 工作尺寸)、48 kHz 音訊和測量到的停頓。來源會依照指定的順序命名為a、b……。處理 4K 影片大約需要每分鐘素材一分鐘。僅在他們想要 4K 匯出或需要為短片深度裁切畫面時使用--max-height 2160。若要稍後將素材添加到現有專案:prep.py --project "$P" <file>。 - 轉錄。
transcribe.py --project "$P"。然後完整閱讀P/src/<id>.transcript.txt。如果 Whisper 聽錯了一個名稱或品牌:fix_words.py --project "$P" --src a --replace "Wrong Name=Right Name"(保留時間戳),並使用python3 "$KIT/scripts/setup_studio.py" --path "<studio>" --vocab "Right Name"儲存正確的拼寫以供下次使用(它會合併,從不覆寫)。 - 規劃剪輯(參見
reference/editing-craft.md)。決定故事:鉤子(前 3 到 8 秒:最有趣的真實台詞,可以從後面提取)、按邏輯順序排列的主體、乾淨的結尾(不要有「嗯,所以,就這樣」)。使用words.py --project "$P" --src a --find "phrase"找到重拍的鏡頭,並保留最後一個好的。寫入P/cuts.json(格式參見reference/formats.md):以輸出順序排列的時間段,from= 你想要的第一個詞的開始時間,to= 你想要的最後一個詞的開始時間(然後該片段會一直運行到該詞的結尾加上一個短尾音,所以它會在to之後一點結束)。預設的tighten和punch_in來自studio.jsonlong_form。要查看確切的詞時間:words.py --project "$P" --src a 61 75。 - 建立 EDL。
cut.py --project "$P" --cuts "$P/cuts.json" --out "$P/edl.json",然後閱讀P/edl.txt。 每個片段必須以一個完整的思想開始和結束。修正任何標記為MID-WORD的內容、以「and」、「so」、「but」結尾的片段,或者跨剪輯重複的詞組。使用words.py ... <from> <to>查看剪輯點附近確切的詞時間。反覆調整,直到回讀的內容讀起來像一個乾淨的腳本。 - 草稿,然後主影片。 對於超過 3 分鐘的內容,先渲染最危險部分的草稿:
render.py ... --preview --only 0,1,2,3。然後是主影片:render.py --project "$P" --edl "$P/edl.json" --out "$E/<name>.mp4"。僅在studio.json如此指定或他們要求時才燒錄內嵌字幕(在第 7 步後加上--captions "$P/captions.json");YouTube 長片通常會改用獨立的.srt檔案。 - 字幕和章節。
captions.py --project "$P" --edl "$P/edl.json" --srt "$E/<name>.srt" --json "$P/captions.json"。閱讀一次 .srt 檔案以檢查聽錯的詞;使用fix_words.py修正並重新執行。對於長度超過約 4 分鐘的影片,寫入P/chapters.json並執行captions.py ... --chapters以獲取 YouTube 章節行(第一行在 0:00,3 行或更多,每行至少 10 秒)。 - QA 閘道。
qa.py --video "$E/<name>.mp4" --project "$P" --edl "$P/edl.json"。閱讀<name>.qa.md:每個FAIL都必須修正;每個AT A CUT行都表示一個可能被剪掉的詞,因此調整該時間段並重新渲染。查看<name>.sheet.jpg(使用「閱讀」工具查看圖片)以檢查黑畫面、不良構圖或模糊。參見reference/qa.md。 - 短片(如果他們發布短片;預設數量來自
studio.jsonshorts.count):參見下一節。 - 交付。 寫入
E/REVIEW.md(範本在reference/review-template.md):你製作了什麼、運行時間、你剪掉了什麼以及原因、每個判斷決定作為一個可翻轉的決策及其時間戳、QA 結果,以及從實際說出的內容中撰寫的建議標題、描述和主題標籤。然後告訴使用者檔案的位置,並要求他們觀看並附上時間戳記來傳送修改意見。
製作短片
首先閱讀 reference/shorts.md。簡短版本:
- 從轉錄稿中挑選可以獨立存在的時刻:一個強有力的開場白(一個主張、一個問題、一個驚人的數字、一個故事的開始)、一個想法、一個回報,長度在 15 到 59 秒之間。將它們排序,並向使用者提議最佳的
studio.jsonshorts.count個,每個附帶一句說明,除非他們說直接進行。少數好的短片勝過湊數:一個 1 到 2 分鐘的錄製通常只能產出 1 或 2 個。如果整個錄製內容已經很短,那麼最佳的 30 到 59 秒的垂直版本就是短片。 - 在
P/shorts/shortN.json中為每個短片設定一個規格(格式參見reference/formats.md):時間段、一個以說話者自己的話語寫成的鉤子標題(2 到 7 個詞,其中一個詞用強調色*標示*)、字幕樣式、可選的caption_holds用於那些逐字字幕會產生干擾的部分(例如清單、電話通話、音樂)。 - 先看靜態畫面:
short.py --project "$P" --spec ... --out "$E/shorts/shortN.mp4" --stills "$P/shorts/stillsN"--at 0.5,3,10。檢查它們:臉部構圖是否恰當、標題是否可讀且不遮擋臉部、字幕是否遮住嘴或底部 15%(平台按鈕位於此處)。 - 在沒有
--stills的情況下渲染,然後對每個短片執行qa.py --video ... --project "$P" --spec ...。 - 永遠不要自己將一段連續的語音寫成幾個時間段(重疊的邊緣會使連接處的音訊加倍)。每個連續的語音段一個時間段;
tighten然後會安全地在長停頓處將其分割,因此在回讀中看到一個時間段內有幾個片段是預期的。
修訂
使用者會發送諸如「1:32 剪掉那個停頓」或「短片 2 開始太慢」之類的意見。使用 edl.txt 將輸出時間映射回 EDL(它列出了每個片段的輸出開始時間),更改 cuts.json 或短片規格,重新執行剪輯和渲染,重新執行 QA,並更新 REVIEW.md 以說明變更的內容。如果某個意見表達了持久的偏好,將其保存到 studio.json。
按需提供的額外功能
- 隱私模糊:在
cuts.json中添加"blur": [{"src","t0","t1","rect":[x,y,w,h]}](使用來源像素;透過sheet.py --times從靜態畫面中找到它們)。在隱私文字上使用幾個小方塊勝過在一個視窗上使用一個大方塊。 - 嗶聲或靜音:在
cuts.json或短片規格中添加"mutes": [{"src","t0","t1"}]。 - YouTube 上傳副本:對於有螢幕文字的影片,
upload_copy.py --master ... --out ...-1440p.mp4(YouTube 會為 1440p 上傳提供更好的編碼)。參見reference/platforms.md。 - 縮圖影格:
sheet.py "$P/src/a.mp4" "$P/thumb-candidates.jpg" --every 4,然後挑選富有表現力、清晰的影格;使用ffmpeg -ss <t> -i src -frames:v 1 thumb.png匯出一個。 - 任何此工具包無法執行的功能(多機位同步、調色、動態圖形、音樂背景):坦白說明,並建議從主影片開始,在他們選擇的編輯器中完成。
reference/troubleshooting.md提供已知問題的解決方案。
參考檔案
reference/editing-craft.md:如何決定剪掉什麼、節奏、鉤子、結尾reference/formats.md:cuts.json、edl.json、短片規格、studio.json、chapters.jsonreference/shorts.md:挑選和製作短片reference/qa.md:品質閘道以及如何閱讀它reference/platforms.md:每個平台的匯出規格和音量reference/troubleshooting.md:音訊過小、手機 HDR、Whisper 時間怪異、電腦速度慢reference/review-template.md:REVIEW.md 佈局