免費多格式壓縮 FreeCompress 實測,多數檔案不出瀏覽器就壓好

FreeCompress 免費線上壓縮工具實測:JPEG、MP4、MP3、PDF 壓縮全程在瀏覽器用開源引擎完成,檔案不出機器;WebP 與 BMP 則真的上傳伺服器,下載網址用原始檔名組成且公開可達,還有約 2 MB 的隱藏上限。壓縮前先看清資料流向的分界線。

用 AI 摘要這篇文章:

把 FreeCompress 的壓縮器實際跑了一輪之後,最值得記住的結論是:這個網站上大部分的壓縮工作,你的檔案從頭到尾沒有離開過瀏覽器。實測的 JPEG、PNG、MP4、MP3、PDF 五種格式,畫面上的進度條走完、輸出檔案就定位,全程抓不到任何一次把檔案內容送往伺服器的請求。但同一輪實測也抓到另一個世界:WebP 與 BMP 這兩種格式(官方文件再列上 TIFF),檔案是真的會上傳到對方伺服器壓縮。而且下載網址由站名前綴加上你的原始檔名組成,任何知道網址的人都抓得到。

一個免費壓縮網站同時存在這兩種資料流向,工具頁的操作說明卻完全沒有解釋差別。下面把實測結果、兩種資料流向的分界線,和使用前該知道的事攤開來看。

六種格式各壓一次,網路請求全程側錄

實測方式很直接:用無痕瀏覽器環境把 freecompress.com 的工具頁打開,丟入自製測試檔,同時記錄頁面發出的每一個網路請求,壓完再對照輸出檔案的規格。測試檔涵蓋四個大類:一張 1920×1080 的雜訊漸層 JPEG(約 910 KB)、同圖轉存的 WebP(約 800 KB)、ffmpeg 產生的 5 秒 640×360 MP4(約 33 KB)、4 秒 128kbps MP3(約 65 KB),外加一份最小 PDF 與兩種大小的 BMP。

先看一下工具箱的全貌。首頁選單把壓縮器分成五大類 32 個。影像類有 JPEG、PNG、WebP、BMP、TIFF、GIF;影片類從 MP4、MOV、AVI 到 MKV、WMV 共 9 種,甚至還列了 YouTube Video 這種以來源命名的項目。音檔類 10 種,從常見的 MP3、WAV 到 AC3、CAF;文件類目前只有 PDF。另外有一組 HTML、CSS、JS、JSON、XML、PHP 的程式碼壓縮。對一次偶爾壓個檔案的人來說,這個廣度比深度有用,不用為了五種格式開五個網站。

七種抽測格式的結果可以用一張表講完:

格式檔案去向壓縮引擎輸入→輸出
JPEG全程本機mozjpeg(WASM)910,693→111,580 B
PNG全程本機image_compressor(WASM)2,618,369→546,188 B
MP4全程本機ffmpeg.wasm 0.1233,161→31,158 B
MP3全程本機ffmpeg.wasm 0.1265,245→20,472 B
PDF全程本機Ghostscript(WASM)394→2,606 B
WebP上傳伺服器compress-webp.php799,686→143,928 B
BMP上傳伺服器compress-bmp.php1,080,054→58,722 B

本機五格式有個共同特徵:壓完的「Download」按鈕指向 blob: 開頭的網址。blob 網址指的是瀏覽器自己在記憶體裡生成的物件,也就是說輸出檔案就誕生在你的機器上,下載只是把它存檔。側錄到的對外請求裡,唯一稱得上上傳的 POST 都是廣告與統計(Cloudflare 心跳、Google 廣告投放),沒有半個帶檔案內容。這也是後來判讀其他格式時的基準線:拿 WebP 頁的請求清單跟 JPEG 頁一比,多出來的那個 200 OK 就特別顯眼。

FreeCompress 壓縮 JPEG 頁面截圖,測試檔 fc-test.jpg 從 889 KB 壓成 108 KB,附圖片預覽與白色 Download 按鈕,畫面上方有 Compression Level 滑桿設定在 30,底部有一則 Adobe 繁體中文廣告Pin
JPEG 壓縮結果:889 KB 進、108 KB 出,畫面上緣的 Compression Level 滑桿是全站少數能調參數的地方。

上傳兩格的特徵正好相反。WebP 頁丟檔後,瀏覽器把整個檔案 POST 到 compress-webp.php,伺服器傳一個檔名,前端再拿這個檔名組出 /uploads/ 路徑當下載連結。BMP 頁同一套流程,只是端點換成 compress-bmp.php。這一段的邏輯在工具頁的原始碼裡寫得很白:選檔後前端先檢查副檔名與 MIME 類型,接著用 XMLHttpRequest 把表單送出去,壓縮期間你看到的上傳進度條是 xhr.upload.onprogress 事件的即時數字。那條進度條本身就是最誠實的說明:進度在走,檔案就在出門。

順帶一提,伺服器端點倒不是全無設防。把一張 JPEG 直接改名成 .webp 丟給 compress-webp.php,得到的答覆是字串 Not-WebP,內容驗證是存在的;只是這道驗證擋的是格式,擋不了前述的檔名曝光與大小門檻問題。

本機那一半是怎麼運作的:開源引擎裝進瀏覽器

「壓縮在瀏覽器裡完成」聽起來像魔術,攤開其實是很務實的拼裝。FreeCompress 的工具頁會即時載入幾個知名開源專案的 WebAssembly 版本:JPEG 用的是 MozJPEG(JPEG 編碼器裡公認壓縮率最好的一支),PDF 用的是老牌的 Ghostscript,MP4 與 MP3 都是 ffmpeg 0.12 系列。WebAssembly(WASM)可以想成把這些原本跑在伺服器上的編譯程式塞進瀏覽器執行,速度接近原生程式。

這套拼裝有一個公開的零件庫可以對帳。GitHub 上有個 FreeCompress 帳號,唯一的倉庫 assets 收的就是這些引擎檔案:mozjpeg、oxipng、libimagequant(後兩個是 Google Squoosh 圖片壓縮專案的成員)、gifsicle、heic2any,以及 19 MB 的 gs.wasm。倉庫 2024 年 1 月建立,到 2026 年 9 月下旬還有推送紀錄,最後兩次更新動的正是 oxipng 與 libimagequant,引擎是有在更新的。清單裡的 gifsicle 對應 GIF 壓縮頁,heic2any 對應 iPhone 的 HEIC 照片,可見本機處理的路線不只實測這幾種,只是沒有逐一驗證。

本機運算的另一面是首次使用的下載成本。Ghostscript 那顆 gs.wasm 有 19,051,863 位元組,ffmpeg 核心更有 30 MB 以上,第一次打開 PDF 或影片工具時要整份拉下來。好處是這些檔案會被瀏覽器快取住,第二次之後就快了;壞處是如果只想壓一個幾 KB 的小檔,等引擎下載的時間可能比壓縮本身還長。輕量檔案、急用的場景,這個成本要抓進去。

不過零件不全放在自己家。實測時 MP4 頁從 unpkg.com 公共 CDN 載入 ffmpeg 核心(@ffmpeg/[email protected]),PDF 頁從 jsDelivr 載入 gs.wasm。對使用者來說這是一層供應鏈信任問題:壓縮確實在你機器上跑,但「引擎程式碼本身」來自第三方 CDN,CDN 出事或內容被調包,工具就跟著失效或變調。對一般檔案這風險很低,但值得知道有這層依賴。

真的上傳的三種格式,下載網址是公開的

WebP、BMP、TIFF(TIFF 依官方隱私政策歸在同一類,實測未跑)走的伺服器壓縮,細節比「會上傳」更值得注意。

