影片疊加圖形(Video Phủ Hình)
適用場景:需要保留說話者的聲音與存在感,但優先顯示縮小畫面、文字與圖形時。請先閱讀 CLAUDE.md,檢視內容與來源,建議格式後等待選定(若尚未選擇)。不處理含有可辨識資料的媒體;應暫停該部分,由負責人先行移除。不得自行發佈、送出、提交或推送。
- 執行
python3 scripts/chuan_bi_giong.py <video> Output/video/<slug>。閱讀報告並聆聽原始聲音;必須使用scripts/tim_loi_noi.py偵測口誤後再進行剪輯(聲音準備腳本已呼叫,可單獨執行修正)。不得僅依據已簡化的字幕推斷所有口誤。 - 將原始影片標準化為 9:16 直立畫布,採用 letterbox 方式,不裁切面部特寫。在此畫布上測量臉部:
{x,y,radius}標準化為 0–1 區間,radius 以寬度為基準,預設值 0.14。不同比例的來源需先轉換;若臉部移動位置則重新檢查。不啟用自動臉部追蹤;使用涵蓋所有臉部位置的區域框,或於構圖變更時拆分 composition。僅使用已根據專案規則移除可辨識資料的影片。 - 將
{w,s,e}格式的字詞轉為{text,startMs,endMs},其中毫秒 = 秒 × 1000。保留原始字詞與原始 segment;音訊依循相同 segment 從影片中剪出。不得同時使用預先剪好的聲音與原始字詞。媒體檔案放置於 public 目錄,使用相對路徑。audio可為空值(因為PhuHinh使用影片內的聲音);music、musicVolume為選用,音樂不屬於可伸縮的影片圖層。 - 建立 beats
{atPhrase,nth?,untilPhrase,untilNth?,mode,content,source?,box?}。最後一個短語結束於最後一個字詞的 endMs;nth 從 0 開始計數。beats 不可重疊,時間點必須遞增。空隙自動回到卡片模式;建議覆蓋所有口語內容以清楚檢視節奏。full:說話者恰好填滿畫面,contain 模式,不裁切特寫,最多 8 秒(含連續多個 full beat);card:說話者縮小至左上角,圖形顯示於下方;over:圖形半透明,box 需避開臉部(包括畫面正在轉換時);cover:以背景與圖形完全覆蓋,但影片聲音繼續播放。畫面轉換連續進行 650 ms。 - Content 的
kind可為word、number、list、compare、steps、bars和text。number需附加value與spoken(該數字的語音短語,例如 value 12, spoken “十二”)。spokenNth為選用,用於計數同一 beat 內數字短語出現的次數,從 0 開始;項目的nth仍依據整個剪輯後的口語內容。數字值會逐漸增加,僅在說完數字短語時才達到目標值。多項類型使用items:[{text,atPhrase,nth?,value?,spoken?}],每個項目僅在提及時顯示;bars 使用 value,compare 分欄,steps 使用箭頭。spoken為手動對應,需要人員驗證其與 value 的意義;腳本無法理解以文字書寫的數字語意。不得在標題或項目標籤中預先放置數字;由 value 負責顯示數字。每個項目保持簡短,避免超出區域。主文字至少 72 px。 - Box
{x,y,width,height}以 1080×1920 px 為單位計算,x 限制在 64–1016,y 限制在 100–1260;預設 card 位於 y620,over 位於 y900。字幕位於 y1330,範圍 1300–1520。字幕下方的來源必須包含作者/組織、年份、連結及存取日期(針對醫療資訊);未經查證的事實必須標註「待審核」。如需 AI 語音標籤,使用aiVoice:true。 - 撰寫包含 props 的 JSON,執行
python3 scripts/kiem_phu_hinh.py <du-lieu.json>;必須修正未偵測到的時間點、過長的 full beat、遮擋臉部的 over beat,以及未出現在口語中的數字。回傳碼 0 表示資料檢查通過,1 表示檢查錯誤,2 表示讀取錯誤。臉部檢查工具在畫面穩定後進行,並在每次畫面轉換後的 650 ms 內以 30 fps 取樣;component 在渲染期間會額外檢查每一幀。應開啟實際幀以檢查臉部移動與文字溢出。接著在 studio/data 中建立 TS 檔案,export default{id:'VideoPhu',format:'PhuHinh',props:...}。請參考mau-moi.ts;MauPhuHinh為含佔位影片的靜音範例,非已審核影片。 - 執行
cd remotion && npx --no-install tsc --noEmit;使用npx --no-install remotion render src/index.ts VideoPhu out/nhap.mp4 --codec h264進行草稿渲染。檢視所有圖形類型、模式轉換幀、每個 segment 的開頭/結尾,聆聽 cover 模式下的聲音,檢查數字是否在正確時機達到目標值,以及清單是否在口語之前顯示。必要時對最終版本進行口語偵測,並重新聆聽接合點。 - 使用兩遍 loudnorm 標準化音訊至 −14 LUFS,量測真實峰值 −1.5 dBTP,如同
video-thuy-mac/SKILL.md中的音訊標準化章節;務必寫入不同的檔案,並對最終版本重新量測。交付預覽版、原始素材、資料與未經核實的部分。注意:腳本與畫面不能取代責任人對醫療/廣告內容的審核,發佈前必須經過相關審查。