Begrippenlijst

Video en codecs

Bijna alles wat verwarrend is aan videobestanden komt voort uit één onderscheid — tussen de doos en wat erin zit. Dit zijn de woorden voor allebei, en voor de bewerkingen die dingen van het een naar het ander verplaatsen.

Container

wrapper, formaat

De bestandsstructuur die video-, audio- en ondertitelsporen bij elkaar houdt en beschrijft waar elk spoor staat. MP4, MKV, AVI en WebM zijn containers. Een container comprimeert niets.

Zie het als een archiefdoos met een inhoudsopgave op de zijkant. De doos zegt: hier zit een videospoor, zo geëncodeerd; daar twee audiosporen, in deze talen; ondertitels op deze positie. Over hóé al die sporen gecomprimeerd zijn, heeft de doos geen mening.

Daarom kan dezelfde video bestaan als MP4 en als MKV, met identieke beeldkwaliteit en identieke bestandsgrootte, en gaat de ene wel open op een iPhone en de andere niet. Het verschil zit in de doos, niet in de inhoud.

Zie ook: CodecRemux

Codec

coder-decoder

De methode waarmee een video- of audiostroom wordt gecomprimeerd, en bij het afspelen weer uitgepakt. H.264, HEVC, AV1, AAC en MP3 zijn codecs. Een codec is geen bestandsformaat.

De naam is een samentrekking van coder-decoder. Bij het encoderen wordt detail weggegooid op een manier die berekend is om nauwelijks op te vallen; bij het decoderen wordt uit wat bewaard bleef een benadering van het origineel opgebouwd. Hoe beter de codec, hoe minder je bij een gegeven bestandsgrootte van dat verlies merkt.

Een apparaat speelt een bestand af als het de container kan lezen *én* elke codec erin kan decoderen. Allebei is nodig — en als een bestand wel opengaat maar niets laat zien, is het de tweede helft die faalde.

Zie ook: ContainerHardwaredecodering

H.264

AVC, MPEG-4 Part 10

De videocodec die alles kan decoderen. Gepubliceerd in 2003, nog altijd de veiligste keuze voor compatibiliteit, en op elke telefoon, computer en tv van de afgelopen vijftien jaar hardwarematig versneld.

H.264 heeft zo grondig gewonnen dat “speelt dit overal af” en “is dit H.264” bijna dezelfde vraag zijn geworden. Het is niet de efficiëntste codec die er is — HEVC en AV1 doen allebei meer met minder bits — maar in breedte van ondersteuning komt niets in de buurt.

H.264 kent profielen, en één daarvan geeft problemen op Apple-apparaten: High 10, meestal geschreven als Hi10P, slaat tien bits per kleurkanaal op in plaats van acht. Hardwaredecoders werken alleen met acht bits, dus op een apparaat zonder softwarematige terugval geeft een Hi10P-bestand wel geluid en geen beeld.

Zie ook: HEVCHardwaredecodering10-bit

HEVC

H.265

De opvolger van H.264, ruwweg half zo groot bij dezelfde kwaliteit. Elk Apple-apparaat vanaf 2015 decodeert het in hardware, en het is waarin een iPhone opneemt.

HEVC maakte 4K praktisch haalbaar op telefoons: hetzelfde beeld bij ongeveer de helft van de bitrate. Apple nam het vroeg en grondig over, dus op Apple-hardware is het een even veilige keuze als H.264.

Daarbuiten is het rommeliger. De patentlicenties rond HEVC waren omstreden genoeg dat webbrowsers het traag oppakten — precies het gat waarvoor AV1 in het leven is geroepen.

Zie ook: H.264AV1Bitrate

AV1

Een royaltyvrije codec uit 2018, efficiënter dan HEVC en, anders dan HEVC, zonder licentiegeruzie. Hardwarematig decoderen kwam pas op Apple-apparaten met de iPhone 15 Pro.

AV1 bestaat omdat de licentievoorwaarden van HEVC de grootste streaming- en webbrowserbedrijven deden verlangen naar een alternatief dat ze konden uitleveren zonder iemand te betalen. Inmiddels wordt een flink deel van alle webvideo erin geleverd.

De keerzijde zijn de decodeerkosten. Zonder hardwareondersteuning wordt AV1 in software gedecodeerd. Dat kán, maar het trekt zichtbaar aan de accu en kan bij hoge resoluties gaan haperen. Op oudere apparaten is een H.264-versie van dezelfde video simpelweg het betere bestand.

Zie ook: HEVCHardwaredecodering

Bitrate

Hoeveel data één seconde video of audio gebruikt, meestal in megabit per seconde. Het is het belangrijkste dat zowel de bestandsgrootte bepaalt als hoe hard een apparaat moet werken.

