Choose a codec and encoder
needs review
Start with the playback, editing, delivery, and licensing constraints. A codec with better compression is not useful when the target device cannot decode it or the required encoder is unavailable.
Decision order
Section titled “Decision order”- List every required player, device, editor, and delivery platform.
- Identify the codecs and profiles all of them accept.
- Decide whether the job needs lossless, visually lossless, or lossy output.
- Decide whether size, encode time, decode cost, or broad compatibility has priority.
- Choose an encoder implementation and test a representative short segment.
- Choose a container that accepts every video, audio, and subtitle stream you need.
| Typical goal | Starting point | Check before committing |
|---|---|---|
| Broad consumer playback | AVC/H.264 with AAC in MP4 | Profile, level, pixel format, and device limits |
| Efficient modern delivery | AV1, VP9, or HEVC | Hardware decode coverage and platform ingest rules |
| Editing/intermediate | ProRes, DNxHR, or lossless formats | Editor support, storage, chroma, and bit depth |
| Archival preservation | Lossless video and audio in a documented container | Validation, checksums, metadata, and recovery tooling |
List the encoders in your FFmpeg build instead of assuming a package includes one:
ffmpeg -hide_banner -encodersffmpeg -hide_banner -h encoder=libsvtav1Validation
Section titled “Validation”Encode a short segment containing motion, texture, gradients, dark regions, and audio transitions.
Inspect it on a real target device, then use ffprobe to confirm the output streams and metadata:
ffprobe -v error -show_format -show_streams -of json output.mkvDo not compare CRF or preset numbers across different encoders as if they represented the same quality or speed. Compare the resulting media under the same source, scaling, pixel-format, and playback conditions.