在瀏覽器中將影片畫格擷取為圖片,意思是請瀏覽器的影片解碼器在本地檔案中跳轉到指定的時間,並將解碼後的靜態畫面寫成 PNG,整個過程完全不將檔案上傳到遠端伺服器。影片畫格擷取工具正是如此運作:您從磁碟中挑選一個本地 MP4、WebM、MOV、M4V 或 Ogg 檔案,輸入一個時間,頁面就會將載入的影片元素跳轉到該位置,在等大的畫布上繪製解碼後的畫格,並在當前分頁中產生一個可下載的 PNG。所有處理都在本地完成——檔案不會被上傳,影片不會被重新編碼,儲存的 PNG 與解碼畫格的原生尺寸一致。由於結果是單張靜態影像而非批次處理,這種做法非常適合用於快速參考圖、縮圖、投影片、社群貼文、文件說明,以及其他任何想從您電腦上已有的媒體中擷取單張圖片的場景,額外的好處是原始影片完全不會離開您的裝置。

extract video frames to images online
extract video frames to images online

支援的格式與限制範圍

畫格擷取完全在瀏覽器的媒體解碼器內執行,因此能夠擷取靜態影像的檔案,取決於您的瀏覽器實際能解碼的內容。影片畫格擷取工具接受 MP4、WebM、MOV、M4V 與 Ogg 檔案,但磁碟上的副檔名只是容器——容器內儲存的編解碼器必須是您瀏覽器支援的,這正是某些看似有效的檔案卻無法開啟的原因。

共用影片安全政策適用於所有輸入。檔案不得超過 500 MiB,長度不得超過五分鐘,任一邊長不得超過 4096 像素,總面積不得超過 3840 × 2160 像素。任何超出這些限制的內容都會在開始解碼前遭到拒絕。

在這些硬性限制範圍內,時間欄位與解碼器所使用的數值如下:

參數允許的值
容器格式MP4、WebM、MOV、M4V、Ogg
最大檔案大小500 MiB
最大長度5 分鐘 (300 s)
最大邊長4096 px
最大面積3840 × 2160 px
時間欄位範圍0 至回報的長度,允許小數
輸出原生解碼尺寸的 PNG

這些是固定的上限,並非偏好設定。檔案支援的副檔名是開啟檔案的必要條件,而非充分條件,這個落差正是大多數擷取失敗的來源。

從本地影片擷取 PNG 畫格

每次擷取都會產生一張 PNG,來源是您指定時間的解碼畫格。本地流程分為三個步驟,期間由頁面負責跳轉、畫布繪製與 PNG 編碼。整個過程完全不會對原始影片進行重新編碼。

  1. 選擇一個支援的本地影片,並等待其長度與預覽載入完成。檔案選擇器只接受來自您自己電腦的檔案。選定檔案後,頁面會讀取其中繼資料,並以秒為單位回報長度;該數值就是時間欄位的上限,而預覽縮圖則能在您確定時間位置前提供最後的確認。
  2. 輸入介於零與顯示長度之間的畫格時間,必要時可使用小數。可以使用整數秒,也可以使用像 12.5 或 0.083 這類小數值,因此您能精準指定 24 fps 影片的第三個畫格,或達到毫秒級的位置。超出零到長度範圍的時間將不被接受。
  3. 選擇「擷取 PNG 畫格」,確認靜態影像,並下載本地的 PNG。瀏覽器會將已載入的影片元素跳轉到所要求的時間,把目前的解碼畫格繪製到等大的畫布上,將其編碼為 PNG,並提供下載。輸出檔名會內嵌您選擇的時間,以便對應回原始影片。PNG 保留解碼畫格的尺寸,因此 1920 × 1080 的來源會產生 1920 × 1080 的 PNG。

繪製步驟使用的是標準的 Canvas drawImage API,整個操作保持在本地:點陣圖會在當前分頁中編碼,而不是傳送到伺服器。如果您想要一份專注於 PNG 輸出、逐步執行的同類工作流程,可以參考 以精確時間將影片畫格擷取為全尺寸 PNG 的相關說明。本工具在解碼後不會進行縮放、裁切、銳化、內插或套用任何濾鏡——如果瀏覽器解碼後的畫格含有透明通道,該通道會在 PNG 中保留下來;否則 PNG 會是完全不透明的背景。

為什麼您指定的時間可能落在鄰近畫格

您在時間欄位中輸入的數字是媒體時間軸上的位置,並不等同於能精確對應到原始畫格的保證。當瀏覽器將 影片元素的 currentTime 設定到指定值 時,解碼器會跳到緩衝中最接近的已解碼畫格,而該畫格為何,取決於一些您無法直接控制的因素:編碼檔案中的關鍵畫格配置、可變畫格率標記、會調整呈現時間的編輯列表、解多工器執行的時間戳捨入,以及編解碼器本身。

對於大多數靜態影像——例如一分鐘處的縮圖、投影片用的參考畫面、快速的視覺註記——這種差異是看不出來的。只有在您要求特定的編號畫格、預期介於兩個畫格之間的位置會精準落在中間,或是逐格比對擷取出的 PNG 與其他工具的輸出時,差異才會變得明顯。

頁面會記錄您要求的時間,而非檢查封包時間戳,因此即使實際的解碼畫格來自鄰近的關鍵畫格,輸出檔名仍會帶有您輸入的數值。當任務目標是逐格精準的編輯工作時,這種近似特性就是將工作流程導向其他工具的限制所在。

為什麼某些檔案可以開啟,其他卻不行

MP4、MOV 或 M4V 檔案屬於容器;其中的音訊與視訊串流使用的是特定的編解碼器。瀏覽器必須同時支援該容器與該編解碼器,才能播放檔案,更遑論讓頁面在其中跳轉並擷取畫格。

現代基於 Chromium 的瀏覽器通常能解碼 MP4 中的 H.264 視訊,以及 WebM 中的 VP8、VP9 與 AV1。其中部分瀏覽器也支援 HEVC (H.265),但並非全部都支援,而 HEVC-in-MP4 正是在某台機器能播放、換到另一台卻無法開啟的最常見原因。純音訊的 Ogg (Vorbis、Opus) 與 Theora-in-Ogg 情況相同:雖然辨識得出副檔名,但內部的編解碼器組合必須與瀏覽器的解碼器清單相符。

如果您的檔案副檔名在允許清單內,但頁面卻拒絕開啟,容器內部的編解碼器是最有可能的原因。在不重新編碼的情況下重新封裝檔案(僅更改容器),或是在桌面工具中先將其轉檔為廣泛支援的編解碼器組合,然後再執行免上傳的瀏覽器步驟,通常就能解決問題。

何時應改用桌面工具

瀏覽器方案能處理大部分「我想從這段影片中取一張靜態影像」的需求,但仍有少數任務超出其適用範圍。了解這條界線在哪裡,能避免您誤信瀏覽器悄悄以近似方式產生的靜態影像。

任務瀏覽器畫格擷取工具專用桌面工具
在已知時間戳取得單張靜態影像非常適合殺雞用牛刀
依畫格編號擷取(精確的第 N 個畫格)無法保證更適合
批次擷取每 N 個畫格或每 N 秒無法單次完成更適合
HDR 轉 SDR 或需要色彩管理的輸出不支援更適合
超過 5 分鐘 / 500 MiB 的素材依政策拒絕更適合
瀏覽器無法解碼的編解碼器檔案將無法開啟更適合
超出解碼畫格所提供範圍的 Alpha 通道工作流程有限更適合

至於其他情況——例如從兩分鐘長的 MP4 在 12.5 秒處擷取的縮圖、從螢幕錄製中擷取用於文件說明的靜態影像、從影片片段中抓取用於投影片的圖片——影片畫格擷取頁面上的本地、免上傳流程就能在瀏覽器內完成,而不必將檔案外傳。

如果您正在權衡各種方案,從影片擷取音訊的意義與作法 對此有詳細說明。