線上影片壓縮工具只有在您選擇的檔案從不離開您的裝置時才算安全使用,而這個想法最安全的實作方式,是將整個流程——解碼、影格繪製、重新編碼與下載——全部在當前的瀏覽器分頁內執行,而不是將您的影片上傳到遠端伺服器。基於 W3C MediaStream Recording 標準所打造的瀏覽器型壓縮工具,仰賴的是 Chrome、Firefox、Safari 與 Edge 早已內建的 API,因此可信賴的工具絕不會安裝軟體、絕不會要求帳號憑證,也絕不會將檔案的位元組、名稱、編解碼器、縮圖或時長傳送到伺服器。更安全的做法是將壓縮視為 MediaRecorder 觀察 canvas 串流的副作用,同時讓您的影片即時播放,這樣原始檔案會一直留在您的電腦上,直到您決定刪除它,而壓縮後的 WebM 會以一般瀏覽器下載的方式送達。這種組合——純本機處理、無需安裝、真實的前後數字,以及一個在刪除來源檔之前可供您驗證的可下載輸出——正是區分可信賴的線上影片壓縮工具與悄悄將您的影片上傳到伺服器的服務之間的關鍵。

對線上影片壓縮工具而言,「安全」的真正意涵
在您將任何含有個人、工作或客戶影片的工具託付之前,務必用具體的詞彙來定義「安全」。一個可信賴的線上影片壓縮工具通常會同時通過四項檢核:隱私、安全性、誠實性與可逆性。
隱私。來源位元組、解碼後的影格與輸出位元組都會留在您的裝置上。由於沒有上傳,因此不會有第三方副本留在伺服器上等待外洩、保留作為訓練用途、建立索引或分享給分析合作夥伴。一個沒有接收您檔案的工具,自然也無法遺失您的檔案。
安全性。安全的工具不會推送可執行的安裝程式、瀏覽器擴充功能或背景常駐程式。任何以桌面二進位檔或具有特殊權限的擴充功能形式執行的程式,其攻擊面都比純粹的網頁來得大,而這些攻擊面的更新發生在您看不到的地方。
誠實性。壓縮工具應回報實際的輸入位元組、實際的輸出位元組,以及兩者之間帶正負號的百分比,而不是承諾一個固定的縮減幅度。壓縮取決於內容:低動態的動畫會大幅縮小,而嘈雜的影片、攝影機晃動或本身已經有效率壓縮的來源,則可能大小不變甚至變大。隱這種結果範圍,本身就是一種安全問題。
可逆性。在您播放過下載的輸出檔之前,原始檔案仍應存在於磁碟上。在您驗證結果之前就刪除或覆蓋來源檔的工具,等於讓您失去了唯一的安全網。
瀏覽器型壓縮如何保護您影片的隱私
現代瀏器提供了兩個 API,可讓網頁重新編碼本機影片而完全不需要透過網路傳送位元組:HTMLCanvasElement.captureStream 與 MediaRecorder。兩者共同描述了 W3C MediaStream Recording 規範所定義、完全在頁面內取與編碼媒體的流程。
這個模式相當直觀易懂。網頁將您選擇的檔案以本機 URL 的形式讀取,將其掛載到一個隱藏的 HTML video 元素上,以正常速度播放,將每一個可見的影格繪製到一個有邊界的 HTML canvas 中,對該 canvas 呼叫 captureStream 以取得一個即時的 MediaStream,再將該串流交給 MediaRecorder 進行 WebM 編碼。編碼以即時方式進行,因此兩分鐘的來源大約需要兩分鐘。當來源播放完畢,錄製器會產生一個 WebM Blob,由網頁提供下載。整個過程中網頁完全不需要從任何地方取檔案,這也正是為什麼資料完全不會離開裝置。
影片壓縮工具 採用了這個模式。它會在頁面內驗證檔案大小、時長與解碼後的尺寸,根據預設選擇寬度、影格率與每像素位元目標,將 canvas 尺寸向下取整為偶數以確保編解碼器相容性,將播放中的影片繪製到不透明的 canvas 中,當瀏覽器透過 HTMLMediaElement.captureStream 公開音訊軌時將其附加,錄製時使用第一個支援的 VP9、VP8 或通用 WebM MediaRecorder,解析產生的 Matroska 區段以插入有限的時長,然後計算輸入 Blob 與產生 Blob 之間帶正負號的位元組變化。Lizely 的伺服器不會接收任何影片、縮圖、時長、檔名、編解碼器或結果——只會收到一個已經在本機擁有資料的靜態頁面。
若想更深入了解這種不上傳的做法,如何在不上傳的情況下壓縮影片檔案大小 這份指南與本篇安全性總覽可相互搭配閱讀。
瀏覽器內壓縮的預設選項與誠實的取捨
| 預設 | 最大寬度 | 目標影格率 | 典型用途 |
|---|---|---|---|
| 小檔 | 640 px | 24 fps | 通訊軟體附件與快速分享,檔案大小比細節更重要 |
| 平衡 | 1280 px | 30 fps | 一般分享、社群貼文與預覽,在筆電螢幕上仍保持清晰 |
| 品質 | 1920 px | 30 fps | 評測、簡報,以及在 1080p 或更大螢幕上觀看 |
每個預設都會保留原始長寬比,絕不放大來源,並將所選的位元率限制在固定的 180 kbps 至 8 Mbps 範圍內。選擇預設是一個透明的產品決策——並不聲稱這些預設中有哪一個永遠是最好的,因為壓縮取決於內容。低動態的動畫與乾淨的螢幕錄製,在「小檔」預設下通常會大幅縮小;而嘈雜的手持影片、顆粒感、快速運鏡或本身已經高度壓縮的來源,則可能產生與原始檔大小相同甚至略大的結果。回報的百分比僅來自兩個實際的 Blob 大小,且工具並不保證每次結果都會更小。
即時處理是另一項誠實的取捨。由於 MediaRecorder 在來源播放時觀察 canvas 串流,編碼會以播放速度完成,而無法更快。除了工具本身已經做到的事情之外,並沒有額外的「立即取消並保留原始檔」保證:選擇新檔案、切換預設、按下取消或關閉分頁,都會使目前的工作失效並釋放所有暫存的物件 URL。輸出會是 WebM 格式,因為瀏器中 MediaRecorder 對覽器生成的 MP4 的支援,在不同引擎與平台之間仍有差異;而實際選擇的編解碼器——VP9、VP8 或通用 WebM——取決於當前覽器回報支援的內容,因此同一個預設與同一個來源,在不同覽器中可能產生不同的檔案。
在瀏覽器中安全地壓縮影片
- 在瀏覽器中開啟影片壓縮工具頁面,並選擇覽器可解碼的檔案,大小不超過 500 MiB,長度不超過五分鐘,任一邊不超過 4096 像素,解碼後區域不超過 3840 × 2160 像素。檔案名稱可以是 MP4、WebM、MOV、M4V 或 Ogg,但能否成功解碼仍取決於您的瀏覽器實際支援的編解碼器。
- 選擇預設——小檔、平衡或品質——然後開始壓縮。由於編碼以播放速度進行,且關閉或切換分頁會使目前的工作失效,請在來源即時播放期間保持分頁開啟並將頁面置於前景。
- 觀察頁面回報的輸出尺寸、輸入位元組、輸出位元組,以及測得的百分比變化。該百分比僅根據這兩個 Blob 的大小計算,所回報的值反映的是兩者之間實際測得的變化。
- 下載產生的 WebM,然後在目的端可接受的播放器中從頭到尾播放該檔案。在刪除原始檔之前,確認大小、時長、畫面與聲音皆符合目的端的需求。
- 若結果不適合該目的端,請嘗試其他預設或其他來源。每次都重複同樣的「在驗證前保留原始檔」模式,因為相同的內容在不同的預設與瀏覽器下,壓縮結果可能差異極大。
在刪除原始檔之前應驗證的事項
安全並不會在下載按鈕出現時就結束。下載的 WebM 是您實際上唯一擁有的產出物,因此它值得您對任何打算分享、封存或交給客戶的檔案所給予的同等審視。
- 完整播放一次。在本機開啟該檔案並觀看完整時長。WebM 若能乾淨地播放到結尾,就是區段標頭與工具插入的時長標記運作正常的最簡單跡象。播放被截斷或重複循環,通常代表該檔案未套用以時間戳刻度刻度表示的 Matroska 時長浮點數。
- 檢查聲音。只有在瀏覽器透過 HTMLMediaElement.captureStream 公開可擷取音訊軌時,音訊才會被包含。若來源有音訊但輸出為靜音,您的瀏覽器可能回傳了僅含影像的串流,因此請嘗試其他瀏覽器或桌面編碼器,再決定是否刪除原始檔。
- 確認尺寸。將工具回報中的輸出尺寸與播放器上的 canvas 大小進行比對。預設的最大寬度與原始長寬比應決定確切的像素數,並為了編解碼器相容性而採用偶數像素取整。
- 驗證目的端的編解碼器相容性。WebM 在所有主流桌面瀏覽器與 Android 上皆可原生播放,但部分聊天應用程式、專業 NLE 時間軸以及較舊的智慧型電視仍偏好 MP4。若目的端拒絕 WebM,請在刪除任何檔案之前,先以維護良好的桌面編碼器(例如 FFmpeg)在本機重新編碼原始檔。
當瀏覽器壓縮器不是合適的工具
瀏覽器壓縮器是日常分享時正確的安全選擇:預、社群短片、訊息附件、簡報,以及任何只需要粗略、快速處理的場景。但對於歸檔母片、專業交付規格、精確的編解碼器設定檔、兩趟速率控制、固定關鍵影格間隔、字幕保留,或確定性的跨平台輸出而言,它並非正確的安全選擇。這些工作都不適合在即時畫布管線中完成,若承諾能處理它們,便是對工具功能不實的宣稱。
在這些情況下,使用一個有維護的桌面編碼器(例如搭配審核過指令的 FFmpeg),可以為你提供確定性的輸出、命令列的可重複性、對來源可能包含的各種容器特性的支援,以及一份可在信任結果前審核的編解碼器對照表。正確的模式是:將瀏覽器工具保留給輕量、無需安裝的場景,而當你需要即時畫布管線無法提供的保證時,再改用 FFmpeg。
如果你的安全檢查目標是「分享短片而不必上傳」,那麼把一個值得信任的本地壓縮器搭配一個簡短且有意識的驗證步,就是最簡單可靠的作法。隱私並非附加在壓縮之上的功能——它是讓整個方法從一開始就安全的設計選擇。
如果你正在權衡各種選項,影片壓縮器準確度:它實際回報的內容對此有詳細說明。