Wat zijn H.264-profielen?
De H.264-standaard (ook wel AVC of MPEG-4 Part 10 genoemd) definieert een uitgebreide set coderingstools — algoritmen om videoframes tot kleinere data te comprimeren. Profielen zijn deelverzamelingen van deze toolset. Elk profiel activeert een specifieke combinatie van functies, en hogere profielen bevatten alles van lagere profielen plus aanvullende technieken.
Beschouw profielen als moeilijkheidsgraden voor de decoder. Het Baseline-profiel gebruikt alleen de eenvoudigste tools, zodat elke hardware — zelfs een telefoon uit 2008 — het kan decoderen. Het High-profiel gebruikt alle beschikbare tools en bereikt de beste compressie, maar vereist meer rekenkracht van het afspeelapparaat.
De drie meest gebruikte profielen zijn Baseline, Main en High. Er zijn andere (Extended, High 10, High 4:2:2, High 4:4:4 Predictive), maar die bedienen nichetoepassingen zoals 10-bits kleur of professionele chroma-subsampling. Voor standaard 8-bits video bestemd voor consumentenweergave zijn Baseline, Main en High de enige profielen die ertoe doen.
Elke H.264-encoder — FFmpeg, HandBrake, Adobe Media Encoder, Apple Compressor — laat u een profiel kiezen. De keuze beïnvloedt drie zaken: compressie-efficiëntie (bestandsgrootte bij een bepaalde kwaliteit), coderingssnelheid (hoe lang het coderen duurt) en decodercompatibiliteit (welke apparaten het bestand kunnen afspelen).
Baseline-profiel
Het Baseline-profiel is de eenvoudigste en meest beperkte deelverzameling van H.264. Het is ontworpen voor apparaten met laag vermogen en realtime-toepassingen waarbij de decoderingslatentie minimaal moet zijn.
Belangrijke kenmerken van Baseline:
- Alleen I- en P-slices — de encoder kan intra-gecodeerde frames (I-frames, die op zichzelf staan) en predictieve frames (P-frames, die verwijzen naar een vorig frame) gebruiken. Er zijn geen B-frames.
- CAVLC-entropiecodering — Context-Adaptive Variable-Length Coding is een eenvoudigere en snellere entropiecoder. Het comprimeert de gekwantiseerde transformatiecoëfficiënten tot een bitstroom, maar is minder efficiënt dan het alternatief (CABAC).
- Geen gewogen predictie — de encoder kan geen gewogen referenties gebruiken voor fade-ins, fade-outs of cross-dissolves, wat resulteert in grotere bestanden tijdens overgangen.
- Alleen 4x4-transformaties — de ruimtelijke transformatie die pixelblokken omzet in frequentiecoëfficiënten is beperkt tot 4x4-blokken.
Omdat B-frames en CABAC ontbreken, produceert Baseline de grootste bestanden van de drie profielen bij elk kwaliteitsdoel. Een typische Baseline-codering is 10–20% groter dan dezelfde content gecodeerd met het High-profiel bij dezelfde CRF-waarde.
Wanneer Baseline gebruiken: realtime videoconferenties (waar B-frame-latentie onacceptabel is), oudere IP-camera's, zeer oude Android-apparaten (vóór 2011) en embedded systemen met beperkte rekenkracht. In 2026 zijn deze toepassingen steeds zeldzamer.
ffmpeg -i input.mov -c:v libx264 -profile:v baseline -level 3.0 -crf 23 -c:a aac -b:a 192k -movflags +faststart output.mp4
Main-profiel
Het Main-profiel voegt twee cruciale functies toe bovenop Baseline: B-frames en CABAC-entropiecodering. Deze twee toevoegingen alleen zijn verantwoordelijk voor het grootste deel van het compressievoordeel van Main.
B-frames (bidirectionele predictieve frames) kunnen tegelijkertijd naar zowel eerdere als toekomstige frames verwijzen. Dit is bijzonder effectief voor slow-motionscènes, statische achtergronden en alle content waarbij toekomstige frames nuttige voorspellingsdata bevatten. Een typische codering gebruikt 2–3 B-frames tussen elk paar referentieframes. De afweging is een lichte toename in coderingscomplexiteit en een decoderingslatentie van enkele frames — niet waarneembaar bij het afspelen van bestanden, maar problematisch voor realtime videogesprekken.
CABAC (Context-Adaptive Binary Arithmetic Coding) vervangt CAVLC als entropiecoder. CABAC gebruikt arithmetische codering met contextmodellen om de bitstroom efficiënter te comprimeren. In de praktijk bespaart CABAC 10–15% bitrate vergeleken met CAVLC bij dezelfde visuele kwaliteit. De kosten zijn hoger CPU-gebruik tijdens zowel codering als decodering, maar elk apparaat dat sinds ongeveer 2010 is gemaakt, verwerkt CABAC zonder problemen.
Het Main-profiel maakt ook gewogen predictie voor P-frames mogelijk, wat de compressie verbetert tijdens fades en scèneovergangen. De combinatie van B-frames, CABAC en gewogen predictie maakt Main ongeveer 10–12% efficiënter dan Baseline.
Wanneer Main gebruiken: terrestrische televisie (DVB-T gebruikt het Main-profiel), oudere streamingconfiguraties en scenario's waar u een middenweg wilt tussen compatibiliteit en compressie. Omdat het High-profiel echter wordt ondersteund door vrijwel elk apparaat dat Main ondersteunt, is er in 2026 weinig praktische reden om Main boven High te verkiezen.
ffmpeg -i input.mov -c:v libx264 -profile:v main -level 4.0 -crf 23 -c:a aac -b:a 192k -movflags +faststart output.mp4
High-profiel
Het High-profiel is het meest complete profiel voor standaard 8-bits video. Het voegt verschillende tools toe bovenop Main die de compressie-efficiëntie verder verbeteren.
8x8 integer-transformaties zijn de belangrijkste toevoeging. Terwijl Baseline en Main beperkt zijn tot 4x4-transformatieblokken, kan het High-profiel 8x8-blokken gebruiken voor gebieden met minder ruimtelijk detail. Grotere transformatieblokken zijn efficiënter voor vloeiende gradiënten, lucht en gebieden met weinig textuur, omdat ze laagfrequente informatie vastleggen in minder coëfficiënten. Voor gedetailleerde gebieden valt de encoder terug op 4x4-transformaties. Deze adaptieve blokgrootteselectie bespaart 5–10% bitrate ten opzichte van het Main-profiel.
Kwantisatieschaleringsmatrices stellen de encoder in staat om verschillende frequentiecomponenten te wegen tijdens kwantisatie. Dit betekent dat de encoder detail kan behouden in perceptueel belangrijke frequenties, terwijl minder belangrijke frequenties agressiever worden gecomprimeerd. Het is vergelijkbaar met hoe JPEG verschillende kwantisatietabellen gebruikt voor luminantie en chrominantie.
Afzonderlijke Cb- en Cr-kwantisatieregeling laat de encoder de twee chrominantiekanalen onafhankelijk behandelen, wat fijnere controle biedt over kleurcompressie.
Het High-profiel is het standaardprofiel in FFmpeg’s libx264-encoder. Het is ook het vereiste profiel voor Blu-ray Disc, het aanbevolen profiel voor YouTube- en Vimeo-uploads, en de standaard voor alle grote streamingdiensten. Wanneer iemand “H.264” zegt zonder een profiel te specificeren, bedoelen ze vrijwel zeker het High-profiel.
ffmpeg -i input.mov -c:v libx264 -profile:v high -level 4.1 -crf 23 -c:a aac -b:a 192k -movflags +faststart output.mp4
FFmpeg gebruikt standaard het High-profiel. Als u -profile:v helemaal niet opgeeft, gebruikt libx264 automatisch het High-profiel. In 2026 wordt het High-profiel ondersteund door vrijwel elk apparaat dat sinds 2012 is gemaakt. Er is bijna nooit een reden om Baseline of Main te gebruiken.
Vergelijking van compressie-efficiëntie
De volgende tabel vergelijkt de drie profielen bij dezelfde visuele kwaliteit (CRF 23). Bestandsgroottes zijn relatief ten opzichte van het High-profiel, dat als 100%-referentie dient. Hogere percentages betekenen grotere bestanden bij dezelfde kwaliteit.
| Profiel | Relatieve bestandsgrootte | Belangrijkste functies | B-Frames | CABAC | 8x8-transformatie |
|---|---|---|---|---|---|
| Baseline | ~115% | Alleen I- + P-slices, CAVLC | Nee | Nee | Nee |
| Main | ~105% | + B-frames, CABAC, gewogen predictie | Ja | Ja | Nee |
| High | 100% (referentie) | + 8x8-transformaties, kwantisatiematrices | Ja | Ja | Ja |
De bovenstaande cijfers zijn typische gemiddelden over verschillende contenttypen (pratend hoofd, actiemateriaal, schermopnamen). Het werkelijke verschil varieert per content: zeer gedetailleerd materiaal profiteert meer van 8x8-transformaties (groter verschil tussen Main en High), terwijl snelle actiecontent meer profiteert van B-frames (groter verschil tussen Baseline en Main).
Compatibiliteitsmatrix
In 2026 is de compatibiliteitsvraag grotendeels opgelost. Elk modern apparaat ondersteunt het High-profiel. De onderstaande tabel toont precies welke apparaten elk profiel ondersteunen.
| Apparaat / Platform | Baseline | Main | High |
|---|---|---|---|
| iPhone 3GS+ (2009–heden) | Ja | Ja | Ja |
| Android 3.0+ (2011–heden) | Ja | Ja | Ja |
| Alle moderne browsers (Chrome, Firefox, Safari, Edge) | Ja | Ja | Ja |
| YouTube, Vimeo, Twitch | Ja | Ja | Aanbevolen |
| Smart-tv's (2012–heden) | Ja | Ja | Ja |
| Blu-ray-spelers | Ja | Ja | Vereist |
| Oude webcams, IP-camera's (vóór 2010) | Ja | Wisselend | Nee |
| Feature-phones (pre-smartphonetijdperk) | Ja | Nee | Nee |
De enige apparaten die het High-profiel niet kunnen afspelen zijn oudere hardware van vóór 2010 — oude IP-camera's, feature-phones en streaming-sticks van de eerste generatie. Als uw doelgroep een apparaat gebruikt dat in de afgelopen 14 jaar is aangeschaft, is het High-profiel veilig.
Welk profiel moet u gebruiken?
Het antwoord voor 2026 is eenvoudig: gebruik het High-profiel. Het is de FFmpeg-standaard, de Blu-ray-standaard en de aanbevolen instelling voor elk groot streamingplatform. U krijgt de beste compressie-efficiëntie en de kleinste bestanden bij elk kwaliteitsniveau.
De enige uitzonderingen zijn uiterst specifiek:
- Realtime videoconferenties op verouderde systemen — Baseline elimineert B-frame-latentie, wat belangrijk is voor communicatie met een retourzendtijd van minder dan 100 ms. Moderne WebRTC-implementaties handelen dit af op applicatieniveau, maar sommige oudere SIP-gebaseerde systemen vereisen Baseline.
- Beveiligingscamera's en IoT-apparaten — sommige goedkope IP-camera's van vóór 2010 decoderen alleen Baseline. Als u video naar zo'n apparaat stuurt, heeft u geen keuze.
- Regelgevende compliance — bepaalde uitzendstandaarden (bijv. sommige DVB-T-configuraties) schrijven het Main-profiel voor. Controleer uw specifieke uitzendspecificatie.
Voor al het andere — webvideo, sociale media, bestandsdeling, archivering, presentaties, e-mailbijlagen — is het High-profiel de juiste keuze. Onze converter gebruikt automatisch het High-profiel bij het coderen van MOV naar MP4, waardoor de beste balans tussen kwaliteit, bestandsgrootte en universele compatibiliteit wordt gegarandeerd.
Opmerking over niveaus
Profielen bepalen welke coderingstools beschikbaar zijn. Niveaus bepalen de limieten van die tools — maximale resolutie, framerate, bitrate en referentieframes. De meest gebruikte niveaus zijn:
| Niveau | Max. resolutie | Max. framerate | Max. bitrate (High) |
|---|---|---|---|
| 3.0 | 720x576 | 25 fps | 12,5 Mbps |
| 3.1 | 1280x720 | 30 fps | 17,5 Mbps |
| 4.0 | 1920x1080 | 30 fps | 25 Mbps |
| 4.1 | 1920x1080 | 30 fps | 62,5 Mbps |
| 4.2 | 1920x1080 | 60 fps | 62,5 Mbps |
| 5.1 | 3840x2160 | 30 fps | 300 Mbps |
Voor 1080p-content is niveau 4.1 de standaardkeuze en wat de meeste encoders automatisch selecteren. Voor 4K-content is niveau 5.1 vereist. In de meeste gevallen hoeft u het niveau niet handmatig in te stellen — FFmpeg's libx264 detecteert automatisch het juiste niveau op basis van de resolutie en framerate van uw video.
FFmpeg-opdrachten voor elk profiel
Hier zijn volledige FFmpeg-opdrachten voor codering met elk profiel. Alle drie produceren dezelfde visuele kwaliteit (CRF 23) maar verschillen in bestandsgrootte vanwege de compressie-efficiëntie van het profiel:
# Baseline — largest file, widest legacy compatibility
ffmpeg -i input.mov -c:v libx264 -profile:v baseline -level 3.0 -crf 23 -c:a aac -b:a 192k -movflags +faststart output_baseline.mp4
# Main — ~10% smaller, adds B-frames and CABAC
ffmpeg -i input.mov -c:v libx264 -profile:v main -level 4.0 -crf 23 -c:a aac -b:a 192k -movflags +faststart output_main.mp4
# High — smallest file, best compression (FFmpeg default)
ffmpeg -i input.mov -c:v libx264 -profile:v high -level 4.1 -crf 23 -c:a aac -b:a 192k -movflags +faststart output_high.mp4
Om te controleren welk profiel een bestaand MP4-bestand gebruikt, voert u uit:
ffprobe -v error -select_streams v:0 -show_entries stream=profile input.mp4
Dit geeft de profielnaam weer (Baseline, Main of High), zodat u uw coderingsinstellingen kunt verifiëren of een bestand kunt controleren dat u van iemand anders hebt ontvangen.