Kódování videa v mobilních aplikacích: co to je, kodeky a parametry

Autor: IT Sectr Publikováno: 2026-05-24 Doba čtení: 8 min

Kódování videa (encoding) je proces komprese digitálního videosignálu do formátu vhodného pro ukládání a přenos po síti s minimální ztrátou kvality. Bez kódování jedna minuta nekomprimovaného videa v rozlišení 4K zabírá asi 30 GB, což znemožňuje přenos po internetu. Podle zprávy Sandvine Global Internet Phenomena (2025) tvoří video 65% veškerého internetového provozu a kódování je klíčová technologie, která to umožňuje.

Hlavní body

  • Kódování — komprese videosignálu pomocí kodeků ke snížení objemu dat.
  • Kodeky H.264 a H.265 — hlavní standardy: AVC zajišťuje kompatibilitu, HEVC lepší kompresi.
  • VP9 a AV1 — otevřené kodeky od Google a Alliance for Open Media, bez licenčních poplatků.
  • Bitrate určuje velikost a kvalitu: 2–5 Mb/s pro 1080p, 15–40 Mb/s pro 4K.
  • Audio kodeky AAC a Opus — standardy pro mobilní aplikace s nízkou latencí a vysokou kvalitou.

Co je kódování videa?

Kódování videa (encoding) je proces převodu nekomprimovaného videosignálu do digitálního formátu pomocí kompresních algoritmů. Algoritmy implementované ve video kodekech odstraňují redundantní informace jak v prostorové oblasti (uvnitř jednoho snímku), tak v časové oblasti (mezi po sobě jdoucími snímky).

Nekomprimované video je sekvence snímků, z nichž každý je uložen jako pole pixelů ve formátu RGB nebo YUV. Bez komprese vyžaduje jedna sekunda videa 1080p při 30 FPS přibližně 1,5 GB paměti. Kodek H.264 komprimuje tento tok na 3–5 Mb/s, což je 2500krát méně než původní objem.

Principy komprese videa

Video kodeky používají dva typy komprese: vnitrosnímkovou (intra-frame) a mezisnímkovou (inter-frame). Intra-frame komprese se aplikuje na každý snímek nezávisle pomocí algoritmů podobných JPEG: diskrétní kosinová transformace (DCT), kvantování a entropické kódování.

Inter-frame komprese analyzuje rozdíl mezi po sobě jdoucími snímky a kóduje pouze změny. Pokud je pozadí statické, kodek odešle celý snímek pouze jednou (I-frame) a poté pouze rozdíl (P a B snímky), což výrazně snižuje objem dat pro scény s nízkou dynamikou.

Video kodeky: H.264, H.265, VP9, AV1

Výběr video kodeku určuje poměr kvality a velikosti souboru, kompatibilitu se zařízeními a licenční poplatky. Na trhu mobilních aplikací dominují čtyři hlavní kodeky: H.264 (AVC), H.265 (HEVC), VP9 a AV1.

KodekStandardRokKomprese vs H.264Licencování
H.264/AVCMPEG-4 Part 1020031x (základní)Zpoplatněno (MPEG LA)
H.265/HEVCMPEG-H Part 2201340–50% účinnějšíZpoplatněno (dva pooly)
VP9Google201330–40% účinnějšíZdarma
AV1AOM201850–60% účinnějšíZdarma (Royalty-free)

H.264 — univerzální standard

H.264 (AVC — Advanced Video Coding) zůstává nejkompatibilnějším video kodekem: je podporován všemi mobilními zařízeními, prohlížeči a Smart TV od roku 2005. Hardwarová akcelerace dekódování H.264 je dostupná i na levných zařízeních, což jej činí ideálním pro univerzální tok.

Hlavní nevýhoda H.264 — relativně nízká účinnost komprese ve srovnání s moderními kodeky. Při stejném bitrate poskytují H.265 a AV1 znatelně vyšší kvalitu, což je zvláště důležité pro HDR a 4K obsah.

H.265 — účinnost pro 4K

H.265 (HEVC — High Efficiency Video Coding) poskytuje 40–50% lepší kompresi než H.264 při stejné vizuální kvalitě. Toho je dosaženo flexibilnějším rozdělením snímku na bloky (CTU až 64×64 pixelů namísto 16×16) a vylepšenými algoritmy predikce pohybu.

HEVC je podporován na všech zařízeních Apple (od iPhone 6), na Androidu (od verze 5.0 s hardwarovým dekódováním) a na většině Smart TV. Licenční poplatky HEVC jsou vyšší než u H.264 a jsou spravovány dvěma patentovými pooly, což komplikuje legální použití.

AV1 — otevřený standard budoucnosti

AV1 — video kodek vyvinutý Alliance for Open Media (AOM), konsorciem vedeným Googlem, Netflixem, Amazonem, Intelem a Mozillou. AV1 poskytuje 50–60% lepší kompresi než H.264 a je zcela bez licenčních poplatků, což jej činí atraktivním pro streamovací služby.

Hlavní nevýhoda AV1 — vysoká výpočetní náročnost kódování. Kódování AV1 může být 5–10krát pomalejší než H.264 na stejném hardwaru, ačkoli hardwarové dekódování se již objevuje na zařízeních z let 2024–2025 (Snapdragon 8 Gen 3, Apple A17 Pro).

Audio kodeky: AAC, MP3, Opus

Audio kodeky v mobilních aplikacích nejsou méně důležité než video kodeky. Pro streamování videa je vyžadováno audio s minimální latencí, vysokou kvalitou a kompatibilitou s kontejnery MP4 a WebM. Tři hlavní audio kodeky pokrývají 99% mobilních streamovacích aplikací.

AAC — standard Apple a YouTube

AAC (Advanced Audio Coding) — nástupce MP3, vyvinutý MPEG v roce 1997 a stal se standardním audio kodekem pro iTunes, YouTube a Android. AAC poskytuje stejnou kvalitu jako MP3 při 30% nižším bitrate a podporuje vícekanálový zvuk až do 7.1.

Pro mobilní aplikace se doporučuje AAC-LC při bitrate 128–192 kb/s pro stereo a AAC-HE pro nízké bitrate 32–64 kb/s. Hardwarové dekódování AAC je dostupné na všech moderních zařízeních, což minimalizuje spotřebu energie.

Opus — moderní audio kodek

Opus — otevřený audio kodek od IETF (RFC 6716), který poskytuje nejlepší kvalitu ze všech audio kodeků při bitrate od 6 do 510 kb/s. Opus kombinuje SILK (algoritmus pro řeč) a CELT (pro hudbu) a automaticky přepíná režimy v závislosti na obsahu.

Opus se používá ve WebRTC pro videohovory, v aplikacích Spotify a Discord a je podporován v HLS od iOS 11 a Android 5.0. Nízká latence Opusu (5–26 ms oproti 40–100 ms u AAC) jej činí preferovanou volbou pro živé přenosy a videokonference.

Parametry kódování: bitrate, rozlišení, FPS

Parametry kódování určují konečnou velikost souboru, kvalitu videa a kompatibilitu se zařízeními. Vývojář mobilní aplikace musí zvolit optimální nastavení pro každý typ obsahu: filmy, sportovní přenosy, uživatelský obsah.

Bitrate a jeho typy

Bitrate — počet bitů použitých pro kódování jedné sekundy videa. Rozlišujeme CBR (Constant Bitrate) — konstantní bitrate pro živé přenosy, VBR (Variable Bitrate) — proměnný s cílovou kvalitou pro archivaci a ABR (Average Bitrate) — průměrný pro streamování.

RozlišeníH.264 (doporučeno)H.265/HEVCAV1
360p400–800 kb/s250–500 kb/s200–400 kb/s
720p1,5–4 Mb/s1–2,5 Mb/s0,8–2 Mb/s
1080p3–8 Mb/s2–5 Mb/s1,5–4 Mb/s
4K (2160p)15–40 Mb/s10–25 Mb/s8–20 Mb/s

CRF — kontrola kvality

CRF (Constant Rate Factor) — parametr kódování v x264 a x265, který nastavuje cílovou kvalitu místo pevného bitrate. Stupnice CRF od 0 (lossless) do 51 (nejhorší kvalita), kde 18–28 je pracovní rozsah. Pro mobilní aplikace se doporučuje CRF 23 pro x264 a CRF 25 pro x265.

CRF 18–20 poskytuje vysokou kvalitu pro prezentační obsah a offline sledování. CRF 24–28 je vhodný pro streamování a uživatelský obsah, kde je velikost souboru důležitější než absolutní kvalita.

Profily a úrovně kodeků

Standard H.264 definuje profily (Baseline, Main, High) a úrovně (Level 1–5.2), které omezují maximální parametry videa. Baseline Profile je kompatibilní se všemi zařízeními, ale nepodporuje B snímky. High Profile poskytuje maximální kvalitu a používá se pro 1080p obsah.

Pro 4K streamování je vyžadována Level 5.1 a vyšší, kterou podporuje většina mobilních zařízení od roku 2018. Úroveň kodeku určuje maximální rozlišení, bitrate a velikost bufferu, garantující správné dekódování na všech certifikovaných zařízeních.

