WebM 轉 MP4 完整指南:4 種方法比較與 FFmpeg 實戰指令
用 Chrome 螢幕錄影功能錄了影片得到 WebM 檔案,但 iPhone 播放不了。或想上傳到只接受 MP4 的平台。WebM 適合網頁,但 MP4 還是通用標準。這裡介紹 4 種可靠的轉換方法和詳細 FFmpeg 指令。
WebM vs MP4:差別在哪
| 特性 | WebM | MP4 |
|---|---|---|
| 容器格式 | WebM | MPEG-4 Part 14 |
| 視訊編碼 | VP8、VP9、AV1 | H.264、H.265、AV1 |
| 音訊編碼 | Vorbis、Opus | AAC、MP3 |
| 起源 | Google(2010 年) | MPEG(2001 年) |
| 專利授權 | 免費 | H.264/H.265 需授權 |
| 檔案大小(同畫質) | 較小 | 較大 |
| 瀏覽器支援 | Chrome、Firefox、Edge(Safari 有限) | 所有瀏覽器 |
| iOS 支援 | 無 | 有 |
| 剪輯軟體支援 | 有限 | 普及 |
重點: WebM 更有效率,但 MP4 更相容。要最大相容性(行動裝置、舊瀏覽器、剪輯軟體),轉成 H.264 視訊和 AAC 音訊的 MP4。
編碼器差異詳見 H.264 vs H.265 vs AV1 編碼器比較。
方法 1:FFmpeg(命令列,推薦)
FFmpeg 是最強大的影片處理工具。先安裝:
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows: 從 ffmpeg.org 下載並加入 PATH基本轉換
ffmpeg -i input.webm -c:v libx264 -crf 23 -c:a aac output.mp4參數解析:
-i input.webm:輸入檔案-c:v libx264:視訊編碼器(H.264,最相容)-crf 23:畫質(18=視覺無損,23=平衡,28=高壓縮)-c:a aac:音訊編碼器(AAC,通用)output.mp4:輸出檔案
高畫質轉換
ffmpeg -i input.webm -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k output.mp4-crf 18:視覺無損畫質-preset slow:更好壓縮(編碼較慢)-b:a 192k:高音訊位元率
小檔案轉換
ffmpeg -i input.webm -c:v libx264 -crf 28 -preset slow -c:a aac -b:a 96k output.mp4H.265 轉換(更小檔案)
ffmpeg -i input.webm -c:v libx265 -crf 28 -c:a aac output.mp4H.265(HEVC)同畫質比 H.264 小 30-50%,但瀏覽器支援有限且有專利授權問題。詳見 影片壓縮完整指南。
保持解析度和幀率
ffmpeg -i input.webm -c:v libx264 -crf 23 -c:a aac -movflags +faststart output.mp4-movflags +faststart 把 moov atom 移到前面,讓網頁漸進式播放。
方法 2:VLC 媒體播放器(GUI)
VLC 是免費媒體播放器,也能轉檔:
- 開啟 VLC → 媒體 → 轉換/儲存
- 點「加入」選擇 WebM 檔案
- 點「轉換/儲存」
- 設定檔下拉選「Video - H.264 + MP3 (MP4)」
- 點扳手圖示自訂設定
- 選擇輸出檔案路徑
- 點「開始」
VLC 內部用 FFmpeg,畫質和命令列差不多,但參數控制較少。
方法 3:線上轉換器
線上轉換器在瀏覽器中運作,免安裝:
優點:
- 免安裝
- 任何有瀏覽器的裝置都能用
- 小檔案免費
缺點:
- 檔案大小限制(通常 100-500MB)
- 上傳/下載耗時
- 隱私疑慮(影片送到伺服器)
注重隱私的替代方案,用 WebM to MP4 線上工具,所有處理在瀏覽器內用 WebAssembly 完成,檔案不離開你的裝置。
方法 4:瀏覽器端 FFmpeg.wasm
FFmpeg.wasm 把 FFmpeg 編譯成 WebAssembly,完全在瀏覽器執行:
- 免安裝
- 不上傳檔案到伺服器
- 隱私保護
- 比原生 FFmpeg 慢 30-50%
本站所有影片工具都用 FFmpeg.wasm。批次處理或大檔案,原生 FFmpeg 更可靠。
畫質最佳化技巧
選擇適當 CRF 值
CRF(Constant Rate Factor)控制畫質:
| CRF 值 | 畫質 | 檔案大小 | 使用場景 |
|---|---|---|---|
| 0 | 無損 | 巨大 | 母片封存 |
| 18 | 視覺無損 | 大 | 高畫質 |
| 23(預設) | 好 | 中 | 一般使用 |
| 28 | 可接受 | 小 | 網頁、郵件 |
| 32+ | 低 | 非常小 | 低位元率串流 |
選擇適當 preset
preset 控制編碼速度和壓縮效率:
| preset | 速度 | 壓縮 | 使用場景 |
|---|---|---|---|
| ultrafast | 最快 | 最差 | 直播 |
| fast | 快 | 低 | 快速測試 |
| medium(預設) | 中 | 好 | 一般使用 |
| slow | 慢 | 更好 | 封存 |
| veryslow | 最慢 | 最高 | 最終交付 |
解析度和幀率
改解析度:
# 縮放至 720p,保持比例
ffmpeg -i input.webm -vf "scale=-1:720" -c:v libx264 -crf 23 -c:a aac output.mp4
# 縮放至 1080p
ffmpeg -i input.webm -vf "scale=-1:1080" -c:v libx264 -crf 23 -c:a aac output.mp4改幀率:
# 30fps
ffmpeg -i input.webm -r 30 -c:v libx264 -crf 23 -c:a aac output.mp4常見問題
| 問題 | 原因 | 解決方案 |
|---|---|---|
| MP4 沒聲音 | 音訊編碼不相容 | 用 -c:a aac |
| 檔案巨大 | CRF 太低 | 用 CRF 23-28 |
| 轉換慢 | preset 太慢 | 用 -preset medium 或 fast |
| MP4 在 iPhone 播放不了 | 用了 H.265 編碼 | 用 H.264(-c:v libx264) |
| 黑畫面 | 幀率不一致 | 用 -r 30 |
| 跨來源播放失敗 | moov atom 在結尾 | 加 -movflags +faststart |
總結
用 FFmpeg 把 WebM 轉成 MP4 很簡單。基本指令 ffmpeg -i input.webm -c:v libx264 -crf 23 -c:a aac output.mp4 涵蓋 90% 場景。要最大跨裝置和平台相容性,永遠用 MP4 容器配 H.264 視訊和 AAC 音訊。
快速參考:
- 通用相容: MP4 配 H.264 + AAC
- 基本指令:
ffmpeg -i input.webm -c:v libx264 -crf 23 -c:a aac output.mp4 - 高畫質:
-crf 18 -preset slow - 小檔案:
-crf 28 - 免安裝: 用瀏覽器版 WebM to MP4 工具