紅燈移除段改為不對稱偏移(前砍後留)

- 新增 cut_before_stop: 進入紅燈端(速度到 0)移除起點再往前砍,連減速進站一起去掉
- 新增 keep_after_stop: 綠燈起步端(速度從 0 開始跑)移除終點提早結束,多留卡達起步畫面
- 取代原本對稱的 stop_padding;兩者預設皆 2 秒,可於 config.json 調整
- 同步更新 README 參數說明

本次調整由 Claude Opus 4.8 (1M context) 協助處理。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-02 18:46:33 +08:00
parent 4c38eb68ec
commit 8f5c01b56c
3 changed files with 15 additions and 7 deletions
+11 -5
View File
@@ -104,8 +104,11 @@ SMOOTH_WINDOW = 5 # 中位數濾波視窗(取樣點數,奇數)
MERGE_GAP = 3.0 # 兩個紅燈移除段若間隔小於此秒數,視為同一段並合併 (秒)
# --- 剪輯 / 輸出參數 ----------------------------------------
STOP_PADDING = 0.0 # 移除紅燈區段時,頭尾各「保留」幾秒停止畫面 (秒)
# 0 = 完整移除整段停等;設成 0.5 可讓剪接點稍微柔和
# 紅燈移除段的頭尾「不對稱」微調:
CUT_BEFORE_STOP = 2.0 # 進入紅燈端(速度到 0 那邊): 移除起點再往前幾秒,
# 連減速進站那段也一起砍掉 (秒)
KEEP_AFTER_STOP = 2.0 # 綠燈起步端(速度從 0 開始跑): 移除終點提早幾秒,
# 多留幾秒「卡達起步」的畫面 (秒)
MIN_KEEP = 0.8 # 保留片段若短於此秒數就丟棄,避免產生超碎片段 (秒)
USE_GPU = True # EasyOCR 是否用 GPU。需 CUDA + GPU 版 PyTorch。
# 設 True 時若沒有 CUDA,EasyOCR 會自動退回 CPU(不會壞)
@@ -341,8 +344,10 @@ def find_keep_intervals(samples: List[Sample], duration: float, interval: float
# 連續停止超過門檻 → 列為移除(等紅燈)
if run_dur >= STOP_SECONDS:
rstart = run_start + STOP_PADDING
rend = run_end - STOP_PADDING
# 進入紅燈端往前多砍 CUT_BEFORE_STOP 秒(連減速進站一起砍);
# 綠燈起步端提早 KEEP_AFTER_STOP 秒結束(多留卡達起步畫面)。
rstart = max(0.0, run_start - CUT_BEFORE_STOP)
rend = run_end - KEEP_AFTER_STOP
if rend > rstart:
removals.append((rstart, rend))
i = j + 1
@@ -777,7 +782,8 @@ _CONFIG_KEYS = {
"min_confidence": "MIN_CONFIDENCE",
"smooth_window": "SMOOTH_WINDOW",
"merge_gap": "MERGE_GAP",
"stop_padding": "STOP_PADDING",
"cut_before_stop": "CUT_BEFORE_STOP",
"keep_after_stop": "KEEP_AFTER_STOP",
"min_keep": "MIN_KEEP",
"use_gpu": "USE_GPU",
"reencode": "REENCODE",