Codec vs container
The container (.mp4, .mov) is the box; the codec (H.264, ProRes) is how the picture inside was squeezed. Same box, different contents.
See it
What it is
The container is the file extension you see: .mp4, .mov, .mkv, .webm. It is a box that holds video track, audio tracks, subtitles, chapters, and metadata, and says how they line up in time. The codec is the algorithm that squeezed each track: H.264, H.265/HEVC, AV1, ProRes, DNxHR for picture, AAC or PCM for sound. Two .mov files can be wildly different beasts, one a 2 GB/minute ProRes master and one a tiny H.264 preview.
Know the difference when something refuses to play, upload, or import. 'Unsupported format' rarely tells you what broke, and the extension on its own cannot identify the incompatibility: it might be the container, the codec, a profile or bit depth the player does not handle, the audio codec, the way the file was muxed, or plain corruption. Inspect what is actually inside before you re-encode anything. Safe defaults: H.264 in .mp4 with AAC audio for the web and for clients, ProRes 422 or DNxHR in .mov for handoff between editors, AV1 in .webm when you need small files and control the players.
Gotcha: remuxing and re-encoding are not the same thing. Rewrapping H.264 from .mkv into .mp4 copies the streams and takes seconds with no quality loss. Actually converting the codec decodes and re-compresses every frame, costs minutes or hours, and throws away quality each time you do it.
Ask AI for it
Export this video twice with the right codec/container pairing: one web delivery file as H.264 video plus AAC audio in an .mp4 container with the faststart/moov-atom flag set, and one editing master as ProRes 422 with PCM audio in a .mov container. Do not re-encode when only the wrapper needs to change: remux instead.