Every video and audio codec used for ripping optical media β from the DivX days to AV1 and beyond. Timeline, status, compatibility, and what to use when.
Concrete recommendations per scenario. Video codec, audio codec, and tips.
Most DVDs are interlaced (480i/576i). Skipping deinterlacing produces visible combing artifacts. Here's the decision tree for HandBrake:
Detelecine β Default, set output to 23.976 CFR. This reverses 3:2 pulldown on 24fps film content. Add Decomb β Default as safety net for residual combing. Covers 80%+ of commercial NTSC DVDs.Deinterlace β Yadif + Bob, set output to 59.94 CFR (NTSC) or 50 CFR (PAL). Bob promotes each field to a full frame β preserves motion smoothness. EEDI2 Bob is higher quality but 2β3x slower.Off, use Same as Source framerate.Yadif over Bwdif β Bwdif's interpolation damages sharp line art. Avoid Decomb unless genuinely mixed content; its auto-detection misfires on fine patterns (crosshatch shading, striped clothing).Rule of thumb: If you know the source is interlaced, manually select a deinterlace filter β don't rely on auto-detection. If you know it's progressive, leave everything off. Keep Interlace Detection β Off β auto-detection creates more problems than it solves. Use MediaInfo to check your source before encoding.
--tune animation (optimized for cartoons, complex anime will suffer) or --tune grain (values too high for anime). Manually configure psycho-visual parameters instead.--output-depth 10 or yuv420p10le. Prevents banding, improves gradients, produces better dark scenes and smaller file sizes.--limit-sao for CRF 17β19 Β· Use --no-sao for CRF <18 or if fine grain is present. For CRF <16 with grain: --no-sao:--no-strong-intra-smoothing.--psy-rd=1 (default for low-detail anime) Β· --psy-rd=1.5 (for grain/snow/particles or detailed dark scenes) Β· --psy-rd=2 (for complex/action-packed anime) Β· --psy-rdoq=1 (default for clean anime) Β· --psy-rdoq=2-3 (for grain or CRT effects) Β· --psy-rdoq=4-5 (for grain throughout, movie-quality with complex grain).--aq-mode=3 (mandatory for anime β sets dark scene bias, prevents blocky black hair) Β· --aq-strength=0.7-1.0 (don't exceed 1 or go below 0.7).--bframes=8-16 (use 16 with b-adapt=1 for best quality) Β· --ref=6 (recommended by Ultra HD Blu-ray spec).--deblock=1:1 or --deblock=2:2 (strength of 1 or 2 is a must for anime) Β· For detailed anime with grain: --deblock=-1:-1.--bit-depth 10 or yuv420p10le. Produces better dark/black scenes and smaller file sizes.--film-grain=4 (recommended for most anime β hand-drawn or smoother sources) Β· --film-grain=6 (moderate grain) Β· --film-grain=8 (heavy grain). Values above 8 typically too high for anime. --film-grain-denoise=0 to preserve original grain structure.--enable-tf=0 (disable to preserve line art sharpness β increases file size slightly but maintains detail).--tune=0 (subjective visual quality with higher sharpness, recommended for anime).10-bit is non-negotiable. Anime's large flat-color gradients (skies, hair shading, lighting) produce visible banding in 8-bit. 10-bit virtually eliminates this even at the same CRF. Both x265 and SVT-AV1 support it natively.
Disable SAO in x265 with --no-sao. SAO is a loop filter that blurs fine detail β devastating for sharp line art. The single most impactful x265 setting for anime. In HandBrake, add no-sao=1 to "Extra Options" in the Video tab.
Lower CRF than live action. Anime compresses very efficiently (flat colors = high compressibility), so a given CRF yields smaller files than equivalent live action. CRF 15β18 gives transparent quality at ~2β4 GB per 1080p movie.
AV1 grain synthesis: For grainy anime (Texhnolyze, Berserk, older transfers) with SVT-AV1, use --film-grain 6-12. The encoder strips grain, stores parameters as metadata, and the decoder re-synthesizes it β massive bitrate savings with negligible visual difference.
Subtitles: Always keep as soft subs in MKV (ASS/SSA for fansubs, PGS for official BD subs). Never hardcode β destroys ability to switch/disable. Many anime typesetting effects (karaoke, signs) depend on ASS rendering.
--hdr-opt 1 (enables HDR optimization) Β· --repeat-headers 1 (headers on every frame, required for HDR) Β· --colorprim bt2020 (BT.2020 wide color gamut) Β· --transfer smpte2084 (SMPTE ST 2084 PQ/Perceptual Quantizer for HDR10) Β· --colormatrix bt2020nc (BT.2020 non-constant luminance) Β· --master-display "G(x,y)B(x,y)R(x,y)WP(x,y)L(max,min)" (extract from source MediaInfo) Β· --max-cll "max,avg" (extract from source MediaInfo).dovi_tool to extract RPU metadata from source (Profile 7), convert to Profile 8.1 (single-layer with HDR10 backwards compatibility), inject RPU data back into x265 encoded video. Enhancement layer is discarded when converting DV Profile 7 to 8.1.--audio-copy-mask truehd. TrueHD Atmos from UHD Blu-rays should be passed through without re-encoding. All Blu-rays with TrueHD include a separate AC-3 failsafe track (not embedded as a core like DTS-HD MA).--audio-copy-mask dtshd. For fallback compatibility, extract DTS core (typically 1536 kbps) or encode separate AC-3 640 kbps track.-pix_fmt yuv420p10le. More accurate colors, fewer artifacts, minimal file size increase vs 8-bit. Always desirable for coding efficiency even if source is 8-bit.film-grain=8 (live-action with normal grain, good starting point) Β· film-grain=10-15 (lots of natural grain) Β· film-grain=4-6 (2D animation). Compatibility warning: many devices with AV1 decode don't support FGS or have buggy implementations β not safe "always on" feature. Test on target playback devices first.enable-hdr=1 Β· color-primaries=9:transfer-characteristics=16:matrix-coefficients=9 (ITU-R BT.2020, PQ transfer, non-constant luminance Y'CbCr) Β· Extract mastering-display and content-light from source MediaInfo. Consider SVT-AV1-HDR fork for improved perceptual quality in HDR with custom PQ curve.keyint=10s (time-based keyframes) Β· scd=1 (scene change detection) Β· tune=0 (general content) Β· enable-overlays=1 Β· scm=0.--downmix-stereo flag, 128β192 kbps VBR for stereo. For E-AC-3: inherently supports downmixing to stereo on compatible devices (center channel mixed and distributed between front L/R at -3dB).-movflags +faststart flag. Moves MOOV atom to beginning of file for progressive download β allows immediate playback while streaming.tune=0 (prioritizes visual quality) Β· keyint=10s (auto-adjusts for any framerate) Β· enable-overlays=1 (better quality) Β· scd=1 (scene change detection).yuv420p10le for quality boost in darker shades.Where every codec stands today. Click the status badges below to toggle visibility.
Approximate playback support across TVs, phones, browsers, receivers, and media players.
Click any entry to expand. From MPEG-2 DVD originals through the AV1/H.266 frontier.