影片畫面擷取工具可從本機 MP4、WebM、MOV、M4V 或 Ogg 檔案中拉出一張 PNG 靜態畫面,整個過程完全在瀏覽器內執行,因此您無需上傳影片即可測試線上畫面擷取功能。頁面接受單一短片,讀取其解碼後的時長與預覽,讓您輸入以秒為單位(可含小數點)的時間,將隱藏的媒體元件跳到該位置,把解碼後的畫面繪製到同尺寸的畫布上,再將該畫布編碼為 PNG,並在同一分頁中提供可下載的檔案。沒有任何資料會離開裝置。PNG 保留了解碼畫面的原始像素尺寸,且僅在瀏覽器解碼的影片畫面帶有 alpha 通道時保留透明度。輸出檔名會嵌入所要求的時間,讓您一眼就能分辨兩張靜態畫面。任何人在投入更長的工作流程之前評估線上畫面擷取工具,都能在此同一分頁中獲得一次忠實的試用。

搜尋詞中「線上測試」這部分在這裡很重要。多數標榜為線上畫面擷取器的工具會把檔案上傳到伺服器、將轉碼工作排入佇列,然後回傳結果。這種模式對快速試用有明顯缺點:光是上傳流量就可能遠超過一段短測試影片的大小,佇列會增加延遲,而且檔案在您等待期間會存放在他人的基礎設施上。一個在瀏覽器內完成解碼、跳轉、繪製與編碼的工具,則能把整個往返流程壓縮成單一的本機操作。您想試用的影片留在自己的機器上,唯一回到您手上的就是您剛剛存下的那張 PNG。

extract frames from video test online
從影片擷取畫面:在本機測試線上方法

此工具如何讀取您的本機影片

頁面透過瀏覽器原生的 HTMLMediaElement 管線讀取所選檔案。檔案載入後,頁面會從媒體元件讀取所回報的時長,並顯示預覽,讓您確認影片已正確開啟。時間欄位接受從零到該回報時長之間的任何數值,且欄位接受小數,因此輸入 12.5 代表十二點五秒。當您觸發擷取時,頁面會將媒體元件的 currentTime 設為該數值,等待跳轉完成,將當前解碼後的畫面繪製到同尺寸的畫布上,再使用瀏覽器內建的編碼器將畫布編碼為 PNG。該 PNG 會以本機下載 URL 的形式暴露在目前的分頁中。

由於每個步驟都在瀏覽器內執行,原始影片檔案永遠不會被修改。您存下的 PNG 是一張全新、尺寸為解碼畫面像素尺寸的影像;原始容器、編解碼器、色彩空間或音訊的任何資訊都不會被改動或抽換成其他格式。若解碼、跳轉、畫布繪製或 PNG 編碼因任何原因失敗,頁面會回報錯誤,而不是丟給您一個空白檔案。影片畫面擷取工具在簡單的情況下保持低調,並在出問題時顯示真實的錯誤訊息。

三步驟從影片擷取單一畫面

  1. 選擇一部支援的本機影片,並等待其時長與預覽載入完成。從您的裝置中挑選一段短的 MP4、WebM、MOV、M4V 或 Ogg 檔案。頁面需要時長資料才能渲染時間欄位的範圍,因此在繼續之前,請等待預覽畫面與時長讀數出現。
  2. 輸入介於零與顯示時長之間的畫面時間,必要時可包含小數。以「時刻」為單位輸入時間。整數值(例如 7)能涵蓋大多數一般情況;小數值(例如 1.25 或 0.083)可讓您對準一秒鐘之內的某個瞬間。頁面會驗證所輸入時間是否落在回報的時長範圍內;超出該範圍的數值將被拒絕。
  3. 選擇「擷取 PNG 畫面」、確認靜態畫面,然後下載本機 PNG。觸發擷取動作,查看產生的靜態畫面以確認就是您要的那個瞬間,然後儲存 PNG。下載會在目前的分頁中進行,檔名包含所要求的時間,方便您將多次擷取結果整理歸檔。

如果您得到的靜態畫面並非您預期的精確畫面,請別急著認為工具壞了。您要求的時間是時間軸上的一個位置,而瀏覽器可能會因為關鍵影格、可變幀率、編輯列表、時間戳記捨入或編解碼器的行為,而跳到鄰近的已解碼畫面。請將時間小幅地前後調整,再試一次。

輸入、限制與瀏覽器實際接受的能力

此工具受限於一項共用的本機影片安全政策。以下每一項限制都會在擷取開始前強制執行,因此超出這些限制的檔案會在第一時間被拒絕,而不是在跳轉或編碼過程中默默失敗。

