
為什麼 M3U8 需要「轉換」而不是直接另存新檔?
當你在播放一個 M3U8 串流時,瀏覽器背後實際上在不斷地請求一個又一個的 .ts 資料包,然後即時解碼播放。這些片段:
- 格式是 MPEG-2 Transport Stream(.ts)
- 大小通常是 2-10 秒的影片
- 無法直接用大多數播放器播放(格式不廣泛支援)
要獲得一個可在任何設備播放的影片,需要:
- 下載所有
.ts片段 - 將它們按順序合併
- 重新封裝成
.mp4容器(可選:重新編碼轉換編碼格式)
M3U8 的兩層結構
在開始下載前,必須理解 M3U8 可能有兩層:
Master Playlist(主播放清單)
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=2800000,RESOLUTION=1280x720
720p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1400000,RESOLUTION=854x480
480p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=700000,RESOLUTION=640x360
360p/index.m3u8
這個檔案本身不含片段,只列出不同畫質的 Media Playlist 路徑。
Media Playlist(媒體播放清單)
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:3
#EXTINF:6.006,
segment-001.ts
#EXTINF:6.006,
segment-002.ts
...
#EXT-X-ENDLIST
這才是實際包含 .ts 片段路徑的清單。
轉換方法詳解
方法一:FFmpeg -c copy(直接重封裝,最快)
ffmpeg -i "https://stream.example.com/720p/index.m3u8" \
-c copy \
-movflags +faststart \
output.mp4
說明:
- -c copy:不重新編碼,直接把 TS 的 H.264 + AAC 資料重新封裝到 MP4 容器
- -movflags +faststart:將 moov atom 移到檔案開頭,讓 MP4 支援邊下載邊播(串流友善)
- 速度極快,幾乎無 CPU 消耗,輸出大小與原始幾乎相同
方法二:FFmpeg 重新編碼(降低大小)
ffmpeg -i "https://stream.example.com/720p/index.m3u8" \
-c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k \
output.mp4
說明:
- 適合需要壓縮原本高 bitrate 影片的情況
- CRF 值越低品質越好,檔案越大(建議 18-28)
- 速度比 -c copy 慢許多,需要 CPU 重新編碼
方法三:瀏覽器端 FFmpeg.wasm(免安裝)
本站的 HLS 研究工具 在瀏覽器內執行 FFmpeg.wasm 完成合併,等同於在瀏覽器裡執行:
ffmpeg -f concat -safe 0 -i concat.txt -c copy output.mp4
適用場景: 臨時需要合併少量公開串流,不想安裝任何軟體時。
轉換工具比較
| 工具 | 安裝需求 | 速度 | CORS 限制 | 適合對象 |
|---|---|---|---|---|
| FFmpeg 命令列 | 需安裝 | ★★★★★ | 可繞過 | 開發者、技術用戶 |
| VLC | 需安裝 | ★★★ | 可繞過 | 一般用戶 |
| 瀏覽器工具(本站) | 免安裝 | ★★★ | 受限制 | 快速測試 |
| 線上轉換網站 | 免安裝 | ★★ | 多有支援 | 非技術用戶 |
常見問題
轉換後影片沒有聲音?
通常是因為音訊軌道是 AC-3(Dolby) 格式,部分 MP4 播放器不支援。解法:
ffmpeg -i input.m3u8 -c:v copy -c:a aac output.mp4
強制將音訊轉碼為 AAC 即可解決。
影片不同步(音畫不同步)?
若出現音畫不同步,通常是 TS 片段的 PTS/DTS 時間戳有跳動。加上 -async 1 或使用 -fflags +genpts 重新生成時間戳:
ffmpeg -fflags +genpts -i input.m3u8 -c copy output.mp4
M3U8 加密了怎麼辦?
若 M3U8 內有 #EXT-X-KEY:METHOD=AES-128,URI=...,代表片段加密。FFmpeg 能自動處理 AES-128,但 DRM(如 Widevine、FairPlay)是硬體級保護,目前沒有公開工具能處理。
更多加密詳情:M3U8 加密與 DRM 完整解析
相關資源
- 👉 直接在瀏覽器測試 HLS 下載工具(無需安裝)
- 👉 M3U8 格式完整介紹
- 👉 常見 M3U8 錯誤代碼與修復
想立即測試您的 M3U8 連結嗎?
🚀 立即測試 M3U8 線上播放器