簡短的答案
- 抓住那一幀。開啟影片抽幀,把影片拖進去,沿著檔案自己的幀列表逐幀走到分毫不差的那個瞬間。存成 PNG:無損的副本,這樣什麼都還沒被決定。
- 取好景。把 PNG 帶到圖片改尺寸:裁成平臺的形狀 — YouTube 是 16:9 — 定好長邊;1280 畫素才是 YouTube 真正要的數字。
- 壓到上限。最後交給圖片壓縮,把平臺的限制設成目標 — YouTube 封面圖是 2 MB — JPEG 還是 WebP 讓它自己挑。
這條鏈上沒有任何一環上傳任何東西——影片還沒釋出時這一點很要緊,而封面圖之所以要做,恰恰是因為影片還沒公開。
為什麼逐幀勝過暫停
暫停播放器再截圖,輸兩回。暫停停在播放器停得下來的地方——最近的一處,而不是你想要的那一幀——而截圖是給播放器拍的照片:它的解析度、它的介面、它的色彩處理,而不是檔案本身的。
抽幀工具走的是檔案自己的幀列表,雙向都能一幀一幀走,交到你手上的是解碼出的幀本身,影片的完整解析度。在那個瞬間前後各找四分之一秒,通常就是封面圖住的地方:兩幀顯眼畫面之間的那一幀,動勢讀得出來,又沒有一處糊掉。
就算最終封面圖會是 JPEG 或 WebP,抓到的也先存 PNG。PNG 是那一幀的精確副本;這樣一來,所有有損的決定只在最後、在位元組預算之內發生一次,而不是發生兩次、層層疊加。
平臺的算術
先裁再壓,理由和照片指南裡的一樣:畫素就是預算。從 4K 幀裡裁出 16:9、降到 1280×720,壓縮器就能把那 2 MB 花在沒人需要眯起眼睛才看得清的畫質上。改尺寸工具的裁剪框能鎖定 16:9,所以形狀是一次拖拽而不是一道算術題;文字和人臉要留在中間三分之二,因為資訊流會把四角削圓,還會把時長壓在右下角。
找不到那個瞬間時,來一張聯絡表
如果正確的瞬間藏在十分鐘素材裡的某處,抽幀工具的另一個模式每隔 N 秒存一張靜幀,整批打包成 ZIP。像翻聯絡表一樣翻這些靜幀,記下最接近的那張的時間,再從那裡逐幀走。這比來回搓進度條快,而且還給你留下一個候選資料夾,等哪天平臺要另一種形狀時用得上。
如果你每週都做這件事
這幾步分住在三個頁面上是有意為之:每個頁面只做一件事,每一個都能獨自證明沒有任何東西離開你的電腦。但每一步都是開源的:MIT 許可證,每個工具一個資料夾,零依賴的 ES 模組,README 講清解碼器、重取樣和位元組目標的搜尋。
如果封面圖是每週的交付物,就把程式碼代理指向程式碼儲存庫,讓它做出單頁版:逐幀走、按你的平臺預設裁剪、壓到它的上限,一顆按鈕。這些模組就是寫來被讀的,把它們帶走,正是許可證存在的意義。