上傳後的檔案存在網站伺服器的 /uploads/ 目錄,網址由站名前綴加上你的原始檔名組成。實測丟了一張 fc-test.webp,壓完拿到 /uploads/freecompress-fc-test.webp 這個網址;離開工具頁之後直接用瀏覽器連這個網址,一樣是 HTTP 200,抓下來的檔案與壓縮輸出逐位元組相同。換句話說,這不是暫存連結,是任何人都能存取的公開網址。檔名如果取得太常見(例如相機預設的 IMG_ 開頭),等於把網址的猜測難度降到很低。

官方隱私政策對這件事的說法是:大多數檔案「從不送往伺服器、完全在你的瀏覽器處理」,只有 BMP、TIFF、WebP 這幾類會用到伺服器,而且「經伺服器處理的檔案會在一小時內自動刪除」。這個承諾禁不起實測:上傳的檔案過了一小時、再過半小時,都還掛在原網址上,一小時內自動刪除並沒有發生。JPEG 工具頁 FAQ 寫的「30 分鐘刪除」也一樣跳票。兩個數字站方自己都沒對齊,實際行為則是兩條都沒兌現,刪除檔案這件事最終只能靠站方自律。

更實際的坑是大小限制。BMP 端點有一道約 2 MB 的隱藏門檻:實測 1.9 MB 的 BMP 上傳成功,2.35 MB 起一律失敗。失敗不是彈警告,而是流程照走完、下載連結指到一個叫 Error-Uploading 的路徑,第一次遇到很難不愣一下。頁面上沒有任何地方事先說明這個上限。

工具頁文案把「上傳到伺服器」講得理所當然

最微妙的地方在於官網自己怎麼描述這件事。JPEG 壓縮頁的操作說明寫著:

After choosing a file, you will see that the file gets uploaded and the tool automatically starts to compress the JPEG image.

MP4 頁、PDF 頁的操作說明是同一套模板的變體。JPEG 頁 FAQ 甚至連刪除保證都寫好了:

All uploaded images gets deleted in 30 minutes and no one ever sees what images have been uploaded to the server.

對照實測:JPEG、PNG、MP4、MP3、PDF 根本沒有上傳,刪除承諾對這些格式是空氣;真的會上傳的 WebP 和 BMP,檔案又存在公開可達的網址,跟「no one ever sees」的印象有距離。看起來是同一份文案模板複製到各個工具頁,沒有人對照過背後的實作。諷刺的是,對大多數格式來說,實際狀況比文案寫的更保護隱私,而文案暗示會上傳的那幾種格式,風險又比文案講的更高。結論只能倒過來下:判斷一個網頁壓縮工具會不會外流檔案,別讀它的 FAQ,要看它實際發出的請求。

免費壓縮的品質代價:音檔被砍到 41kbps

檔案去向之外,輸出品質也有幾個該先知道的數字。

MP3 的部分,輸入是 128kbps 的 4 秒音檔,輸出被 ffmpeg 重編碼到約 41kbps,檔案從 65 KB 縮到 20 KB,但音質落差在一般耳機上聽得出來。頁面上沒有任何品質選項:對照 JPEG 頁有 Compression Level 滑桿(預設 30)可以調,音檔頁只有選檔與下載,參數是站方寫死的,你不能選「壓小一點但保留 128kbps」。壓完的結果卡片倒是附了一個播放器,下載前先試聽,聽不出差異再存檔,算是最後一道保險。

FreeCompress 壓縮 MP3 頁面截圖,測試檔 fc-test.mp3 從 63 KB 壓成 19 KB,結果卡片附音訊播放器可試聽,頁面沒有壓縮等級滑桿,兩側有遊戲與 Adobe 廣告版位Pin
MP3 壓縮結果:63 KB 進、19 KB 出,代價是位元率被砍到約 41kbps;結果卡片附播放器,下載前可以先試聽。

PDF 的反例更有趣:394 B 的極小 PDF 壓完變成 2,606 B,愈壓愈大。這不是 bug,Ghostscript 重寫文件時加上自己的結構與壓縮設定,對本來就極精簡的檔案反而是膨脹。真實世界的 PDF 通常內嵌圖片,情況會好很多,但「丟小檔進去變大」這個方向是真的。

