abox.tools

語言: 繁體中文

怎麼從正好那一幀做影片封面圖

封面圖和截圖的差別大約是四分之一秒:眼睛睜著、球還在空中的那一幀。走到那一幀,按平臺的尺寸、壓在它的位元組上限之下,是一條完全在瀏覽器裡跑的三步鏈。

以 Markdown 檢視

簡短的答案

  1. 抓住那一幀。開啟影片抽幀,把影片拖進去,沿著檔案自己的幀列表逐幀走到分毫不差的那個瞬間。存成 PNG:無損的副本,這樣什麼都還沒被決定。
  2. 取好景。把 PNG 帶到圖片改尺寸:裁成平臺的形狀 — YouTube 是 16:9 — 定好長邊;1280 畫素才是 YouTube 真正要的數字。
  3. 壓到上限。最後交給圖片壓縮,把平臺的限制設成目標 — YouTube 封面圖是 2 MB — JPEG 還是 WebP 讓它自己挑。

這條鏈上沒有任何一環上傳任何東西——影片還沒釋出時這一點很要緊,而封面圖之所以要做,恰恰是因為影片還沒公開。

為什麼逐幀勝過暫停

暫停播放器再截圖,輸兩回。暫停停在播放器停得下來的地方——最近的一處,而不是你想要的那一幀——而截圖是給播放器拍的照片:它的解析度、它的介面、它的色彩處理,而不是檔案本身的。

抽幀工具走的是檔案自己的幀列表,雙向都能一幀一幀走,交到你手上的是解碼出的幀本身,影片的完整解析度。在那個瞬間前後各找四分之一秒,通常就是封面圖住的地方:兩幀顯眼畫面之間的那一幀,動勢讀得出來,又沒有一處糊掉。

就算最終封面圖會是 JPEG 或 WebP,抓到的也先存 PNG。PNG 是那一幀的精確副本;這樣一來,所有有損的決定只在最後、在位元組預算之內發生一次,而不是發生兩次、層層疊加。

一段影片裡時間碼可見的靜幀,旁邊是逐幀與拖動的控制元件,以及它取自的精確時刻。
走到那一幀,而不是暫停後截圖。這兩者的差別究竟在哪,上面一節說得清楚。

平臺的算術

先裁再壓,理由和照片指南裡的一樣:畫素就是預算。從 4K 幀裡裁出 16:9、降到 ⁦1280×720⁩,壓縮器就能把那 2 MB 花在沒人需要眯起眼睛才看得清的畫質上。改尺寸工具的裁剪框能鎖定 16:9,所以形狀是一次拖拽而不是一道算術題;文字和人臉要留在中間三分之二,因為資訊流會把四角削圓,還會把時長壓在右下角。

改尺寸工具裡填了寬 1280、高 720,下面是這張靜幀會變成什麼樣的摘要。
接下來就是算術:平臺要什麼,就當成兩個數字填進去。

找不到那個瞬間時,來一張聯絡表

如果正確的瞬間藏在十分鐘素材裡的某處,抽幀工具的另一個模式每隔 N 秒存一張靜幀,整批打包成 ZIP。像翻聯絡表一樣翻這些靜幀,記下最接近的那張的時間,再從那裡逐幀走。這比來回搓進度條快,而且還給你留下一個候選資料夾,等哪天平臺要另一種形狀時用得上。

如果你每週都做這件事

這幾步分住在三個頁面上是有意為之:每個頁面只做一件事,每一個都能獨自證明沒有任何東西離開你的電腦。但每一步都是開源的:MIT 許可證,每個工具一個資料夾,零依賴的 ES 模組,README 講清解碼器、重取樣和位元組目標的搜尋。

如果封面圖是每週的交付物,就把程式碼代理指向程式碼儲存庫,讓它做出單頁版:逐幀走、按你的平臺預設裁剪、壓到它的上限,一顆按鈕。這些模組就是寫來被讀的,把它們帶走,正是許可證存在的意義。