Why Convert M3U8 to MP4?
M3U8 is a streaming playlist — the actual video is split into dozens of .ts segments scattered across a server. While ideal for online streaming, this format is inconvenient for offline use: it cannot be imported into video editors, cannot be played without internet, and is not suitable for archiving. Converting to MP4 solves all of these problems.
Method 1: StreamFlow Online Converter (Recommended)
Visit the StreamFlow converter. Everything runs in your browser — no data is sent to any server.
- Copy the M3U8 URL (usually ending in .m3u8)
- Paste it into the input field and set an output filename
- Choose concurrency (5 recommended; use 8 on a fast connection)
- Click "Start Converting" and wait for download and merge to complete
- Click "Download MP4" to save the file
Method 2: FFmpeg Command Line
# Simplest conversion (stream copy, no re-encoding — fastest)
ffmpeg -i "https://example.com/video/index.m3u8" -c copy output.mp4
# Fix audio issues with AAC streams
ffmpeg -i "https://example.com/video/index.m3u8" -c copy -bsf:a aac_adtstoasc output.mp4
# Re-encode (use when changing resolution or format)
ffmpeg -i "https://example.com/video/index.m3u8" -c:v libx264 -c:a aac output.mp4
Method 3: N_m3u8DL-RE (Fastest)
An open-source tool built specifically for M3U8 downloads, with multi-threaded parallel downloading for maximum speed:
N_m3u8DL-RE "https://example.com/video/index.m3u8" -sv best
Download from: github.com/nilaoda/N_m3u8DL-RE (Windows, Linux, macOS)
Method Comparison
| Method | Difficulty | Speed | Encrypted M3U8 | Best for |
|---|---|---|---|---|
| StreamFlow Online | ⭐ Easiest | Medium | ✗ | General users |
| FFmpeg | ⭐⭐ Medium | Medium | ✓ | Developers |
| N_m3u8DL-RE | ⭐⭐ Medium | Fastest | ✓ | Power users |
- CORS error: The server blocks cross-origin requests. Browser tools cannot bypass this — switch to FFmpeg, which is not subject to CORS restrictions.
- Some segments fail to download: StreamFlow skips failed segments and continues merging. The final video may have brief black frames at those points.
- Video plays but no audio: Add
-bsf:a aac_adtstoascto the FFmpeg command to fix the AAC audio container header. - Progress stalls at a percentage: A segment download timed out. Lower the concurrency setting and retry, or wait for better network conditions.
- File is large but very short: You may have downloaded a master playlist URL that points to another M3U8 instead of actual segments. Verify the URL.