Video kodlaşdırma (encoding) — rəqəmsal video siqnalının minimal keyfiyyət itkisi ilə saxlama və şəbəkə üzərindən ötürmə üçün yararlı formata sıxışdırılması prosesidir. Kodlaşdırma olmadan 4K qətnaməsində bir dəqiqəlik sıxılmamış video təxminən 30 GB yer tutur ki, bu da internet üzərindən ötürməni qeyri-mümkün edir. Sandvine Global Internet Phenomena (2025) hesabatına görə, video internet trafikinin 65%-ni təşkil edir və kodlaşdırma bunu mümkün edən əsas texnologiyadır.
Əsas məqamlar
Video kodlaşdırma (encoding) — sıxılmamış video siqnalının sıxışdırma alqoritmlərindən istifadə edərək rəqəmsal formata çevrilməsi prosesidir. Video kodeklərdə tətbiq olunan alqoritmlər hər iki sahədə — məkan sahəsində (bir kadr daxilində) və zaman sahəsində (ardıcıl kadrlar arasında) artıq məlumatı silir.
Sıxılmamış video, hər biri RGB və ya YUV formatında piksel massivi kimi saxlanılan kadrlar ardıcıllığıdır. Sıxılma olmadan 30 FPS-də bir saniyəlik 1080p video təxminən 1,5 GB yaddaş tələb edir. H.264 kodeki bu axını 3–5 Mbit/s-ə qədər sıxışdırır ki, bu da ilkin həcmdən 2500 dəfə azdır.
Video kodeklər iki növ sıxışdırmadan istifadə edir: kadrdaxili (intra-frame) və kadrarası (inter-frame). Intra-frame sıxışdırma hər bir kadra müstəqil şəkildə tətbiq olunur və JPEG-ə bənzər alqoritmlərdən istifadə edir: diskret kosinus çevrilməsi (DCT), kvantlaşdırma və entropiya kodlaşdırması.
Inter-frame sıxışdırma ardıcıl kadrlar arasındakı fərqi təhlil edir və yalnız dəyişiklikləri kodlaşdırır. Fon statikdirsə, kodek tam kadrı yalnız bir dəfə ötürür (I-frame), sonra isə yalnız fərqi (P- və B-kadrlar), bu da aşağı dinamikli səhnələr üçün məlumat həcmini əhəmiyyətli dərəcədə azaldır.
Video kodek seçimi keyfiyyət və fayl ölçüsü nisbətini, cihazlarla uyğunluğu və lisenziya ödənişlərini müəyyən edir. Mobil tətbiq bazarında dörd əsas kodek üstünlük təşkil edir: H.264 (AVC), H.265 (HEVC), VP9 və AV1.
| Kodek | Standart | İl | H.264-ə qarşı kompressiya | Lisenziyalaşdırma |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1x (əsas) | Royalti (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | 40–50% daha səmərəli | Royalti (iki hovuz) |
| VP9 | 2013 | 30–40% daha səmərəli | Pulsuz | |
| AV1 | AOM | 2018 | 50–60% daha səmərəli | Pulsuz (Royalty-free) |
H.264 (AVC — Advanced Video Coding) ən uyğun video kodek olaraq qalır: 2005-ci ildən bütün mobil cihazlar, brauzerlər və Smart TV tərəfindən dəstəklənir. H.264-ün aparat sürətləndirilməsi hətta büdcə cihazlarında belə mövcuddur ki, bu da onu universal axın üçün ideal edir.
H.264-ün əsas çatışmazlığı — nisbətən aşağı sıxışdırma səmərəliliyi müasir kodeklərlə müqayisədə. Eyni bitrate-də H.265 və AV1 nəzərəçarpacaq dərəcədə daha yüksək keyfiyyət təmin edir ki, bu da xüsusilə HDR və 4K məzmunu üçün vacibdir.
H.265 (HEVC — High Efficiency Video Coding) eyni vizual keyfiyyətdə H.264-dən 40–50% daha yaxşı kompressiya təmin edir. Buna kadrın daha çevik bloklara bölünməsi (16×16 əvəzinə 64×64 pikselə qədər CTU) və təkmilləşdirilmiş hərəkət proqnozlaşdırma alqoritmləri sayəsində nail olunur.
HEVC bütün Apple cihazlarında (iPhone 6-dan başlayaraq), Android-də (aparat dekodlaşdırması ilə 5.0 versiyasından) və əksər Smart TV-lərdə dəstəklənir. Lisenziya ödənişləri HEVC üçün H.264-dən yüksəkdir və iki patent hovuzu tərəfindən idarə olunur ki, bu da hüquqi istifadəni çətinləşdirir.
AV1 — Alliance for Open Media (AOM) tərəfindən hazırlanmış video kodek, Google, Netflix, Amazon, Intel və Mozilla rəhbərliyindəki konsorsium. AV1 H.264-dən 50–60% daha yaxşı kompressiya təmin edir və royaltidən tamamilə azaddır ki, bu da onu streaming xidmətləri üçün cəlbedici edir.
AV1-in əsas çatışmazlığı — yüksək hesablama mürəkkəbliyi kodlaşdırmanın. AV1 kodlaşdırması eyni avadanlıqda H.264-dən 5–10 dəfə yavaş ola bilər, baxmayaraq ki, aparat dekodlaşdırması artıq 2024–2025-ci il cihazlarında (Snapdragon 8 Gen 3, Apple A17 Pro) görünür.
Audio kodeklər mobil tətbiqlərdə video kodeklərdən az əhəmiyyətli deyil. Video streaming üçün minimal gecikmə, yüksək keyfiyyət və MP4 və WebM konteynerləri ilə uyğunluq tələb olunur. Üç əsas audio kodek mobil streaming tətbiqlərinin 99%-ni əhatə edir.
AAC (Advanced Audio Coding) — MP3-ün varisi, 1997-ci ildə MPEG tərəfindən hazırlanmış və iTunes, YouTube və Android üçün standart audio kodek olmuşdur. AAC MP3 ilə eyni keyfiyyəti 30% aşağı bitrate-də təmin edir və 7.1-ə qədər çoxkanallı səsi dəstəkləyir.
Mobil tətbiqlər üçün stereo üçün 128–192 kbit/s bitrate-də AAC-LC və aşağı bitrate-lər 32–64 kbit/s üçün AAC-HE tövsiyə olunur. AAC-in aparat dekodlaşdırması bütün müasir cihazlarda mövcuddur ki, bu da enerji sərfiyyatını minimuma endirir.
Opus — IETF (RFC 6716) tərəfindən açıq audio kodek, 6-dan 510 kbit/s-ə qədər bitrate-lərdə bütün audio kodeklər arasında ən yaxşı keyfiyyəti təmin edir. Opus SILK (nitq üçün alqoritm) və CELT (musiqi üçün) birləşdirir və məzmundan asılı olaraq rejimləri avtomatik dəyişir.
Opus WebRTC-də video zənglər üçün, Spotify və Discord tətbiqlərində istifadə olunur və iOS 11 və Android 5.0-dan başlayaraq HLS-də dəstəklənir. Opus-un aşağı gecikməsi (5–26 ms AAC-də 40–100 ms-ə qarşı) onu canlı yayımlar və video konfranslar üçün üstünlük təşkil edir.
Kodlaşdırma parametrləri son fayl ölçüsünü, video keyfiyyətini və cihazlarla uyğunluğu müəyyən edir. Mobil tətbiq tərtibatçısı hər bir məzmun növü üçün optimal parametrləri seçməlidir: filmlər, idman yayımları, istifadəçi məzmunu.
Bitrate — bir saniyəlik videonu kodlaşdırmaq üçün istifadə olunan bitlərin sayı. CBR (Constant Bitrate) — canlı yayımlar üçün sabit bitrate, VBR (Variable Bitrate) — arxiv saxlama üçün hədəf keyfiyyətlə dəyişən və ABR (Average Bitrate) — streaming üçün orta bitrate fərqləndirilir.
| Qətnamə | H.264 (tövsiyə olunan) | 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 və x265-də sabit bitrate əvəzinə hədəf keyfiyyəti təyin edən kodlaşdırma parametridir. CRF şkalası 0 (lossless) ilə 51 (ən pis keyfiyyət) arasındadır, 18–28 işçi diapazondur. Mobil tətbiqlər üçün x264 üçün CRF 23 və x265 üçün CRF 25 tövsiyə olunur.
CRF 18–20 yüksək keyfiyyət təqdimat məzmunu və oflayn baxış üçün təmin edir. CRF 24–28 fayl ölçüsünün mütləq keyfiyyətdən daha vacib olduğu streaming və istifadəçi məzmunu üçün uyğundur.
H.264 standartı profilləri (Baseline, Main, High) və səviyyələri (Level 1–5.2) müəyyən edir ki, bunlar maksimum video parametrlərini məhdudlaşdırır. Baseline Profile bütün cihazlarla uyğundur, lakin B-kadrları dəstəkləmir. High Profile maksimum keyfiyyəti təmin edir və 1080p məzmunu üçün istifadə olunur.
4K streaming üçün Level 5.1 və daha yüksək tələb olunur ki, bu da 2018-ci ildən əksər mobil cihazlar tərəfindən dəstəklənir. Kodek səviyyəsi maksimum qətnamə, bitrate və bufer ölçüsünü müəyyən edir, bütün sertifikatlaşdırılmış cihazlarda düzgün dekodlaşdırmanı təmin edir.
Streaming üçün kodlaşdırma arxiv kodlaşdırmasından bir neçə keyfiyyət variantının (ABR ladder) yaradılması və şəbəkə ötürülməsi üçün optimallaşdırma zərurəti ilə fərqlənir. Məzmun provayderləri real vaxtda transkodlaşdırma və ya VOD üçün ilkin kodlaşdırmadan istifadə edir.
Mobil tətbiqlər üçün tipik ABR dəsti 4–6 variantı əhatə edir: zəif şəbəkələr üçün 144p (200 kbit/s) Wi-Fi üçün 1080p (8 Mbit/s)-ə qədər. Tövsiyə olunan qətnamələr: 144p, 240p, 360p, 480p, 720p, 1080p. 4K məzmunu üçün 1440p və 2160p əlavə olunur.
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)
Canlı yayımlar üçün xüsusilə aşağı gecikmə vacibdir. Kodlaşdırma parametrləri kodekin giriş/çıxış gecikməsini minimuma endirməlidir: GOP ölçüsü 1–2 saniyə (hər 30–60 kadr), B-kadrlar söndürülmüş və ya minimuma endirilmiş, H.264 üçün Baseline Profile istifadə olunur.
Aşağı gecikmə üçün müasir protokollar — LL-HLS və CMAF-Low Latency — 1–2 saniyə seqmentləri və qismən yükləmə imkanı (Partial Segments) ilə fraqmentləşdirilmiş kodlaşdırma tələb edir. Kodek fraqmentləşdirilmiş MP4 üçün hər seqmentdə moof-box-ı dəstəkləməlidir.
Tez-tez verilən suallar
Video kodlaşdırma — məlumat həcmini azaltmaq üçün kodeklərdən istifadə edərək rəqəmsal video siqnalının sıxışdırılması prosesidir. Mobil tətbiqlərdə kodlaşdırma cihazın ekranında nəzərəçarpacaq keyfiyyət itkisi olmadan videonun yüzlərlə dəfə kiçildilməsinə imkan verir.
H.264 köhnə cihazlarla maksimum uyğunluğu təmin edir, H.265 isə eyni keyfiyyətdə 40–50% daha səmərəlidir. 1080p və aşağı məzmun üçün H.264 kifayətdir, 4K üçün cihaz dəstəkləyirsə H.265 və ya AV1 tövsiyə olunur.
Bitrate — saniyədə video üçün məlumat miqdarı. 1080p üçün optimal bitrate H.264 üçün 3–8 Mbit/s, H.265 üçün 2–5 Mbit/s-dir. Seçim məzmundan asılıdır: dinamik səhnələr (idman) daha yüksək bitrate tələb edir, statik səhnələr (müsahibələr) — daha aşağı.
VP9 — Google-dan AV1-in sələfi, H.265 səviyyəsində kompressiya təmin edir. AV1 VP9-dan 20–30% daha səmərəli sıxışdırır, lakin kodlaşdırma üçün 5–10 dəfə çox resurs tələb edir. VP9 YouTube üçün daha yaxşıdır, AV1 — Netflix və müasir streaming xidmətləri üçün.
Canlı yayımlar üçün H.264 Baseline Profile GOP 1–2 saniyə, B-kadrsız, 1080p üçün bitrate 2–4 Mbit/s istifadə edin. LL-HLS üçün fraqmentləşdirilmiş MP4 (CMAF) aktivləşdirin və MediaCodec və ya VideoToolbox vasitəsilə aparat kodlaşdırmasından istifadə edin.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun