Video-encoding is het proces van compressie van een digitaal videosignaal naar een formaat dat geschikt is voor opslag en verzending via een netwerk met minimaal kwaliteitsverlies. Zonder encoding neemt een minuut ongecomprimeerde video in 4K-resolutie ongeveer 30 GB in beslag, waardoor verzending via internet onmogelijk is. Volgens het Sandvine Global Internet Phenomena-rapport (2025) is video verantwoordelijk voor 65% van al het internetverkeer, en encoding is de sleuteltechnologie die dit mogelijk maakt.
Samenvatting
Video-encoding is het proces van het omzetten van een ongecomprimeerd videosignaal naar een digitaal formaat met behulp van compressie-algoritmen. De algoritmen die in videocodecs zijn geïmplementeerd, verwijderen redundante informatie zowel in het ruimtelijke domein (binnen één frame) als in het temporele domein (tussen opeenvolgende frames).
Ongecomprimeerde video is een reeks frames, die elk worden opgeslagen als een reeks pixels in RGB- of YUV-indeling. Zonder compressie vereist een seconde 1080p-video bij 30 FPS ongeveer 1,5 GB geheugen. De H.264-codec comprimeert deze stroom tot 3–5 Mbps, wat 2500 keer minder is dan het oorspronkelijke volume.
Videocodecs gebruiken twee soorten compressie: intra-frame en inter-frame. Intra-framecompressie wordt onafhankelijk op elk frame toegepast met behulp van algoritmen die lijken op JPEG: discrete cosinustransformatie (DCT), kwantisatie en entropiecodering.
Inter-framecompressie analyseert het verschil tussen opeenvolgende frames en codeert alleen de wijzigingen. Als de achtergrond statisch is, verzendt de codec het volledige frame slechts één keer (I-frame) en vervolgens alleen het verschil (P- en B-frames), wat de hoeveelheid gegevens voor scènes met weinig dynamiek aanzienlijk vermindert.
De keuze van videocodec bepaalt de verhouding tussen kwaliteit en bestandsgrootte, compatibiliteit met apparaten en licentiekosten. Op de markt voor mobiele apps domineren vier belangrijke codecs: H.264 (AVC), H.265 (HEVC), VP9 en AV1.
| Codec | Standaard | Jaar | Compressie vs H.264 | Licentiëring |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1x (basis) | Royalty (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | 40–50% efficiënter | Royalty (twee pools) |
| VP9 | 2013 | 30–40% efficiënter | Gratis | |
| AV1 | AOM | 2018 | 50–60% efficiënter | Gratis (Royalty-vrij) |
H.264 (AVC — Advanced Video Coding) blijft de meest compatibele videocodec: hij wordt ondersteund door alle mobiele apparaten, browsers en smart-tv's sinds 2005. Hardwareversnelling voor H.264-decodering is zelfs beschikbaar op budgetapparaten, wat het ideaal maakt voor universele streaming.
Het belangrijkste nadeel van H.264 is de relatief lage compressie-efficiëntie in vergelijking met moderne codecs. Bij dezelfde bitrate bieden H.265 en AV1 merkbaar hogere kwaliteit, wat vooral belangrijk is voor HDR- en 4K-content.
H.265 (HEVC — High Efficiency Video Coding) biedt 40–50% betere compressie dan H.264 bij dezelfde visuele kwaliteit. Dit wordt bereikt door een flexibelere verdeling van het frame in blokken (CTU tot 64×64 pixels in plaats van 16×16) en verbeterde algoritmen voor bewegingsvoorspelling.
HEVC wordt ondersteund op alle Apple-apparaten (vanaf iPhone 6), op Android (vanaf versie 5.0 met hardwarematige decodering) en op de meeste smart-tv's. De licentiekosten voor HEVC zijn hoger dan voor H.264 en worden beheerd door twee octrooipools, wat het juridische gebruik bemoeilijkt.
AV1 — videocodec ontwikkeld door de Alliance for Open Media (AOM), een consortium onder leiding van Google, Netflix, Amazon, Intel en Mozilla. AV1 biedt 50–60% betere compressie dan H.264 en is volledig vrij van royalty's, wat het aantrekkelijk maakt voor streamingdiensten.
Het grootste nadeel van AV1 is de hoge rekencomplexiteit van het coderen. AV1-codering kan 5–10 keer langzamer zijn dan H.264 op dezelfde hardware, hoewel hardwarematige decodering al verschijnt op apparaten uit 2024–2025 (Snapdragon 8 Gen 3, Apple A17 Pro).
Audiocodecs in mobiele apps zijn niet minder belangrijk dan videocodecs. Voor videostreaming is audio met minimale latentie, hoge kwaliteit en compatibiliteit met MP4- en WebM-containers vereist. Drie belangrijke audiocodecs dekken 99% van de mobiele streaming-apps.
AAC (Advanced Audio Coding) — de opvolger van MP3, ontwikkeld door MPEG in 1997 en uitgegroeid tot de standaard audiocodec voor iTunes, YouTube en Android. AAC biedt dezelfde kwaliteit als MP3 bij 30% lagere bitrate en ondersteunt meerkanaals audio tot 7.1.
Voor mobiele apps wordt AAC-LC aanbevolen bij een bitrate van 128–192 kbps voor stereo en AAC-HE voor lage bitrates van 32–64 kbps. Hardwarematige AAC-decodering is beschikbaar op alle moderne apparaten, wat het energieverbruik minimaliseert.
Opus — open audiocodec van IETF (RFC 6716), die de beste kwaliteit biedt van alle audiocodecs bij bitrates van 6 tot 510 kbps. Opus combineert SILK (algoritme voor spraak) en CELT (voor muziek) en schakelt automatisch van modus afhankelijk van de inhoud.
Opus wordt gebruikt in WebRTC voor videogesprekken, in Spotify en Discord, en wordt ondersteund in HLS vanaf iOS 11 en Android 5.0. De lage latentie van Opus (5–26 ms versus 40–100 ms bij AAC) maakt het de voorkeurskeuze voor live-uitzendingen en videoconferenties.
Encodeparameters bepalen de uiteindelijke bestandsgrootte, videokwaliteit en compatibiliteit met apparaten. De ontwikkelaar van een mobiele app moet optimale instellingen kiezen voor elk type content: films, sportuitzendingen, gebruikerscontent.
Bitrate — het aantal bits dat wordt gebruikt voor het coderen van één seconde video. Er wordt onderscheid gemaakt tussen CBR (Constant Bitrate) voor live-uitzendingen, VBR (Variable Bitrate) met doelkwaliteit voor archivering en ABR (Average Bitrate) voor streaming.
| Resolutie | H.264 (aanbevolen) | H.265/HEVC | AV1 |
|---|---|---|---|
| 360p | 400–800 kbps | 250–500 kbps | 200–400 kbps |
| 720p | 1,5–4 Mbps | 1–2,5 Mbps | 0,8–2 Mbps |
| 1080p | 3–8 Mbps | 2–5 Mbps | 1,5–4 Mbps |
| 4K (2160p) | 15–40 Mbps | 10–25 Mbps | 8–20 Mbps |
CRF (Constant Rate Factor) — encodeparameter in x264 en x265 die de doelkwaliteit instelt in plaats van een vaste bitrate. De CRF-schaal loopt van 0 (lossless) tot 51 (slechtste kwaliteit), waarbij 18–28 het werkbereik is. Voor mobiele apps wordt CRF 23 voor x264 en CRF 25 voor x265 aanbevolen.
CRF 18–20 zorgt voor hoge kwaliteit voor presentatiecontent en offline kijken. CRF 24–28 is geschikt voor streaming en gebruikerscontent, waar bestandsgrootte belangrijker is dan absolute kwaliteit.
De H.264-standaard definieert profielen (Baseline, Main, High) en niveaus (Level 1–5.2) die de maximale videoparameters beperken. Baseline Profile is compatibel met alle apparaten, maar ondersteunt geen B-frames. High Profile biedt maximale kwaliteit en wordt gebruikt voor 1080p-content.
Voor 4K-streaming is Level 5.1 en hoger vereist, wat door de meeste mobiele apparaten sinds 2018 wordt ondersteund. Het codecniveau bepaalt de maximale resolutie, bitrate en buffergrootte, en garandeert correcte decodering op alle gecertificeerde apparaten.
Encoding voor streaming verschilt van archiefencoding door de noodzaak om meerdere kwaliteitsvarianten (ABR-ladder) te maken en te optimaliseren voor netwerkoverdracht. Contentproviders gebruiken real-time transcodering of voorafgaande encoding voor VOD.
Een typische ABR-set voor mobiele apps omvat 4–6 varianten: van 144p (200 kbps) voor zwakke netwerken tot 1080p (8 Mbps) voor Wi-Fi. Aanbevolen resoluties: 144p, 240p, 360p, 480p, 720p, 1080p. Voor 4K-content worden 1440p en 2160p toegevoegd.
val mediaCodec = MediaCodec.createEncoderByType(
MediaFormat.MIMETYPE_VIDEO_AVC
)
val format = MediaFormat.createVideoFormat(
MediaFormat.MIMETYPE_VIDEO_AVC,
1280, 720
).apply {
setInteger(MediaFormat.KEY_BIT_RATE, 3_000_000)
setInteger(MediaFormat.KEY_FRAME_RATE, 30)
setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2)
setInteger(MediaFormat.KEY_PROFILE,
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh)
setInteger(MediaFormat.KEY_LEVEL,
MediaCodecInfo.CodecProfileLevel.AVCLevel31)
}
mediaCodec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)
Voor live-uitzendingen is lage latentie bijzonder belangrijk. Encodeparameters moeten de invoer-/uitvoervertraging van de codec minimaliseren: aanbevolen GOP-grootte van 1–2 seconden (elke 30–60 frames), B-frames uitgeschakeld of geminimaliseerd, voor H.264 wordt Baseline Profile gebruikt.
Moderne protocollen voor lage latentie — LL-HLS en CMAF-Low Latency — vereisen gefragmenteerde encoding met segmenten van 1–2 seconden en de mogelijkheid van gedeeltelijk laden (Partial Segments). De codec moet moof-box in elk segment ondersteunen voor gefragmenteerde MP4.
Veelgestelde vragen
Video-encoding — het proces van compressie van een digitaal videosignaal met behulp van codecs om de gegevenshoeveelheid te verminderen. In mobiele apps maakt encoding het mogelijk om video te verzenden en op te slaan, waarbij de grootte honderden keren wordt verkleind zonder merkbaar kwaliteitsverlies op het apparaatscherm.
H.264 biedt maximale compatibiliteit met oudere apparaten, en H.265 is 40–50% efficiënter bij dezelfde kwaliteit. Voor 1080p-content en lager is H.264 voldoende, voor 4K wordt H.265 of AV1 aanbevolen als het apparaat dit ondersteunt.
Bitrate — de hoeveelheid gegevens per seconde video. Voor 1080p is de optimale bitrate 3–8 Mbps voor H.264, 2–5 Mbps voor H.265. De keuze hangt af van de inhoud: dynamische scènes (sport) vereisen een hogere bitrate, statische scènes (interviews) een lagere.
VP9 — de voorganger van AV1 van Google, die compressie biedt op het niveau van H.265. AV1 comprimeert 20–30% efficiënter dan VP9, maar vereist 5–10 keer meer resources voor encoding. VP9 is beter voor YouTube, AV1 voor Netflix en moderne streamingdiensten.
Gebruik voor live-uitzendingen H.264 Baseline Profile met GOP 1–2 seconden, zonder B-frames, bitrate 2–4 Mbps voor 1080p. Schakel gefragmenteerde MP4 (CMAF) in voor LL-HLS en gebruik hardware-encoding via MediaCodec of VideoToolbox.
Conclusie
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook