當 Video Compressor 重新編碼檔案時,音訊、字幕和中繼資料不會全部保留:此工具僅會沿用影像,以及目前瀏覽器透過 HTMLMediaElement captureStream 所公開的任何音軌,因為它是將影格繪製到 Canvas 上,並錄製成全新的 WebM,而不是重新封裝來源容器。字幕(軟文字軌、外掛檔案和內嵌字幕)永遠不會被讀取或嵌入到輸出中,而章節、附件、旋轉標記、色彩中繼資料和 HDR 訊號會與原始容器的功能一同被剝離。硬編碼(燒錄式)字幕會作為影像的一部分保留下來,因為 Canvas 會渲染每一個可見的像素,但僅以預設的影格速率呈現。音訊是您問題中三項關注點中唯一可能保留下來的項目,而且即便是音訊,也要視目前瀏覽器是否公開了來源編解碼器可擷取的音軌而定。任何需要在操作過程中保留的內容,都應該單獨匯出,而且下載的檔案在刪除原始檔之前,應該在目的端的播放器中從頭到尾播放一次。

Video Compressor 從您的來源擷取哪些內容
Video Compressor 是圍繞著兩個瀏覽器基礎功能所建構的:一個 Canvas 和一個 MediaRecorder。當您選擇檔案並開始壓縮時,頁面會將來源載入為本地媒體元素,將每個顯示的影格以預設的速率繪製到有邊界的 Canvas 上,並使用目前瀏覽器所回報支援的 WebM MIME 來錄製 Canvas 串流。由於輸出是瀏覽器剛剛渲染的影格所組成的新錄影檔,因此您下載的檔案並非原始檔案的重新封裝版本,而是一個全新的 WebM,僅包含 Canvas 管道所能擷取的內容。
該管道能完善擷取兩項內容:以預設的寬度和影格速率所繪製的影像,以及瀏覽器透過 HTMLMediaElement captureStream 所公開的任何音軌。其餘所有內容都屬於中繼資料、外掛檔案或容器功能,重新編碼步驟從不讀取這些項目,因此無法被帶入 WebM 容器中。這是重新編碼方式的特性,而不是需要繞過的錯誤;如果您需要完整保留容器功能,合適的工具是能複製或重新封裝原始串流,而不是重新編碼的工具。
音訊:何時會保留到輸出中
音訊是您問題中三項關注點中唯一可能在 Video Compressor 執行後保留下來的項目,但即便如此也是有條件的。此實作只有在瀏覽器透過 HTMLMediaElement captureStream 公開音軌時,才會將可擷取的音軌附加到錄製的串流中。不同的瀏覽器會為不同的來源編解碼器公開不同的音軌,因此同一個來源在同一個預設下,可能會在一個瀏覽器中產生有聲音的 WebM,在另一個瀏覽器中卻產生無聲的 WebM。
這帶來兩個實際的後果。首先,來源會在壓縮即時執行時發出聲音,因此裝置音量很重要,但將頁面靜音並不一定會中斷已擷取的音軌,因此不應該以無聲的預覽來推測輸出為無聲。其次,在刪除原始檔之前,請從頭到尾播放下載的檔案。頁面不會對音量進行正規化、不會混音、不會消除雜訊,也不會驗證錄影器選擇了哪一個音訊編解碼器,因此針對您特定執行的唯一權威答案,就是該檔案本身。
對於音訊採用目前瀏覽器無法透過元素 captureStream 公開的格式之來源,所輸出的 WebM 將會是無聲的,無論您選擇哪一個影像預設都一樣。如果目的端無法接受無聲的輸出,請在能公開音軌資訊的播放器中檢查該檔案,然後再刪除原始檔。
字幕、說明文字和文字軌
Video Compressor 不會保留字幕。此工具不會讀取說明文字軌、外掛檔案,或來源容器中承載的任何軟文字,而 MediaRecorder 所產生的 WebM 也不會將其嵌入到輸出中。如果您的影片有硬編碼字幕(繪製至實際像素中的文字),由於 Canvas 會渲染每一個可見的影格,因此這些字幕會出現在輸出中,但僅以預設的影格速率呈現,所以文字邊緣周圍的動作順暢度,取決於您選擇的預設。
如果您的影片的軟字幕是以 MP4 或 MKV 內部的獨立音軌形式儲存,或以同層的 .srt 或 .vtt 檔案形式儲存,則這些檔案不會被壓縮工具處理,也不會被合併至 WebM 中。Video Compressor 中沒有任何設定可以保留這些字幕,因為重新編碼方式只會讀取影像和任何公開的音軌,然後寫入僅包含這兩個來源所提供內容的全新 WebM。
對於任何需要讓字幕隨影片一同傳遞的工作流程,您需要使用明確保留文字軌的工具,例如一款維護良好的桌面編碼器,其中含有經審核的命令,可複製文字串流或將其轉錄到輸出容器中。同樣的原則也適用於章節、附件,以及任何存在於影像之外的其他側邊資料,瀏覽器管道皆不會讀取這些內容。
中繼資料、章節、附件和容器功能
Video Compressor 會剝離容器層級的中繼資料。產品合約逐一列出未保留的內容:字幕、章節、附件、旋轉標記、色彩中繼資料和 HDR 訊號。無論使用哪一個預設,這些項目都不會從來源讀取,也不會寫入到輸出的 WebM 中。
由於輸出容器固定為 WebM,因此即使這些功能存在於來源中,原始容器的功能也不會轉移。例如,具有旋轉標記的直向 MP4 不會將該標記帶入 WebM,而影像本身會以 Canvas 渲染的方位呈現,如果來源依賴該標記而非烘焙於像素中的方位資訊,影像可能會看起來是側向的。色彩原色、轉換特性和 HDR 中繼資料同樣會被捨棄,因此 HDR 來源會在預設的解析度下,變成標準動態範圍的 WebM。
下表摘要說明哪些內容會通過管道,哪些不會。當列顯示為「視情況而定」時,答案取決於瀏覽器和來源編解碼器,而不是工具內部的設定。
| 來源元素 | 是否會通過壓縮? | 實際情況 |
|---|---|---|
| 影像(可見的像素) | 是 | 在預設寬度、上限影格速率和有界位元速率下重新編碼為 WebM |
| 音訊(瀏覽器公開的音軌) | 視情況而定 | 只有在目前瀏覽器透過 HTMLMediaElement 公開可擷取音軌時才會附加 |
| 軟字幕 / 說明文字軌 | 否 | 不會讀取、不會嵌入;同層的 .srt 和 .vtt 檔案維持不變 |
| 硬編碼(燒錄式)字幕 | 是 | Canvas 渲染每個像素,因此可見;順暢度取決於預設速率 |
| 章節 | 否 | 不會從來源讀取,也不會寫入 WebM |
| 附件、字型、側邊影像 | 否 | 不會從來源讀取,也不會寫入 WebM |
| 旋轉標記 | 否 | 不會複製;影像以解碼後的方位呈現 |
| 色彩中繼資料 / HDR 訊號 | 否 | 已捨棄;輸出為標準動態範圍 |
| 原始檔名、容器、編解碼器 | 否 | 輸出永遠是 MediaRecorder 所產生的全新 WebM |
如何壓縮影片並檢查保留下來的內容
確認您特定執行是否保留了您在意內容的最快方式,就是在刪除原始檔之前,在您目的端所使用的同一個播放器中,從頭到尾播放下載的 WebM。下列步驟涵蓋從檔案選取到驗證的完整流程。
- 挑選瀏覽器可解碼的來源,大小不超過 500 MiB、長度不超過 5 分鐘、解碼後的區域不超過 3840 × 2160 像素,且任一邊不超過 4096 像素。檔案可能命名為 MP4、WebM、MOV、M4V 或 Ogg,但副檔名僅協助瀏覽器挑選起點,能否成功解碼取決於目前瀏覽器所安裝的編解碼器。
- 開啟 Video Compressor 頁面,從您的裝置中選擇檔案。此工具會在本機讀取檔案,不會上傳任何內容。
- 選擇 Small(寬度 640 px、24 fps)、Balanced(寬度 1280 px、30 fps)或 Quality(寬度 1920 px、30 fps)。每個預設皆會保留來源長寬比、永遠不會放大,並將尺寸向下捨入為偶數像素值。請挑選最符合目的端限制的預設,而不是最小數字的預設。
- 開始壓縮。在來源即時播放時,請保持分頁開啟,因為 MediaRecorder 會觀察 Canvas 串流,所以兩分鐘的來源大約需要兩分鐘。當來源包含音訊時,會發出聲音。
- 當來源播放結束時,此工具會回報輸出尺寸、輸入位元組數、輸出位元組數,以及僅根據兩個實際 Blob 大小所計算的有正負號的百分比變化。
- 下載 WebM,然後在刪除原始檔之前,從頭到尾播放整個檔案。確認影像符合您預期的樣貌、來源有聲音時聲音是否也在,以及時長在您打算使用的播放器中是否播放至結束。
- 如果影像看起來不對、聲音缺失,或大小變化不如預期,請嘗試不同的預設,或參考本機影片壓縮的常見失敗模式後再重新執行。
Input Limits That Decide Whether Encoding Starts
Some sources cannot be compressed at all, regardless of which track the browser exposes. Video Compressor validates the file before starting: extension or MIME must be recognized, byte size must be a positive number up to 500 MiB, decoded duration must be above zero and at most 300 seconds, each side must be at most 4096 pixels, and decoded area must not exceed 3840 × 2160. Any failure here produces an error and no download — the tool never silently truncates or re-encodes a partial file.
These limits exist to bound memory, Canvas allocation, and the real-time work the encoder performs. A two-minute source at 1920 × 1080 produces roughly 30 fps × 120 seconds = 3,600 frames drawn at the Quality preset's cadence; pushing the duration or resolution higher would outgrow what a browser tab can keep up with while the MediaRecorder is observing. If your source exceeds them, the page refuses to start and you need a different tool.
The table below lists every limit that decides whether the pipeline runs, including the preset caps on width and frame rate and the bounded bitrate range the recorder chooses from.
| Limit | Value | What it bounds |
|---|---|---|
| File size | 500 MiB | Memory and the Blob round-trip |
| Duration | 300 seconds (5 min) | Real-time MediaRecorder workload |
| Side length | 4096 px max each | Canvas allocation and decode memory |
| Decoded area | 3840 × 2160 max | Per-frame pixel work |
| Container | Browser-decodable | Whether HTMLVideoElement will load the file |
| Output container | WebM (VP9 → VP8 → generic) | MediaRecorder codec availability |
| Output width cap | 640 / 1280 / 1920 px | Small / Balanced / Quality |
| Output frame rate cap | 24 / 30 / 30 fps | Small / Balanced / Quality |
| Output bitrate | 180 kbps – 8 Mbps | Bounded bits-per-pixel heuristic |
When You Need Full Preservation Instead
Video Compressor is the right tool when you want to shrink a video for a destination that accepts WebM and you do not need to keep subtitles, chapters, attachments, rotation tags, color metadata, or HDR signaling. It is the wrong tool when any of those features have to travel with the file.
For archival masters, professional delivery specifications, exact codec profiles, two-pass rate control, fixed keyframe intervals, subtitle preservation, or deterministic cross-platform output, the product contract points to a maintained desktop encoder such as FFmpeg with a reviewed command. FFmpeg and similar tools can remux streams without re-encoding — keeping codecs and side data intact — or transcode with explicit flags for subtitles, chapters, color, and rotation. None of those guarantees are available through a browser-based Canvas approach, because the Canvas only sees pixels.
If you only need to know whether the file you just downloaded kept what you cared about, play it back in the player where it will be used. The percentage shown by Video Compressor is calculated only from the two actual Blob sizes; it does not promise every result is smaller, and it does not promise any track was kept. The downloaded file is the only authoritative answer for your specific source and your specific browser. Keep the original until you have played the complete output and confirmed that size, duration, picture, sound, and compatibility meet the destination's requirements.