A videókódolás (encoding) a digitális videojel tömörítésének folyamata olyan formátumba, amely alkalmas tárolásra és hálózaton keresztüli továbbításra minimális minőségveszteséggel. Kódolás nélkül egy perc tömörítetlen videó 4K felbontásban körülbelül 30 GB-ot foglal, ami lehetetlenné teszi az interneten keresztüli továbbítást. A Sandvine Global Internet Phenomena (2025) jelentése szerint a videó az internetes forgalom 65%-át teszi ki, és a kódolás az a kulcstechnológia, amely ezt lehetővé teszi.
Összefoglaló
Videókódolás (encoding) a tömörítetlen videojel digitális formátumba való átalakításának folyamata tömörítési algoritmusok segítségével. A videókodekekben implementált algoritmusok eltávolítják a redundáns információkat mind a térbeli tartományban (egy kereten belül), mind az időbeli tartományban (egymást követő keretek között).
A tömörítetlen videó keretek sorozata, amelyek mindegyike pixeltömbbként van tárolva RGB vagy YUV formátumban. Tömörítés nélkül egy másodperc 1080p videó 30 FPS mellett körülbelül 1,5 GB memóriát igényel. A H.264 kodek ezt a folyamot 3–5 Mb/s-ra tömöríti, ami 2500-szor kevesebb, mint az eredeti mennyiség.
A videókodekek kétféle tömörítést használnak: kereten belüli (intra-frame) és keretek közötti (inter-frame). Az intra-frame tömörítés minden keretre függetlenül alkalmazandó, a JPEG-hez hasonló algoritmusokat használva: diszkrét koszinusz transzformáció (DCT), kvantálás és entrópia kódolás.
Az inter-frame tömörítés az egymást követő keretek közötti különbséget elemzi, és csak a változásokat kódolja. Ha a háttér statikus, a kodek csak egyszer küldi el a teljes keretet (I-frame), majd csak a különbséget (P és B keretek), ami jelentősen csökkenti az adatmennyiséget az alacsony dinamikájú jeleneteknél.
A videókodek kiválasztása meghatározza a minőség-méret arányt, az eszközökkel való kompatibilitást és a licencdíjakat. A mobilalkalmazások piacán négy fő kodek dominál: H.264 (AVC), H.265 (HEVC), VP9 és AV1.
| Kodek | Szabvány | Év | Tömörítés vs H.264 | Licencelés |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1x (alap) | Jogdíjas (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | 40–50% hatékonyabb | Jogdíjas (két pool) |
| VP9 | 2013 | 30–40% hatékonyabb | Ingyenes | |
| AV1 | AOM | 2018 | 50–60% hatékonyabb | Ingyenes (Royalty-free) |
H.264 (AVC — Advanced Video Coding) a legkompatibilisebb videókodek marad: 2005 óta minden mobileszköz, böngésző és Smart TV támogatja. A H.264 dekódolás hardveres gyorsítása még az olcsó eszközökön is elérhető, ami ideálissá teszi univerzális folyamokhoz.
A H.264 fő hátránya — a viszonylag alacsony tömörítési hatékonyság a modern kodekekhez képest. Ugyanazon bitráta mellett a H.265 és AV1 észrevehetően magasabb minőséget biztosít, ami különösen fontos HDR és 4K tartalom esetén.
H.265 (HEVC — High Efficiency Video Coding) 40–50%-kal jobb tömörítést biztosít, mint a H.264, azonos vizuális minőség mellett. Ezt a keret rugalmasabb blokkokra bontásával (CTU akár 64×64 pixel a 16×16 helyett) és továbbfejlesztett mozgáselőrejelzési algoritmusokkal érik el.
A HEVC-t minden Apple eszköz támogatja (iPhone 6-tól kezdve), Androidon (5.0 verziótól hardveres dekódolással) és a legtöbb Smart TV-n. A HEVC licencdíjai magasabbak, mint a H.264-é, és két szabadalmi pool kezeli őket, ami megnehezíti a jogi felhasználást.
AV1 — az Alliance for Open Media (AOM) által fejlesztett videókodek, a Google, Netflix, Amazon, Intel és Mozilla vezette konzorcium. Az AV1 50–60%-kal jobb tömörítést biztosít, mint a H.264, és teljesen jogdíjmentes, ami vonzóvá teszi a streaming szolgáltatások számára.
Az AV1 fő hátránya — a kódolás magas számítási komplexitása. Az AV1 kódolás 5–10-szer lassabb lehet, mint a H.264 ugyanazon a hardveren, bár a hardveres dekódolás már megjelenik a 2024–2025-ös eszközökön (Snapdragon 8 Gen 3, Apple A17 Pro).
Az audiokodekek a mobilalkalmazásokban nem kevésbé fontosak, mint a videókodekek. A videostreameléshez minimális késleltetésű, magas minőségű és MP4 valamint WebM konténerekkel kompatibilis hang szükséges. Három fő audiokodek fedi le a mobil streamelő alkalmazások 99%-át.
AAC (Advanced Audio Coding) — az MP3 utódja, amelyet az MPEG fejlesztett ki 1997-ben, és az iTunes, YouTube és Android szabványos audiokodekjévé vált. Az AAC ugyanolyan minőséget biztosít, mint az MP3, 30%-kal alacsonyabb bitrátán, és támogatja a többcsatornás hangot 7.1-ig.
Mobilalkalmazásokhoz az AAC-LC ajánlott 128–192 kb/s bitrátán sztereóhoz és AAC-HE alacsony, 32–64 kb/s bitrátákhoz. Az AAC hardveres dekódolása minden modern eszközön elérhető, ami minimalizálja az energiafogyasztást.
Opus — nyílt audiokodek az IETF-től (RFC 6716), amely a legjobb minőséget nyújtja az összes audiokodek közül 6 és 510 kb/s közötti bitrátákon. Az Opus egyesíti a SILK (beszédalgoritmus) és a CELT (zenei) algoritmusokat, és automatikusan vált a módok között a tartalomtól függően.
Az Opust a WebRTC használja videohívásokhoz, a Spotify és Discord alkalmazásokban, és támogatott a HLS-ben iOS 11 és Android 5.0 óta. Az Opus alacsony késleltetése (5–26 ms szemben a AAC 40–100 ms-ával) preferált választássá teszi élő közvetítésekhez és videokonferenciákhoz.
A kódolási paraméterek határozzák meg a végső fájlméretet, a videó minőségét és az eszközökkel való kompatibilitást. A mobilalkalmazás-fejlesztőnek optimális beállításokat kell választania minden tartalomtípushoz: filmek, sportközvetítések, felhasználói tartalom.
Bitráta — a videó egy másodpercének kódolásához használt bitek száma. Megkülönböztetünk CBR-t (Constant Bitrate) — állandó bitráta élő közvetítésekhez, VBR-t (Variable Bitrate) — változó célminőséggel archiváláshoz és ABR-t (Average Bitrate) — átlagosat streameléshez.
| Felbontás | H.264 (ajánlott) | H.265/HEVC | AV1 |
|---|---|---|---|
| 360p | 400–800 kb/s | 250–500 kb/s | 200–400 kb/s |
| 720p | 1,5–4 Mb/s | 1–2,5 Mb/s | 0,8–2 Mb/s |
| 1080p | 3–8 Mb/s | 2–5 Mb/s | 1,5–4 Mb/s |
| 4K (2160p) | 15–40 Mb/s | 10–25 Mb/s | 8–20 Mb/s |
CRF (Constant Rate Factor) — kódolási paraméter az x264-ben és x265-ben, amely a célminőséget állítja be a rögzített bitráta helyett. A CRF skála 0-tól (veszteségmentes) 51-ig (legrosszabb minőség) terjed, ahol 18–28 a munkatartomány. Mobilalkalmazásokhoz CRF 23 ajánlott x264-hez és CRF 25 x265-höz.
A CRF 18–20 magas minőséget biztosít prezentációs tartalomhoz és offline nézéshez. A CRF 24–28 alkalmas streameléshez és felhasználói tartalomhoz, ahol a fájlméret fontosabb, mint az abszolút minőség.
A H.264 szabvány profilokat (Baseline, Main, High) és szinteket (Level 1–5.2) határoz meg, amelyek korlátozzák a maximális videó paramétereket. A Baseline Profile minden eszközzel kompatibilis, de nem támogatja a B kereteket. A High Profile maximális minőséget biztosít, és 1080p tartalomhoz használják.
4K streameléshez Level 5.1 és magasabb szükséges, amelyet a legtöbb mobileszköz támogat 2018 óta. A kodek szintje határozza meg a maximális felbontást, bitrátát és pufferméretet, garantálva a helyes dekódolást minden tanúsított eszközön.
A streameléshez való kódolás abban különbözik az archiváló kódolástól, hogy több minőségi változatot (ABR ladder) kell létrehozni, és optimalizálni kell a hálózati átvitelre. A tartalomszolgáltatók valós idejű transzkódolást vagy előzetes kódolást használnak VOD-hoz.
Egy tipikus ABR készlet mobilalkalmazásokhoz 4–6 változatot tartalmaz: 144p-től (200 kb/s) gyenge hálózatokhoz 1080p-ig (8 Mb/s) Wi-Fi-hez. Ajánlott felbontások: 144p, 240p, 360p, 480p, 720p, 1080p. 4K tartalomhoz 1440p és 2160p kerül hozzáadásra.
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)
Élő közvetítésekhez különösen fontos az alacsony késleltetés. A kódolási beállításoknak minimalizálniuk kell a kodek bemeneti/kimeneti késleltetését: ajánlott GOP méret 1–2 másodperc (30–60 keretenként), B keretek kikapcsolva vagy minimalizálva, H.264-hez Baseline Profile használandó.
Az alacsony késleltetésű modern protokollok — LL-HLS és CMAF-Low Latency — 1–2 másodperces szegmensekkel történő fragmentált kódolást és részleges betöltés (Partial Segments) lehetőségét igénylik. A kodeknek támogatnia kell a moof-box-ot minden szegmensben a fragmentált MP4-hez.
Gyakran Ismételt Kérdések
Videókódolás — a digitális videojel tömörítésének folyamata kodekek segítségével az adatmennyiség csökkentése érdekében. Mobilalkalmazásokban a kódolás lehetővé teszi a videó továbbítását és tárolását, a méretet több százszorosára csökkentve anélkül, hogy észrevehető minőségromlás lenne az eszköz képernyőjén.
A H.264 maximális kompatibilitást biztosít a régi eszközökkel, míg a H.265 40–50%-kal hatékonyabb azonos minőség mellett. 1080p és alacsonyabb tartalomhoz elegendő a H.264, 4K-hoz H.265 vagy AV1 ajánlott, ha az eszköz támogatja.
Bitráta — a másodpercenkénti videó adatmennyisége. 1080p-hez az optimális bitráta 3–8 Mb/s H.264-hez, 2–5 Mb/s H.265-höz. A választás a tartalomtól függ: a dinamikus jelenetek (sport) magasabb bitrátát igényelnek, a statikus jelenetek (interjúk) alacsonyabbat.
VP9 — az AV1 elődje a Google-tól, H.265 szintű tömörítést biztosít. Az AV1 20–30%-kal hatékonyabban tömörít, mint a VP9, de 5–10-szer több erőforrást igényel a kódoláshoz. A VP9 jobb a YouTube-hoz, az AV1 a Netflixhez és modern streaming szolgáltatásokhoz.
Élő közvetítésekhez használj H.264 Baseline Profile-t GOP 1–2 másodperccel, B keretek nélkül, 2–4 Mb/s bitrátával 1080p-hez. Kapcsold be a fragmentált MP4-et (CMAF) az LL-HLS-hez, és használj hardveres kódolást MediaCodec-en vagy VideoToolbox-on keresztül.
Összegzés
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is