video-tighten 是做什麼的?
需要與本技能相鄰安裝的 resolve-bridge 技能(它在 ../resolve-bridge 中尋找,或設定 RVS_BRIDGE),以及 ffmpeg。
工作流程
- 確認目前狀態。 執行
python3 <resolve-bridge>/scripts/rvs.py --workdir <folder> status。如果還沒有狀態,則採用使用者要修剪的時間軸(請參閱 resolve-bridge)。 - 乾執行。 不修改 Resolve 中的任何內容:
產生python3 scripts/tighten.py --workdir <folder><folder>/.edit/tighten/REPORT.md、report.json與plan.json。 - 與使用者一起閱讀報告。 顯示運行時間的變化、縮短的停頓數量以及每個標記。標記表示腳本無法修正的剪輯(某個詞在入點之前開始,且前面有其他語音),因此必須由人耳檢查,或選用不同的片段。
- 保護已執行的停頓。 作為表演的靜默(目光、笑點前的節奏、對著鏡頭打字)不得被修剪。詢問使用者,然後使用
--skip <clip name or timeline start frame> ...重新執行。 - 套用。
建立python3 scripts/tighten.py --workdir <folder> --skip ... --apply<base>_vNN_tighten,封存先前的版本,儲存專案。每個標記會成為EDIT_CHECKLIST.md中的一個問題,並在時間軸中以片段名稱和時間碼定位。告知使用者新的時間軸名稱與問題 ID。
功能說明
| 項目 | 預設值 | 選項 |
|---|---|---|
| 第一個詞前的空氣 | 0.22 秒 | --pre |
| 最後一個詞後的空氣 | 0.38 秒 | --post |
| 邊緣可往同一段落的靜默中延伸(拯救被截斷的詞) | 最多 0.5 秒 | --max-extend |
| 絕不比其他聲音(呼吸、含糊低語、下一個片段)更近 | 0.08 秒 | --guard |
| 片段內停頓長於…… | 0.75 秒 | --pause-max |
| ……縮短至 | 0.3 秒 | --pause-keep |
| 絕不產生短於此長度的片段 | 0.5 秒 | --min-piece |
| 僅修正邊緣,保留所有停頓 | 關閉 | --no-pauses |
| 非對話的音軌(音樂) | 無 | --ignore-audio-tracks 3 4 |
- 語音偵測 基於能量(
resolve-bridge/scripts/rvs_audio.py):閾值來自整個原始檔案,透過較高的閾值找到詞語,其邊緣會延伸穿過軟結尾和附著的呼吸聲。適用於近距離麥克風錄音。在吵雜的環境中,請更仔細檢查標記。 - 每個縮短的停頓都會變成跳接(片段會分割)。之後執行 video-framing 以使用放大鏡頭或 B-roll 覆蓋它們。
- 連帶移動: 後續片段會往前移動。僅影片的項目(B-roll、疊層)會重新對應到新的時間,並在其區段縮短時被縮短。長度會低於 0.5 秒的 B-roll 會被丟棄並列出。
- 模式: 這是一個結構性步驟,因此使用 resolve-bridge 的 build 模式。當前時間軸上的標題和產生器不會被帶過來(橋接器會發出警告)。在添加圖形前先執行修剪。
尚未處理
- 重疊對話(時間軸中已有的 J/L 剪接):這些片段會維持原樣並被標記。
- 填充詞(「嗯」、「你知道嗎」)需要逐字稿;計畫在後續技能中透過轉錄功能處理。