影片品質檢核 — 發布閘門
一部影片不是在渲染完成時就結束了;而是在它被探查、在聯繫表上被「看到」、並經過正規化之後才算完成。此技能適用於任何檔案,無論其產生方式為何。
1. 探查事實(永遠不要假設)
scripts/probe.sh video.mp4
將每個值與要求的規格(時間軸、簡報、平台規格)進行比對:
| 檢查項目 | 預期值 |
|---|---|
| 持續時間 | 要求的持續時間 ± 0.1 秒 |
| 影格率 / 解析度 | 要求的影格率 / 寬×高 |
| 編碼格式 / 像素格式 | h264 / yuv420p(yuvj420p = 全範圍變體,通常可接受) |
| 音訊串流 | 當影片應有聲音時存在 |
| 整合響度 | −14 ± 2 LUFS(社交平台會正規化至接近 −14) |
任何不匹配都是渲染的錯誤,而非品味問題。請修正上游來源,重新渲染。
2. 響度:測量 → 正規化(僅音訊,幾秒鐘內完成)
# 測量
ffmpeg -hide_banner -i video.mp4 -af ebur128 -f null - 2>&1 | awk '/Integrated loudness/{getline; print}'
# 正規化至 −14 LUFS(影片串流複製,無需重新編碼)
ffmpeg -i video.mp4 -c:v copy -af "loudnorm=I=-14:TP=-1.5:LRA=11" -c:a aac -b:a 192k video_norm.mp4 \
&& mv video_norm.mp4 video.mp4
永遠不要用音量濾鏡靠耳朵正規化 — LUFS 才是平台實際使用的單位。
3. 視覺檢查:聯繫表 + 影格條
scripts/contact_sheet.sh video.mp4 contact.png 2 8x # 每 0.5 秒 1 個圖塊,8 欄
# 在關鍵時刻(例如 T 處的轉場)周圍連續 12 個影格:
ffmpeg -y -ss <T-0.2> -i video.mp4 -frames:v 12 -vf "scale=320:-1,tile=6x2" strip_T.png
像閱讀電影膠片一樣閱讀聯繫表:節奏是否可見?剪輯是否落在節拍網格上?任何場景是否空無一物或過於擁擠?聯繫表會隱藏動態品質 — 在簽核前,務必至少觀看完整影片一次。
4. 評論審查(製作者 ≠ 評審)
審查的是渲染結果 — 而非原始素材或意圖 — 每項評分 0-10:
- 鉤子 — 前 2 秒內是否有最大膽的影格?
- 可讀性 — 文字是否大於最小尺寸、位於安全區域內、無重疊/裁切、停留時間足夠?
- 動畫 — 是否使用非線性緩動、多重屬性進場、交錯效果、退場速度比進場快?
- 同步 — 事件是否落在節拍/字詞網格上?
- 風格一致性 — 是否使用同一色系、同一字型系統、統一的轉場?
- 聲音 — 口白清晰、背景音樂降低、目標響度、無削波?
協議:記錄最差的 3 個缺陷(附時間戳)→ 僅修正這些問題 → 重新渲染 → 重新評分。3-5 輪後將所有項目達到 ≥8/10 是正常的。請在全新的環境(或子代理)中執行評論:程式碼的作者是最差的程式碼審查者。
5. 確定性(適用於生成式/可重複影片)
# 相同輸入的兩個指紋必須逐位元組匹配
ffmpeg -i video.mp4 -map 0:v -f framemd5 - | sha1sum
相同流程、相同輸入 → 不同的雜湊值表示存在隱藏的時鐘時間、未設種子的隨機性或累積狀態:請修正產生器,而不是「重新擲骰」。
6. 交付檢查清單
video.mp4 H.264, yuv420p, +faststart, −14 LUFS
poster.png/jpg 鉤子影格
contact.png 2 fps 的連續影片條
sources 產生影片的原始素材(可編輯 > 最終成品)
告訴使用者需編輯哪個檔案來更改一個項目,以及重新渲染的指令。
證據原則
當審查者(無論是人類或視覺模型)聲稱存在幾何缺陷(例如「文字被裁切」、「元素重疊」)時,請先透過測量(播放器檢查、像素取樣或產生程式碼本身的度量)確認,再「修正」一個非錯誤。審查者對邊緣的幻覺遠比渲染器裁切文字來得常見。