Kódování pro streamování

Kódování pro streamování se liší od archivního kódování potřebou vytvoření několika variant kvality (ABR ladder) a optimalizací pro síťový přenos. Poskytovatelé obsahu používají transkódování v reálném čase nebo předběžné kódování pro VOD.

Typická ABR sada pro mobilní aplikace zahrnuje 4–6 variant: od 144p (200 kb/s) pro slabé sítě po 1080p (8 Mb/s) pro Wi-Fi. Doporučená rozlišení: 144p, 240p, 360p, 480p, 720p, 1080p. Pro 4K obsah se přidávají 1440p a 2160p.

Transkódování na mobilním zařízení

kotlin
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)

Kódování pro živé přenosy

Pro živé přenosy je důležitá nízká latence. Nastavení kódování by měla minimalizovat vstupně/výstupní zpoždění kodeku: doporučuje se velikost GOP 1–2 sekundy (každých 30–60 snímků), B snímky vypnuté nebo minimalizované, pro H.264 se používá Baseline Profile.

Moderní protokoly pro nízkou latenci — LL-HLS a CMAF-Low Latency — vyžadují fragmentované kódování se segmenty 1–2 sekund a možností částečného načítání (Partial Segments). Kodek musí podporovat moof-box v každém segmentu pro fragmentované MP4.

Optimalizace kódovacího pipeline

  • Hardwarové kódování přes MediaCodec (Android) nebo VideoToolbox (iOS) je povinné pro reálný čas.
  • Vícevláknové kódování na serveru pomocí libx264/libx265 v režimu ultrafast nebo veryfast.
  • Presety kódování: placebo — nejhorší pro VOD (maximální komprese), ultrafast — pro živé přenosy.
  • Two-pass VBR — preferovaný režim pro VOD, poskytující předvídatelnou velikost a kvalitu.

Často kladené otázky

Co je kódování videa v mobilních aplikacích?

Kódování videa — proces komprese digitálního videosignálu pomocí kodeků ke snížení objemu dat. V mobilních aplikacích umožňuje kódování přenos a ukládání videa, přičemž velikost se zmenšuje stokrát bez znatelné ztráty kvality na obrazovce zařízení.

Který kodek je lepší: H.264 nebo H.265?

H.264 poskytuje maximální kompatibilitu se starými zařízeními, zatímco H.265 je 40–50% účinnější při stejné kvalitě. Pro obsah 1080p a nižší stačí H.264, pro 4K se doporučuje H.265 nebo AV1, pokud to zařízení podporuje.

Co je bitrate a jak jej vybrat?

Bitrate — množství dat za sekundu videa. Pro 1080p je optimální bitrate 3–8 Mb/s pro H.264, 2–5 Mb/s pro H.265. Výběr závisí na obsahu: dynamické scény (sport) vyžadují vyšší bitrate, statické scény (rozhovory) nižší.

Čím se liší VP9 od AV1?

VP9 — předchůdce AV1 od Googlu, poskytující kompresi na úrovni H.265. AV1 komprimuje 20–30% účinněji než VP9, ale vyžaduje 5–10krát více zdrojů pro kódování. VP9 je lepší pro YouTube, AV1 — pro Netflix a moderní streamovací služby.

Jak nastavit kódování pro živé přenosy?

Pro živé přenosy použijte H.264 Baseline Profile s GOP 1–2 sekundy, bez B snímků, bitrate 2–4 Mb/s pro 1080p. Aktivujte fragmentované MP4 (CMAF) pro LL-HLS a použijte hardwarové kódování přes MediaCodec nebo VideoToolbox.

Shrnutí

  • Kódování — fundamentální technologie, bez které je přenos videa po internetu nemožný kvůli obrovskému objemu nekomprimovaných dat.
  • H.264 zůstává standardem kompatibility a je doporučen pro univerzální tok v mobilních aplikacích.
  • H.265 a AV1 poskytují 40–60% lepší kompresi, ale vyžadují hardwarovou podporu pro efektivní dekódování.
  • Bitrate a CRF — klíčové parametry: pro 1080p H.264 použijte 3–8 Mb/s, pro 4K H.265 — 10–25 Mb/s.
  • AAC — standardní audio kodek, Opus je preferován pro živé přenosy díky minimální latenci.
  • ABR sada pro streamování zahrnuje 4–6 variant od 144p do 1080p s různým bitrate.
  • Hardwarové kódování je povinné pro reálný čas na mobilních zařízeních.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také