Video kodlash (encoding) — bu raqamli video signalni minimal sifat yo'qotishlari bilan saqlash va tarmoq orqali uzatish uchun mos formatga siqish jarayonidir. Kodlashsiz 4K rezolutsiyasidagi bir daqiqa siqilmagan video taxminan 30 GB egallaydi, bu esa internet orqali uzatishni imkonsiz qiladi. Sandvine Global Internet Phenomena (2025) hisobotiga ko'ra, video internet trafigining 65% ni tashkil qiladi va kodlash buni mumkin qiladigan asosiy texnologiyadir.
Asosiy ma'lumotlar
Video kodlash (encoding) — siqilmagan video signalni siqish algoritmlaridan foydalanib raqamli formatga o'tkazish jarayonidir. Video kodeklarda amalga oshirilgan algoritmlar ortiqcha ma'lumotni fazoviy sohada (bir kadr ichida) va vaqtinchalik sohada (ketma-ket kadrlar o'rtasida) olib tashlaydi.
Siqilmagan video — har biri RGB yoki YUV formatidagi piksellar massivi sifatida saqlanadigan kadrlar ketma-ketligidir. Siqilmasdan 30 FPS da bir soniyalik 1080p video taxminan 1,5 GB xotira talab qiladi. H.264 kodeki bu oqimni 3–5 Mbit/s gacha siqadi, bu boshlang'ich hajmdan 2500 marta kam.
Video kodeklar ikki turdagi siqishdan foydalanadi: kadr ichidagi (intra-frame) va kadrlararo (inter-frame). Intra-frame siqish har bir kadrga mustaqil ravishda qo'llaniladi va JPEG ga o'xshash algoritmlardan foydalanadi: diskret kosinus konvertatsiyasi (DCT), kvantlash va entropiya kodlash.
Inter-frame siqish ketma-ket kadrlar o'rtasidagi farqni tahlil qiladi va faqat o'zgarishlarni kodlaydi. Agar fon statik bo'lsa, kodek to'liq kadrni faqat bir marta uzatadi (I-frame), keyin esa faqat farqni (P va B kadrlar), bu past dinamikali sahnalar uchun ma'lumot hajmini sezilarli darajada kamaytiradi.
Video kodekni tanlash sifat va fayl hajmi nisbatini, qurilmalar bilan muvofiqlikni va litsenziya to'lovlarini aniqlaydi. Mobil ilovalar bozorida to'rtta asosiy kodek ustunlik qiladi: H.264 (AVC), H.265 (HEVC), VP9 va AV1.
| Kodek | Standart | Yil | H.264ga nisbatan siqish | Litsenziyalash |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1x (asosiy) | Royalti (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | 40–50% samaraliroq | Royalti (ikki hovuz) |
| VP9 | 2013 | 30–40% samaraliroq | Bepul | |
| AV1 | AOM | 2018 | 50–60% samaraliroq | Bepul (Royalty-free) |
H.264 (AVC — Advanced Video Coding) eng mos keladigan video kodek bo'lib qolmoqda: 2005 yildan boshlab barcha mobil qurilmalar, brauzerlar va Smart TV tomonidan qo'llab-quvvatlanadi. H.264 ni apparat tezlashtirish hatto byudjet qurilmalarida ham mavjud, bu uni universal oqim uchun ideal qiladi.
H.264 ning asosiy kamchiligi — nisbatan past siqish samaradorligi zamonaviy kodeklar bilan solishtirganda. Bir xil bitrate da H.265 va AV1 sezilarli darajada yuqori sifatni ta'minlaydi, bu ayniqsa HDR va 4K kontenti uchun muhimdir.
H.265 (HEVC — High Efficiency Video Coding) bir xil vizual sifatda H.264 dan 40–50% yaxshiroq kompressiyani ta'minlaydi. Bunga kadrni bloklarga moslashuvchan bo'lish (16×16 o'rniga 64×64 pikselgacha CTU) va yaxshilangan harakatni bashorat qilish algoritmlari orqali erishiladi.
HEVC barcha Apple qurilmalarida (iPhone 6 dan boshlab), Android da (apparat dekodlash bilan 5.0 versiyasidan) va aksariyat Smart TV larda qo'llab-quvvatlanadi. Litsenziya to'lovlari HEVC uchun H.264 dan yuqori va ikki patent hovuzi tomonidan boshqariladi, bu huquqiy foydalanishni murakkablashtiradi.
AV1 — Alliance for Open Media (AOM) tomonidan ishlab chiqilgan video kodek, Google, Netflix, Amazon, Intel va Mozilla boshchiligidagi konsorsium. AV1 H.264 dan 50–60% yaxshiroq kompressiyani ta'minlaydi va royaltidan butunlay ozod, bu uni striming xizmatlari uchun jozibador qiladi.
AV1 ning asosiy kamchiligi — yuqori hisoblash murakkabligi kodlashning. AV1 kodlashi bir xil uskunada H.264 dan 5–10 marta sekinroq bo'lishi mumkin, garchi apparat dekodlash 2024–2025 yil qurilmalarida (Snapdragon 8 Gen 3, Apple A17 Pro) paydo bo'lmoqda.
Audio kodeklar mobil ilovalarda video kodeklardan kam ahamiyatli emas. Video striming uchun minimal kechikish, yuqori sifat va MP4 hamda WebM konteynerlari bilan muvofiqlik talab qilinadi. Uchta asosiy audio kodek mobil striming ilovalarining 99% ini qamrab oladi.
AAC (Advanced Audio Coding) — MP3 ning vorisi, 1997 yilda MPEG tomonidan ishlab chiqilgan va iTunes, YouTube va Android uchun standart audio kodekka aylangan. AAC MP3 bilan bir xil sifatni 30% past bitrate da ta'minlaydi va 7.1 gacha ko'p kanalli ovozni qo'llab-quvvatlaydi.
Mobil ilovalar uchun stereo uchun 128–192 kbit/s bitrate da AAC-LC va past bitratelar 32–64 kbit/s uchun AAC-HE tavsiya etiladi. AAC ni apparat dekodlashi barcha zamonaviy qurilmalarda mavjud, bu energiya sarfini minimallashtiradi.
Opus — IETF (RFC 6716) tomonidan ochiq audio kodek, 6 dan 510 kbit/s gacha bitratelarda barcha audio kodeklar orasida eng yaxshi sifatni ta'minlaydi. Opus SILK (nutq uchun algoritm) va CELT (musiqa uchun) ni birlashtiradi va kontentga qarab rejimlarni avtomatik o'zgartiradi.
Opus WebRTC da video qo'ng'iroqlar uchun, Spotify va Discord ilovalarida ishlatiladi va iOS 11 va Android 5.0 dan boshlab HLS da qo'llab-quvvatlanadi. Opus ning past kechikishi (AAC da 40–100 ms ga nisbatan 5–26 ms) uni jonli efirlar va video konferensiyalar uchun afzal tanlovga aylantiradi.
Kodlash parametrlari yakuniy fayl hajmini, video sifatini va qurilmalar bilan muvofiqlikni aniqlaydi. Mobil ilova ishlab chiqaruvchisi har bir kontent turi uchun optimal sozlamalarni tanlashi kerak: filmlar, sport translyatsiyalari, foydalanuvchi kontenti.
Bitrate — bir soniya videoni kodlash uchun ishlatiladigan bitlar soni. CBR (Constant Bitrate) — jonli efirlar uchun doimiy bitrate, VBR (Variable Bitrate) — arxiv saqlash uchun maqsadli sifat bilan o'zgaruvchan va ABR (Average Bitrate) — striming uchun o'rtacha bitrate farqlanadi.
| Rezolutsiya | H.264 (tavsiya etiladi) | H.265/HEVC | AV1 |
|---|---|---|---|
| 360p | 400–800 kbit/s | 250–500 kbit/s | 200–400 kbit/s |
| 720p | 1,5–4 Mbit/s | 1–2,5 Mbit/s | 0,8–2 Mbit/s |
| 1080p | 3–8 Mbit/s | 2–5 Mbit/s | 1,5–4 Mbit/s |
| 4K (2160p) | 15–40 Mbit/s | 10–25 Mbit/s | 8–20 Mbit/s |
CRF (Constant Rate Factor) — x264 va x265 da sobit bitrate o'rniga maqsadli sifatni belgilaydigan kodlash parametri. CRF shkalasi 0 (lossless) dan 51 (eng yomon sifat) gacha, 18–28 ishchi diapazon. Mobil ilovalar uchun x264 uchun CRF 23 va x265 uchun CRF 25 tavsiya etiladi.
CRF 18–20 yuqori sifatni taqdimot kontenti va oflayn tomosha uchun ta'minlaydi. CRF 24–28 fayl hajmi mutlaq sifatdan muhimroq bo'lgan striming va foydalanuvchi kontenti uchun mos keladi.
H.264 standarti profillarni (Baseline, Main, High) va darajalarni (Level 1–5.2) belgilaydi, ular maksimal video parametrlarini cheklaydi. Baseline Profile barcha qurilmalar bilan mos, lekin B kadrlarni qo'llab-quvvatlamaydi. High Profile maksimal sifatni ta'minlaydi va 1080p kontenti uchun ishlatiladi.
4K striming uchun Level 5.1 va undan yuqori talab qilinadi, bu 2018 yildan boshlab aksariyat mobil qurilmalar tomonidan qo'llab-quvvatlanadi. Kodek darajasi maksimal rezolutsiya, bitrate va bufer hajmini aniqlaydi, barcha sertifikatlangan qurilmalarda to'g'ri dekodlashni kafolatlaydi.
Striming uchun kodlash arxiv kodlashdan bir necha sifat variantlarini (ABR ladder) yaratish va tarmoq uzatish uchun optimallashtirish zarurati bilan farqlanadi. Kontent provayderlari real vaqtda transkodlash yoki VOD uchun dastlabki kodlashdan foydalanadi.
Mobil ilovalar uchun odatiy ABR to'plami 4–6 variantni o'z ichiga oladi: zaif tarmoqlar uchun 144p (200 kbit/s) dan Wi-Fi uchun 1080p (8 Mbit/s) gacha. Tavsiya etilgan rezolutsiyalar: 144p, 240p, 360p, 480p, 720p, 1080p. 4K kontenti uchun 1440p va 2160p qo'shiladi.
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)
Jonli efirlar uchun ayniqsa past kechikish muhim. Kodlash sozlamalari kodekning kirish/chiqish kechikishini minimallashtirishi kerak: GOP hajmi 1–2 soniya (har 30–60 kadr), B kadrlar o'chirilgan yoki minimallashtirilgan, H.264 uchun Baseline Profile ishlatiladi.
Past kechikish uchun zamonaviy protokollar — LL-HLS va CMAF-Low Latency — 1–2 soniya segmentlar bilan fragmentlangan kodlash va qisman yuklash imkoniyatini (Partial Segments) talab qiladi. Kodek fragmentlangan MP4 uchun har bir segmentda moof-box ni qo'llab-quvvatlashi kerak.
Ko'p beriladigan savollar
Video kodlash — ma'lumot hajmini kamaytirish uchun kodeklardan foydalanib raqamli video signalni siqish jarayoni. Mobil ilovalarda kodlash video hajmini yuzlab marta kamaytirib, qurilma ekranida sezilarli sifat yo'qotmasdan uzatish va saqlash imkonini beradi.
H.264 eski qurilmalar bilan maksimal muvofiqlikni ta'minlaydi, H.265 esa bir xil sifatda 40–50% samaraliroq. 1080p va past kontent uchun H.264 yetarli, 4K uchun qurilma qo'llab-quvvatlasa H.265 yoki AV1 tavsiya etiladi.
Bitrate — soniyada video uchun ma'lumot miqdori. 1080p uchun optimal bitrate H.264 uchun 3–8 Mbit/s, H.265 uchun 2–5 Mbit/s. Tanlov kontentga bog'liq: dinamik sahnalar (sport) yuqori bitrate talab qiladi, statik sahnalar (intervyu) — pastroq.
VP9 — Google dan AV1 ning o'tmishdoshi, H.265 darajasida siqishni ta'minlaydi. AV1 VP9 dan 20–30% samaraliroq siqadi, lekin kodlash uchun 5–10 marta ko'proq resurs talab qiladi. VP9 YouTube uchun yaxshiroq, AV1 — Netflix va zamonaviy striming xizmatlari uchun.
Jonli efirlar uchun H.264 Baseline Profile GOP 1–2 soniya, B kadrlarsiz, 1080p uchun bitrate 2–4 Mbit/s dan foydalaning. LL-HLS uchun fragmentlangan MP4 (CMAF) ni yoqing va MediaCodec yoki VideoToolbox orqali apparat kodlashdan foydalaning.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.