← Blog.backToBlog

FFmpeg M3U8 Flags Cheatsheet — Copy, Headers & Fixes

7 min read

Input Options for M3U8

FlagPurpose
-i url.m3u8Input playlist URL/file
-protocol_whitelistAllow http/https/crypto protocols
-allowed_extensions ALLAllow .m3u8 extension when needed
-headersCustom HTTP headers
-user_agentCustom User-Agent

No CLI? Use our free M3U8 to MP4 converter or player in the browser—FFmpeg flags below for automation.

Output Options

FlagPurpose
-c copyStream copy (fast, lossless)
-c:v libx264Re-encode video H.264
-c:a aacRe-encode audio AAC
-crf NQuality (lower better; ~18–28)
-presetEncode speed vs compression
-t NDuration limit (live capture)
-ss NStart offset
-bsf:a aac_adtstoascAAC fix for MP4

Stream Selection

  • -map 0:v:0 — first/highest video
  • -map 0:a:0 — first audio
  • -vn — no video
  • -an — no audio
  • -sn — no subtitles

Troubleshooting Flags

  • -loglevel debug — verbose logs
  • -stats — progress (default)
  • -y — overwrite output
  • -n — never overwrite

Example Recipes

# Lossless MP4
ffmpeg -i "u.m3u8" -c copy -bsf:a aac_adtstoasc o.mp4
# One hour live
ffmpeg -i "live.m3u8" -t 3600 -c copy rec.mp4
# With headers
ffmpeg -user_agent "Mozilla/5.0" -i "u.m3u8" -c copy o.mp4

Command cookbook: HLS commands reference.

No CLI? Use our free M3U8 to MP4 converter or player in the browser—FFmpeg flags below for automation.

Frequently Asked Questions

Which flag preserves quality?
-c copy

Which flag fixes AAC in MP4?
-bsf:a aac_adtstoasc

How do I limit live recording length?
-t in seconds

How do I pick a lower quality?
Change stream maps like -map 0:v:1