限制允許的數值
最大檔案大小500 MiB
最大時長5 分鐘
每邊最大像素4096 px
最大輸出面積3840 × 2160 px
時間欄位範圍0 到回報的時長
時間欄位精度小數秒(允許小數)
支援的容器MP4、WebM、MOV、M4V、Ogg
輸出一張原生解碼尺寸的 PNG

即使副檔名正確,MP4 檔案仍可能無法開啟,因為 MP4 是一種容器而非編解碼器。瀏覽器還必須支援檔案內部所儲存的特定音訊與視訊編解碼器。WebM、MOV、M4V 和 Ogg 檔案也遵循相同的規則:副檔名只是提示,真正的關卡在於編解碼器。解碼、跳轉、畫布與 PNG 編碼的失敗都會被回報,而不是產生空白的下載檔案,因此絕對不會出現悄悄的空白結果。

為什麼「幾乎即時」的時間不一定是逐幀精確

影片檔案並不是一連串等距的快照。大多數影片只儲存少量稱為關鍵影格的完整畫面,介於其間的畫面則由關鍵影格加上動態資料重建而成。當瀏覽器跳到您要求的時間時,它會尋找能夠呈現的最近一個已解碼畫面;您輸入的時間是目標,但您實際得到的畫面,則是跳轉穩定下來時解碼器剛好持有的那一個。一段 30 fps、每 60 幀一個關鍵影格的影片,可能會落在距離所要求時間整整一秒的位置。可變幀率的影片、會重新計時片段的編輯列表,以及容器內部的時間戳記捨入,都會各自加入位移。

這就是為什麼頁面記錄的是「所要求的時間」,而不是承諾精確編號的來源畫面。如果您需要幀精確的剪輯工作、HDR 或色彩管理輸出、alpha 通道工作流程、整段時間軸上的批次擷取,或瀏覽器根本無法解碼的格式,那麼專屬的桌面工具才是正確答案。對於更常見的情境——擷取縮圖、參考靜態畫面、螢幕錄影中的一張投影片,或快速視覺引述——在時間欄位上進行小幅調整與重試的小循環,就足以讓您逼近目標。關於精度限制的更深入說明,請參閱從影片擷取畫面:精度限制詳解

本機 PNG 畫面何時才是合適的輸出

此頁面是為「一張靜態畫面就足夠」的情境而設計。部落格文章的縮圖、簡報用的參考圖、教學錄影中的擷圖、想分享的空拍影片片段中的一張畫面、講課錄影中要附加到引用註腳的單一畫面,或快速檢查轉場在影片中段呈現的樣貌,都符合這個使用模型。PNG 會以解碼畫面的原生像素尺寸儲存,這表示 1080p 的來源可提供一張 1920 × 1080 的靜態畫面,您稍後可在任何影像編輯器中進行裁切、調整大小或加註。

此頁面也很適合用於短暫的健全性檢查。如果您想確認某個 MP4 能否在瀏覽器管線中開啟,把檔案丟進來並執行一次擷取,會比打開開發者控制台去探測媒體能力來得快。若預覽載入且 PNG 成功產出,表示容器內的編解碼器組合是可用的;若頁面回報解碼失敗,您在把檔案送到任何地方之前,就已經對這個檔案多了一些有用的了解。

何時該改用桌面影片工具

此工具的功能刻意做得簡明。每次擷取只產生一張 PNG,不會批次處理整段時間軸,除了內嵌的時間之外無法讓您自訂輸出檔名,不調整大小也不裁切,不銳化也不套用濾鏡,更不保證能對應到某個特定編號的來源畫面。它不會將原始影片轉碼成其他格式,也不會擷取音訊。若您有上述任何需求,使用專屬的桌面影片工具會更合適。FFmpeg 命令列工具是最常被拿來參考的選擇,而使用 FFmpeg 從影片擷取畫面:4 個常見指令這篇文章會帶您走過涵蓋大多數擷取工作的四種指令形式。

此頁面也將來源時長限制在五分鐘之內,以確保瀏覽器內部的跳轉與解碼保持快速且可預期。較長的影片、監視器錄影、長篇講座或院線長片都不在其適用範圍內。面對這類素材,正確的做法是先在本機剪輯影片,儲存一段較短的片段,再對該剪輯後的片段使用擷取器。剪輯過程不需上傳,擷取過程也不需上傳,最終的 PNG 是唯一一件會離開您裝置的產物。

不過,若您只是想要快速試一下,這就是從「我想看看線上畫面擷取器能做什麼」到「實際存下一張可以開啟的 PNG」之間最短的一條路。