Remux container without transcoding

basic conversion

// what it does

Remuxing means rewrapping the encoded streams into a different container, and -c copy (short for -codec copy) is how you do it without transcoding — no quality loss, minimal CPU. This is the general form of the MKV-to-MP4 case and applies to any compatible container swap (e.g. .ts to .mp4, .mov to .mp4). It's the first thing to try before reaching for a slow re-encode.

// shell

$ ffmpeg -i input.mkv -c copy output.mp4

// gotcha

Without an explicit -map 0, ffmpeg's default stream selection copies only the single best video and audio stream, silently dropping extra audio tracks, extra subtitles, data streams, and attachments; add -map 0 to carry everything over.