/edit-recording — 長格式編輯
目標:$ARGUMENTS(Resolve專案名稱、錄製檔案、或留空 = Resolve中開啟的專案)。
在執行任何操作前:閱讀設定檔(video-toolkit §0)並遵循 editing-rules —— 錄製資料夾為唯讀,除非被要求,否則不處理音訊/圖片;先提案再套用。檢查 toolbox_status,並確保 Resolve MCP 回覆 project_manager get_current(免費版:使用者必須在專案開啟的狀態下執行「Workspace → Scripts → Utility → resolve_bridge」)。
專案資料夾:<頻道資料夾>/<Resolve專案>/(video-toolkit §0)。
先規劃。 如果專案資料夾中的 plan.md 狀態為 Status: approved,則遵循它:其目標、保留哪些部分、新增哪些疊加層、圖形、B-roll 和音效,以及使用哪種工具。若無已核准的計劃,步驟 1–3(讀取時間軸、轉錄、提案剪輯)是可以的,因為它們不會改變任何內容,並且能為計劃提供資訊。但在新增疊加層、新素材、Blender 鏡頭、新的螢幕錄製或音效之前,請執行 plan 技能:錄製內容是「已存在的部分」,而計劃決定每個部分需要什麼。除非計劃要求,否則切勿錄製新的螢幕畫面。
步驟
- 取得時間軸 — 從 Resolve 取得目前的專案 + 時間軸。如果還沒有專案,則從錄製內容建立一個:在匯入前設定時間軸幀率(
recordings.fps/resolve.timeline_fps)和解析度,然後要求使用者設定播放幀率以匹配(API 無法做到)。匯入螢幕檔案,如果recordings.separate_camera_file為 true,則依recordings.camera_file_pattern匯入攝影機檔案。 - 擷取佈局 — 將時間軸項目(Audio 1 = 語音軌)讀入
timeline/<時間軸名稱>.audio1.json。一個工作階段可能包含多個檔案,這些檔案在 Audio 1 中連續播放;記錄它使用的每個來源檔案。如果時間軸上有額外的錄音機音軌(桌面音訊、重複的麥克風),請指出它們並保持不變。 - 轉錄 — 對 Audio 1 使用的每個來源檔案執行
transcribe(麥克風 =recordings.mic_audio_stream,vocab來自設定檔),結果存入transcripts/,然後執行timeline_transcript產生以時間軸時間為準的<時間軸名稱>.timeline.json/.srt/.txt。在對 Audio 1 進行任何移動或修剪的編輯後,重新執行此步驟。 - 提案剪輯 — 填充詞、長停頓、錯誤開始和重拍,附上時間軸時間碼以及每個剪輯點前後的詞彙,以表格呈現。等待使用者核准(全部、部分或調整後)。
- 套用剪輯 — 在 Resolve 中以非破壞性方式進行(在複製的時間軸上,例如
<時間軸名稱>_cut),然後重新讀取項目並檢查是否有間隙/重疊。對新的時間軸重新執行步驟 3 的timeline_transcript。 - 疊加層 — 提案與口語詞相關聯的卡片(標題、提示、底部三分之一、訂閱)。先從攝影機片段測量人臉安全區域。在
animations/中建立一個 HyperFrames 專案(使用hyperframes技能;僅本地渲染),透過render_hyperframes以時間軸幀率渲染帶 Alpha 通道的mov檔案,匯入,並將每個卡片放置在該詞的錄製幀對應的空白視訊軌道上。重疊的卡片放在不同的軌道上。重新讀取並比較。 - 音效 — 疊加層的音效:先執行
sfx_search,再執行sfx_generate;使用者試聽;sfx_mark記錄決定。將每個疊加層的音效提示預先混音為一個 WAV 檔案(使用 ffmpeg,因為 API 會忽略片段音量),並將其放置在空白音訊軌道上,絕不放在 Audio 1 上。 - 渲染 —
render prepare_delivery_job(YouTube 1080p/4K,時間軸幀率)到<專案>/renders/,start,verify_output。檢查結果的音量。
完成 = 在 <專案>/renders/ 中有已核准的渲染檔,並保留轉錄檔和疊加層專案以供後續修改。