MKV 轉 MP4
真正的容器重寫,而影片本身一個位元組都沒被碰過。
本機處理把檔案拖進來,或點擊選擇
支援 MKV, WebM。沒有大小上限,不用註冊。
選一個檔案,這一頁會先把裡面的軌讀出來給你看 —— 編碼、長度、關鍵影格間隔 —— 然後才動手寫檔。全程沒有任何東西被上傳。
MKV 跟 MP4 是真的不同的容器,不是換個名字的親戚。這個工具讀進 Matroska 的結構,把裡面壓縮好的影音原封不動取出來,寫進 MP4 容器裡。沒有解碼、沒有重新編碼,所以結果裡的畫面與聲音就是來源裡的那些位元組。
MKV 是什麼,以及為什麼檔案會是這個格式
Matroska 是一個開放的容器格式,設計目標是幾乎什麼都裝得下:任意數量的影片、音訊與字幕軌、章節、附加檔案,以及一堆別的容器沒有位置放的編碼。WebM 是同一個格式刻意收窄後的版本。這種彈性正是錄影、封存、重新打包影片的人愛用 MKV 的原因,也正是那麼多消費端軟體不願意碰它的原因。
尷尬的地方在於彈性帶不走。Apple 的軟體大致上無視 MKV,多數手機打不開它,Windows 上的剪輯軟體對它的支援時好時壞,上傳表單通常直接退掉。於是那個技術上最會裝東西的檔案,常常就是你最沒辦法用的檔案,而最快的解法是把內容搬進大家都收的那個容器。
因為 MP4 與 Matroska 的資料組織方式不同,這一趟真的是重寫而不是換標籤 —— 跟 MOV 轉 MP4 不一樣,那兩個容器共用同一套內部 box 結構。好消息是重寫容器仍然不必動到壓縮好的影格。6 秒的 720p MKV 在這裡大約 7 毫秒。
什麼搬得過去,什麼搬不過去
H.264 與 HEVC 影片、AAC 音訊都能乾淨地搬過去,而這已經涵蓋絕大多數需要轉檔的 MKV。影格原封不動進去,時間軸保留,旋轉資訊也會帶過去,所以直拍的影片不會躺平。
有些東西確實塞不進去。MKV 常帶的字幕格式在 MP4 裡沒有標準位置,所以 SSA 與 ASS 字幕沒辦法一起走;如果字幕是燒進畫面裡的,它本來就不是一條獨立的軌,會留下來。額外的音訊軌(第二種語言、導演講評)會被丟掉,因為換容器只能挑一條。頁面會在你按下按鈕之前把它要留下的軌數算出來並說明 —— 這件事很重要:一個安靜掉了日文音軌的檔案在有人播到之前看起來完全像成功。
有幾個編碼在規格上 MP4 是可以裝的,實務上支援卻很差,WebM 裡常見的 VP9 與 AV1 就是。我們會照搬 —— 因為那是你要求的,而且位元組沒變 —— 但產出的 MP4 仍有可能被老播放器退掉。那是目的地的限制不是轉換的限制,任何工具想解決它都必須真的重新編碼。
為什麼這跟「影片轉檔器」不是同一件事
多數提供 MKV 轉 MP4 的網站是把你的檔案上傳、在伺服器上跑一次完整的重新編碼、再給你一個新檔案。這就是它們為什麼有大小上限、每小時次數、排隊與付費方案 —— 每一次轉換都在燒它們的處理器時間與頻寬。這也是為什麼輸出已經不是同一段影片了:它被解出來又壓回去,那必然損失一些東西,而且每做一次就疊加一次。
換容器沒有那套結構。除了讀檔與寫檔之外它幾乎沒有成本,所以沒有東西需要配給,也沒有東西可以升級販賣。它同時也不可能損失畫質,因為整條路徑上根本沒有編碼器。代價很誠實而且很窄:換容器只能產出「現有的軌被允許住進去」的容器。它沒辦法讓不相容的編碼變成相容,也沒辦法讓檔案變小。
如果你真正需要的是更小的檔案或不同的編碼,那是重新編碼,而我們還沒做。與其掛一個承諾別的事情的標籤、私下做一件又慢又有損的工作,不如在這裡把話講清楚。
自己驗結果
頁面會回報搬了幾個影片與音訊 packet。拿它跟任何一個媒體檢視工具對你來源檔案的說法比對,數字應該一致。再加上耗時當第二個訊號 —— 超過幾秒的影片真的重新編碼,不可能在幾毫秒內完成。
嚴格版是去比媒體資料的雜湊。ffprobe 可以印出每個 packet 的雜湊值,換容器之後兩份清單會逐項吻合。這件事比聽起來重要:開發過程中我們發現底層函式庫的一個高階便利 API 會靜默重新編碼音訊,而產出的檔案照樣播得動、時長照樣正確、列出來的編碼名稱照樣一樣。只有位元組比對抓到了它 —— 這就是為什麼這一頁走低階的 packet 路徑,也是為什麼位元組比對是我們上線檢查的一部分。
還有跟這個網站每一頁一樣的那件事:轉檔的時候打開 Network 分頁,你的檔案不會出現在任何一筆請求裡。
常見問題
影片會被重新編碼嗎?
不會。壓縮好的影格是原封不動搬進新容器的,所以沒有畫質損失,反覆做也不會有世代損失。
字幕會一起過去嗎?
不會。MKV 常用的字幕格式在 MP4 裡沒有標準位置,所以會留下來,而頁面會在檔案帶字幕時告訴你。已經燒進畫面的字幕本來就是影片的一部分,會留著。
第二條音軌呢?
只有第一條音訊軌會被搬過去。頁面會把額外的軌數算出來、在你下載之前警告你,讓你自己決定而不是事後才發現。
WebM 也可以嗎?
可以,WebM 是同一個容器格式的子集。但要注意 WebM 裡常見的 VP9 與 AV1 影片:MP4 規格允許它們,實務上卻不是所有播放器都收 —— 檔案會是合法的,老播放器仍可能拒絕。
為什麼檔案沒有變小?
因為裡面裝的是同一份影音。讓影片變小意味著再壓一次,那是另一件事而且是有損的。這個工具刻意不做。
有檔案大小上限嗎?
我們不設。實際限制是裝置記憶體,因為輸出是在瀏覽器分頁裡組起來的:桌機大約 500 MB,手機砍半。頁面會在你開始之前警告,而不是等分頁死掉之後。