Resolutie krijgt alle aandacht, maar bitrate bepaalt hoe een bestand er werkelijk uitziet. Een 4K-bestand met een lage bitrate ziet er slechter uit dan een 1080p-bestand met een hoge, omdat de encoder meer moest weggooien om zijn doel te halen.

Het is ook waar een haperend bestand meestal over gaat. Speelt een video vlekkeloos op een computer en stottert hij op een telefoon, dan is er niets mis met het bestand: er wordt per seconde simpelweg meer decodeerwerk gevraagd dan die chip wil leveren.

Zie ook: CodecAdaptieve bitrate

Remux

herverpakken

De bestaande video- en audiosporen uit de ene container in een andere zetten, zonder ze opnieuw te encoderen. Verliesvrij, en zo snel dat de schijf de rem is en niet de processor.

Een remux kopieert sporen; er wordt geen enkel beeldje aangeraakt. Een MKV van een uur met H.264 en AAC wordt in seconden een MP4, bit voor bit identiek in beeld en geluid.

Het werkt alleen als de doelcontainer accepteert wat de bron bevat: MP4 neemt H.264 en AAC, en neemt geen VP9 of Vorbis. Als iemand zegt dat een conversie “meteen klaar” was, heeft hij geremuxt. Duurde het een uur, dan is er iets opnieuw geëncodeerd.

Zie ook: TranscoderenContainer

Transcoderen

opnieuw encoderen, converteren

Een spoor decoderen en opnieuw encoderen, meestal naar een andere codec of een lagere bitrate. Traag, en elke keer met kwaliteitsverlies — dat komt nooit meer terug.

Transcoderen is wat mensen bedoelen als ze het over “een video converteren” hebben, en het is een oprecht dure bewerking: elk beeldje wordt gedecodeerd, bewerkt en opnieuw gecomprimeerd. Het is het juiste antwoord wanneer de codec werkelijk niet ondersteund wordt, of wanneer een bestand echt kleiner moet.

Het is het verkeerde antwoord op “mijn telefoon opent dit niet” wanneer een remux had volstaan, en een slecht antwoord op een bestand waarvan het enige probleem een DTS-audiospoor is — één spoor vervangen laat het beeld ongemoeid.

Zie ook: RemuxBitrate

Hardwaredecodering

Video decoderen op een aparte, daarvoor gebouwde chip in plaats van op de hoofdprocessor. Veel sneller, veel koeler en veel vriendelijker voor de accu — maar alleen voor de codecs waarvoor die chip gemaakt is.

Elke telefoon bevat een videodecoder met een vaste functie die H.264 en HEVC bijzonder efficiënt afhandelt. Alles wat die chip niet kent, valt terug op software: dat werkt, maar het kost accu en warmte, en bij hoge resoluties kan het de video niet altijd bijbenen.

Daarom is formaatondersteuning op een telefoon geen enkelvoudig ja of nee. Een apparaat kan een codec in software prima op 1080p afspelen en op 4K met dezelfde codec vastlopen — en geen van beide uitkomsten zegt iets over of het bestand deugt.

Zie ook: CodecAV110-bit

10-bit

Hi10P, High 10

Video die tien bits per kleurkanaal opslaat in plaats van acht, voor vloeiendere kleurovergangen. In HEVC is het normaal en goed ondersteund; in H.264 is het veruit de meest voorkomende oorzaak van een bestand met wel geluid maar geen beeld op een iPhone.

Meer bits per kanaal betekent fijnere stapjes tussen tinten, waardoor de banden verdwijnen die je ziet in donkere luchten en trage overvloeiers. Voor HDR is het een vereiste, geen verfijning.

Het probleem zit specifiek bij H.264. Tienbits H.264 valt buiten wat hardwaredecoders implementeren, en de systeemspeler van Apple heeft er geen softwareroute voor: het geluid speelt en het beeld komt nooit. Anime-releases gebruiken het volop, en daarom komt dit veel vaker ter sprake dan het totale aandeel van het formaat zou doen vermoeden.

Zie ook: H.264Hardwaredecodering

Keyframe

I-frame

Een beeldje dat volledig is opgeslagen in plaats van als verschil met het beeldje ervoor. Spoelen kan alleen op zo’n beeldje landen, en daarom springt een video soms naar een net iets ander moment dan je aanwees.

Videocompressie werkt door de meeste beeldjes te beschrijven als veranderingen ten opzichte van hun buren. Alleen keyframes staan op zichzelf, en die komen doorgaans elke twee tot tien seconden voorbij.

Sleep je aan de tijdbalk, dan zoekt de speler het dichtstbijzijnde keyframe en begint daar. Keyframes ver uit elkaar maken een bestand kleiner en het spoelen grover; die afweging wordt tijdens het encoderen vastgelegd en is achteraf niet te veranderen zonder opnieuw te encoderen.

Zie ook: TranscoderenSegment

De andere onderwerpen