MP4 的實測只省了 6%。測試片本身已經是高壓縮的 H.264,輸出確認是重新編碼(位元率從約 49kbps 降到 46kbps),不是單純封裝。這提醒了一件事:已經被平台壓過一輪的影片再丟進來,能擠出的空間有限;這類工具真正吃得下的是原始錄影檔。

JPEG 的表現則是本機幾種格式裡最好的,雜訊漸層測試圖縮了 88%,解析度不變。這要歸功於 MozJPEG 的編碼效率,不是站方功勞,但受惠的是使用者。

免費的代價結構:引擎借開源,收入靠廣告,營運者匿名

為什麼這一切可以免費?拆開看成本結構就明白了。引擎全部來自開源專案,零授權費;本機壓縮不吃站方運算資源;伺服器壓縮只留給三種冷門格式。站方真正要付的是頻寬,換取收入的方式是廣告。實測每個工具頁都載入 Google Analytics(追蹤代碼 G-NLEV4TH8L5)與 Google AdSense(發佈商 ID ca-pub-2556362965611657),再加 Cloudflare 流量監測。名單還沒完:The Trade Desk 的廣告追蹤也在場,側錄到的行銷活動代碼是 thetradedesk_h72na_madhouse_all_tw_install_mobile(尾段的意思就是台灣區、行動裝置安裝型廣告),另有 ad-score 反詐與 flashtalking 追蹤。檔案不外流的同時,你的瀏覽行為餵給了至少四套廣告系統。

站點本身的透明度就薄了。查詢網域註冊資料,freecompress.com 在 2022 年 3 月透過 GoDaddy 註冊,套 Cloudflare 服務,最早的網頁存檔出現在 2023 年 9 月,算是跑了三年的站。但 About 頁不寫公司或個人名稱,聯絡信箱用 Cloudflare 的郵件保護遮著,全站沒有服務條款頁(隱私政策、About、Contact 各一頁)。隱私政策裡的 GDPR、CCPA 權利條款倒是寫了「想行使權利請聯絡我們」,只是這個「我們」沒有名字、信箱又遮著,權利行使等於寄給一個匿名信箱。出了事,沒有可以問責的對象。

繁中介面則是另一種將就。站上提供 28 種語言,繁中版是把簡中版逐字轉換出來的成品:按鈕寫「選擇文件」(台灣慣例是「選擇檔案」),內文從點按動作到資料與搜尋引擎的講法全是對岸用語直接轉字,還有「限製」這種轉換時選錯字的經典錯誤,導覽列與工具名稱整段不翻。從網站地圖(sitemap)看,全站送給搜尋引擎的網址清單有 2,562 條,語言版本與工具頁的排列組合就是主要成分。多語言在這裡比較像流量策略,友善度是附帶的。台灣使用者直接用英文版,體驗反而完整。

什麼時候用它,什麼時候換別的工具

整理成一個簡單的決策。壓 JPG 或 PNG,FreeCompress 是乾淨又有效的選擇,檔案不出機器這件事實測成立。壓 MP4 或 MP3,同樣不上傳,但品質參數不能挑,介意音質的話先想一下。壓 PDF,本機處理沒問題,只是極小檔案可能愈壓愈大。要壓 WebP、BMP、TIFF,或者要壓的 BMP 超過 2 MB,就換工具吧,這條路會把檔案放上公開網址。

同類工具裡,純影像壓縮可以看mazanoke或自架取向的Caesium,想在多種壓縮比例之間挑出最佳平衡的可以試Recompressor。影片壓縮有專做瀏覽器本機處理的VideoCompressors,想把 JPG 壓到指定 KB 數則有smalljpg的實測可以參考;跨格式線上壓縮的老牌站點還有 Compressor.io。挑壓縮工具時有個一分鐘的自我檢查法:打開瀏覽器開發者工具的網路面板,丟一個無關緊要的小檔進去,看有沒有把檔案大小往伺服器送的請求。看得到 blob 下載、看不到上傳,隱私那關就算過了;反之,就算文案寫得再保證,也寧可先換一家。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1695

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...