Video kodlama, dijital video sinyalinin minimum kalite kaybıyla depolama ve ağ üzerinden iletim için uygun bir formata sıkıştırılması işlemidir. Kodlama olmadan, bir dakikalık sıkıştırılmamış 4K video yaklaşık 30 GB yer kaplar ve internet üzerinden iletim imkansız hale gelir. Sandvine Global Internet Phenomena (2025) raporuna göre, video tüm internet trafiğinin %65'ini oluşturmaktadır ve kodlama bunu mümkün kılan anahtar teknolojidir.
Anahtar Noktalar
Video kodlama, sıkıştırılmamış video sinyalinin sıkıştırma algoritmaları kullanılarak dijital formata dönüştürülmesi işlemidir. Video codec'lerinde uygulanan bu algoritmalar, hem uzamsal alanda (tek bir kare içinde) hem de zamansal alanda (ardışık kareler arasında) gereksiz bilgileri kaldırır.
Sıkıştırılmamış video, her biri RGB veya YUV formatında bir piksel dizisi olarak depolanan kareler dizisidir. Sıkıştırma olmadan, 30 FPS'de bir saniyelik 1080p video yaklaşık 1,5 GB bellek gerektirir. H.264 codec'i bu akışı 3–5 Mbps'ye sıkıştırarak orijinal boyutun 2500 kat daha küçük olmasını sağlar.
Video codec'leri iki tür sıkıştırma kullanır: kare içi (intra-frame) ve kareler arası (inter-frame). Kare içi sıkıştırma her kareye bağımsız olarak uygulanır ve JPEG'e benzer algoritmalar kullanır: ayrık kosinüs dönüşümü (DCT), niceleme ve entropi kodlaması.
Kareler arası sıkıştırma ardışık kareler arasındaki farkı analiz eder ve yalnızca değişiklikleri kodlar. Arka plan statikse, codec tam kareyi yalnızca bir kez (I-kare) iletir ve ardından yalnızca farkları (P- ve B-kareler) iletir; bu, düşük dinamikli sahneler için veri hacmini önemli ölçüde azaltır.
Video codec'i seçimi kalite-boyut oranını, cihaz uyumluluğunu ve lisans ücretlerini belirler. Dört ana codec, mobil uygulama pazarına hakimdir: H.264 (AVC), H.265 (HEVC), VP9 ve AV1.
| Codec | Standart | Yıl | H.264'e göre sıkıştırma | Lisanslama |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1x (temel) | Telif (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | %40–50 daha verimli | Telif (iki havuz) |
| VP9 | 2013 | %30–40 daha verimli | Ücretsiz | |
| AV1 | AOM | 2018 | %50–60 daha verimli | Telifsiz |
H.264 (AVC — Advanced Video Coding) en uyumlu video codec'i olmaya devam etmektedir: 2005'ten beri tüm mobil cihazlar, tarayıcılar ve Akıllı TV'ler tarafından desteklenmektedir. Donanım hızlandırmalı H.264 kod çözme, bütçe cihazlarda bile mevcuttur ve bu da onu evrensel bir akış için ideal kılar.
H.264'ün ana dezavantajı, modern codec'lere kıyasla nispeten düşük sıkıştırma verimliliğidir. Aynı bit hızında, H.265 ve AV1, özellikle HDR ve 4K içerik için önemli olan belirgin şekilde daha yüksek kalite sunar.
H.265 (HEVC — High Efficiency Video Coding), aynı görsel kalitede H.264'e göre %40–50 daha iyi sıkıştırma sağlar. Bu, karenin bloklara daha esnek bölünmesi (16×16 yerine 64×64 piksele kadar CTU) ve geliştirilmiş hareket tahmini algoritmaları ile elde edilir.
HEVC, tüm Apple cihazlarında (iPhone 6'dan itibaren), Android'de (donanım kod çözme ile 5.0 sürümünden itibaren) ve çoğu Akıllı TV'de desteklenir. HEVC lisans ücretleri H.264'ten daha yüksektir ve iki patent havuzu tarafından yönetilir, bu da yasal kullanımı karmaşık hale getirir.
AV1, Google, Netflix, Amazon, Intel ve Mozilla liderliğindeki bir konsorsiyum olan Alliance for Open Media (AOM) tarafından geliştirilen bir video codec'idir. AV1, H.264'ten %50–60 daha iyi sıkıştırma sağlar ve tamamen telifsizdir, bu da onu akış hizmetleri için çekici kılar.
AV1'in ana dezavantajı, kodlamanın yüksek hesaplama karmaşıklığıdır. AV1 kodlaması, aynı donanımda H.264'ten 5–10 kat daha yavaş olabilir, ancak donanım kod çözme, 2024–2025 cihazlarında (Snapdragon 8 Gen 3, Apple A17 Pro) zaten görünmeye başlamıştır.
Mobil uygulamalarda ses codec'leri video codec'lerinden daha az önemli değildir. Akış videosu, minimum gecikme, yüksek kalite ve MP4 ile WebM kaplarıyla uyumluluk gerektirir. Üç ana ses codec'i, mobil akış uygulamalarının %99'unu kapsar.
AAC (Advanced Audio Coding), MP3'ün halefidir, 1997'de MPEG tarafından geliştirilmiş ve iTunes, YouTube ve Android için standart ses codec'i haline gelmiştir. AAC, MP3'ten %30 daha düşük bit hızında aynı kaliteyi sağlar ve 7.1'e kadar çok kanallı sesi destekler.
Mobil uygulamalar için, stereo için 128–192 kbps'de AAC-LC ve düşük bit hızları (32–64 kbps) için AAC-HE önerilir. Donanım AAC kod çözme, tüm modern cihazlarda mevcuttur ve güç tüketimini en aza indirir.
Opus, IETF'den (RFC 6716) açık bir ses codec'idir ve 6 ila 510 kbps bit hızlarında tüm ses codec'leri arasında en iyi kaliteyi sağlar. Opus, SILK (konuşma için algoritma) ve CELT'yi (müzik için) birleştirir ve içeriğe bağlı olarak otomatik olarak mod değiştirir.
Opus, WebRTC'de görüntülü aramalar için, Spotify ve Discord uygulamalarında kullanılır ve iOS 11 ve Android 5.0'dan itibaren HLS'de desteklenir. Opus'un düşük gecikmesi (AAC'nin 40–100 ms'sine karşı 5–26 ms), onu canlı yayınlar ve görüntülü konferanslar için tercih edilen seçenek haline getirir.
Kodlama parametreleri nihai dosya boyutunu, video kalitesini ve cihaz uyumluluğunu belirler. Bir mobil uygulama geliştiricisi, her içerik türü için en uygun ayarları seçmelidir: filmler, spor yayınları, kullanıcı tarafından oluşturulan içerik.
Bit hızı, bir saniyelik videoyu kodlamak için kullanılan bit sayısıdır. Canlı yayınlar için SBR (sabit bit hızı), arşiv depolama için hedef kaliteli DBR (değişken bit hızı) ve akış için OBR (ortalama bit hızı) vardır.
| Çözünürlük | H.264 (önerilen) | 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), x264 ve x265'te sabit bit hızı yerine hedef kaliteyi belirleyen bir kodlama parametresidir. CRF ölçeği 0 (kayıpsız) ile 51 (en kötü kalite) arasında değişir ve 18–28 çalışma aralığıdır. Mobil uygulamalar için x264'te CRF 23 ve x265'te CRF 25 önerilir.
CRF 18–20, sunum içeriği ve çevrimdışı izleme için yüksek kalite sağlar. CRF 24–28, dosya boyutunun mutlak kaliteden daha önemli olduğu akış ve kullanıcı tarafından oluşturulan içerik için uygundur.
H.264 standardı, maksimum video parametrelerini sınırlayan profiller (Baseline, Main, High) ve seviyeler (Level 1–5.2) tanımlar. Baseline Profile tüm cihazlarla uyumludur ancak B-kareleri desteklemez. High Profile maksimum kalite sağlar ve 1080p içerik için kullanılır.
4K akışı için Level 5.1 ve üzeri gereklidir ve 2018'den itibaren çoğu mobil cihaz tarafından desteklenir. Codec seviyesi, maksimum çözünürlüğü, bit hızını ve tampon boyutunu belirleyerek sertifikalı tüm cihazlarda doğru kod çözmeyi garanti eder.
Akış için kodlama, birden çok kalite çeşidi (ABR merdiveni) oluşturma ve ağ iletimi için optimizasyon gerektirmesi açısından arşiv kodlamasından farklıdır. İçerik sağlayıcılar, VOD için gerçek zamanlı dönüştürme veya ön kodlama kullanır.
Mobil uygulamalar için tipik bir ABR merdiveni 4–6 çeşit içerir: zayıf ağlar için 144p (200 kbps) ile Wi-Fi için 1080p (8 Mbps) arasında. Önerilen çözünürlükler: 144p, 240p, 360p, 480p, 720p, 1080p. 4K içerik için 1440p ve 2160p eklenir.
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ınlar için düşük gecikme özellikle önemlidir. Kodlama ayarları, codec giriş/çıkış gecikmesini en aza indirmelidir: 1–2 saniyelik GOP boyutu (her 30–60 karede bir) önerilir, B-kareler devre dışı bırakılmalı veya en aza indirilmelidir ve H.264 için Baseline Profile kullanılır.
Modern düşük gecikmeli protokoller — LL-HLS ve CMAF-Low Latency — 1–2 saniyelik segmentler ve kısmi indirmeler (Partial Segments) desteğiyle parçalı kodlama gerektirir. Codec, parçalı MP4 için her segmentte moof-box'ı desteklemelidir.
Sıkça Sorulan Sorular
Video kodlama, veri hacmini azaltmak için codec'ler kullanarak dijital video sinyalini sıkıştırma işlemidir. Mobil uygulamalarda kodlama, cihaz ekranında fark edilebilir kalite kaybı olmadan boyutu yüzlerce kez küçülterek videonun iletilmesini ve depolanmasını sağlar.
H.264 eski cihazlarla maksimum uyumluluk sağlarken, H.265 aynı kalitede %40–50 daha verimlidir. 1080p ve altı içerik için H.264 yeterlidir; 4K için cihaz destekliyorsa H.265 veya AV1 önerilir.
Bit hızı, saniyedeki video verisi miktarıdır. 1080p için H.264'te 3–8 Mbps, H.265'te 2–5 Mbps optimal bit hızıdır. Seçim içeriğe bağlıdır: dinamik sahneler (spor) daha yüksek bit hızı gerektirir, statik sahneler (röportaj) daha düşük bit hızı gerektirir.
VP9, Google'ın AV1'in öncülüdür ve H.265 seviyesinde sıkıştırma sağlar. AV1, VP9'dan %20–30 daha verimli sıkıştırır ancak 5–10 kat daha fazla kodlama kaynağı gerektirir. VP9 YouTube için, AV1 Netflix ve modern akış hizmetleri için daha iyidir.
Canlı yayınlar için, 1–2 saniyelik GOP, B-kare yok, 1080p için 2–4 Mbps bit hızı ile H.264 Baseline Profile kullanın. LL-HLS için parçalı MP4'ü (CMAF) etkinleştirin ve MediaCodec veya VideoToolbox aracılığıyla donanım kodlaması kullanın.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun