Video Kabı ve Kodek Nedir? Uyumluluk Sorunlarının Gerçek Kaynağı
7 dk okuma
Bir video dosyası neden bir cihazda açılıp diğerinde açılmıyor? Neden aynı süredeki iki video arasında on kat boyut farkı olabiliyor? Bu soruların cevabı, video dosyalarının iki katmanlı yapısında. Bu yazıda kap ve kodek ayrımını, kodeklerin nasıl çalıştığını ve uyumluluk sorunlarının gerçek kaynağını açıklıyoruz.
İki katmanlı yapı
Bir video dosyası aslında bir pakettir. İçinde şunlar bulunur:
- Bir veya daha fazla video izi
- Bir veya daha fazla ses izi (farklı diller, farklı kanal düzenleri)
- Altyazı izleri
- Metadata (başlık, süre, oluşturma tarihi, bölüm işaretleri)
- Zaman damgaları — hangi karenin ne zaman gösterileceği
Kap (container), bu parçaları bir arada tutan yapıdır. Dosya uzantısı kabı gösterir: .mp4, .mkv, .avi, .mov, .webm.
Kodek (codec), izlerin nasıl sıkıştırıldığını belirler. Video için H.264, H.265, VP9, AV1; ses için AAC, MP3, Opus, AC3.
Bu ayrımın en pratik sonucu: uzantı, dosyanın oynatılıp oynatılmayacağını söylemez. İki MP4 dosyasından biri her yerde çalışırken diğeri eski bir televizyonda açılmayabilir — çünkü içlerindeki kodekler farklıdır.
Kapların özellikleri
| Kap | Güçlü yanı | Zayıf yanı | Tipik kullanım | |---|---|---|---| | MP4 | Evrensel destek, akış dostu | Sınırlı kodek/altyazı desteği | Web, paylaşım, mobil | | MKV | Her şeyi taşır, çoklu iz, esnek altyazı | Donanım desteği daha az | Arşiv, film koleksiyonu | | MOV | Apple ekosisteminde doğal, düzenleme dostu | MP4'ten daha az yaygın | Video üretimi, macOS | | AVI | Çok eski, geniş miras desteği | Modern kodekleri iyi taşımaz | Eski arşivler | | WEBM | Açık, web için optimize | Sadece belirli kodekler | Tarayıcı içi video |
MP4 ve MOV aslında aynı temel yapıyı paylaşır (ISO tabanlı medya dosyası formatı). Bu yüzden MOV → MP4 dönüşümü çoğu zaman remux ile, yani hiçbir yeniden kodlama olmadan yapılabilir.
MKV en esnek kaptır: neredeyse her kodeği, sınırsız iz sayısını ve zengin altyazı biçimlerini taşır. Bedeli, donanım oynatıcılarda daha az desteklenmesidir.
AVI 1990'lardan kalma bir yapıdır ve modern kodeklerle iyi çalışmaz — B-kare (çift yönlü tahmin karesi) desteği sorunludur ve değişken bitrate ses ile senkron problemleri yaşar.
Video kodekleri nasıl çalışıyor
Bir saniyelik 1080p video, sıkıştırılmamış hâlde yaklaşık 150 MB tutar. Bir dakikalık video 9 GB olur. Sıkıştırma olmadan video pratikte imkânsızdır.
Video kodekleri iki tür fazlalıktan yararlanır:
Uzamsal fazlalık (bir kare içinde): Bir görüntüde komşu pikseller genellikle benzerdir. Gökyüzü bölgesindeki binlerce piksel neredeyse aynı değere sahiptir. Bu, fotoğraf sıkıştırmasına benzer teknikle (blok bölme, frekans dönüşümü, nicemleme) azaltılır.
Zamansal fazlalık (kareler arasında): Ardışık kareler birbirine çok benzer. Sabit bir kamerada arka plan hiç değişmez; sadece hareket eden nesneler farklıdır. Kodek, her kareyi baştan saklamak yerine önceki kareden farkı saklar.
İkinci mekanizma, video sıkıştırmasının asıl gücüdür ve kare tiplerini doğurur.
Kare tipleri ve GOP yapısı
I-kare (Intra, anahtar kare): Kendi başına tam bir görüntüdür. Diğer karelere bakmadan çözülebilir. Bir fotoğraf gibi düşünün. En çok yer kaplayan kare tipidir.
P-kare (Predicted): Önceki karelere bakarak farkı saklar. "Şu blok, önceki karede şurada olan bloğun aynısı, sadece 3 piksel sağa kaymış" der. I-kareden çok daha az yer kaplar.
B-kare (Bi-directional): Hem önceki hem sonraki karelere bakar. En verimli kare tipidir ama kod çözerken kareleri sıra dışı işlemeyi gerektirir.
Bu kareler GOP (Group of Pictures) adı verilen gruplar hâlinde dizilir. Tipik bir GOP şöyle olabilir:
I B B P B B P B B P B B I ...
GOP uzunluğu (iki I-kare arası mesafe) önemli bir ayardır:
- Kısa GOP (sık anahtar kare): daha büyük dosya, ama ileri sarma hassas, düzenleme kolay, hata toparlanması hızlı.
- Uzun GOP (seyrek anahtar kare): daha küçük dosya, ama ileri sarma kaba, düzenleme zor.
Bu, videoda ileri sararken neden tam istediğiniz saniyeye gidemediğinizi açıklar: oynatıcı en yakın I-kareye atlar, çünkü aradan başlayamaz.
Aynı sebep, videoyu kesip birleştirirken de karşınıza çıkar. Kesme noktası bir I-kareye denk geliyorsa yeniden kodlama gerekmez; denk gelmiyorsa o GOP'un yeniden kodlanması gerekir.
Kodeklerin verimlilik farkı
| Kodek | Yıl | Göreli verimlilik | Donanım desteği | |---|---|---|---| | MPEG-4 Part 2 (DivX/Xvid) | 1999 | Referans | Eski cihazlar | | H.264 (AVC) | 2003 | ~%50 daha iyi | Neredeyse evrensel | | VP9 | 2013 | H.264'ten ~%30 iyi | Web iyi, donanım orta | | H.265 (HEVC) | 2013 | H.264'ten ~%40 iyi | Yeni cihazlarda | | AV1 | 2018 | H.265'ten ~%20 iyi | Sınırlı ama artıyor |
Verimlilik artışı nereden geliyor? Daha esnek blok bölme (H.264 sabit 16×16 makrobloklar kullanırken H.265 64×64'e kadar değişken boyutlar kullanır), daha çok tahmin modu, daha iyi hareket tahmini ve daha gelişmiş entropi kodlaması.
Bedeli hesaplama yüküdür. H.265 kodlaması H.264'ten belirgin biçimde yavaştır; AV1 daha da yavaştır. Kod çözme tarafında da donanım desteği olmayan cihazlarda pil tüketimi ve takılma sorunu yaşanır.
H.264 neden hâlâ standart? Çünkü pratikte üretilmiş her cihazda donanım kod çözücüsü var. Telefonunuz, televizyonunuz, tarayıcınız, araç ekranınız hepsi H.264'ü verimli çözüyor. Bu evrensellik, %40 boyut avantajından daha değerli oluyor çoğu senaryoda.
Bitrate modları
CBR (sabit bitrate): Her saniye aynı veri. Yayın (broadcast) ve canlı akış için kullanılır; öngörülebilirlik önemlidir.
VBR (değişken bitrate): Sahne karmaşıklığına göre veri dağıtılır. Sabit bir konuşma sahnesi az, hızlı hareketli bir aksiyon sahnesi çok bit alır. Aynı ortalama bitrate'te CBR'den belirgin biçimde iyi sonuç verir.
CRF (sabit kalite faktörü): Bitrate yerine bir kalite hedefi belirlersiniz (tipik olarak 0-51 arası, düşük değer daha iyi kalite). Kodlayıcı o kaliteyi tutturmak için gereken bitrate'i kendisi ayarlar. Dosya boyutu önceden bilinmez ama kalite tutarlı olur.
Arşiv ve genel kullanım için CRF genellikle en iyi yaklaşımdır — her sahne ihtiyacı kadar veri alır. H.264 için CRF 18-23 aralığı yaygın kullanılır; 18 görsel olarak kayıpsıza yakın, 23 iyi bir denge sayılır.
Kare hızı ve VFR sorunu
Kare hızı (frame rate), saniyede kaç kare gösterileceğidir. Sinema 24 fps, televizyon 25 veya 30 fps, akıcı hareket için 60 fps kullanılır.
Sabit kare hızı (CFR): Kareler eşit aralıklarla gelir. Geleneksel ve öngörülebilir.
Değişken kare hızı (VFR): Kareler eşit aralıklarla gelmez. Ekran kaydı yazılımları ve bazı telefon kameraları, hareket olmadığında kare atlayarak yer kazanır.
VFR pratik bir sorun kaynağıdır: birçok düzenleme ve dönüştürme aracı sabit kare hızı varsayar ve VFR bir kaynağı işlerken zaman damgalarını yanlış yorumlar. Sonuç, videonun ilerledikçe artan ses-görüntü kayması olur.
Bir dönüşümde senkron sorunu yaşıyorsanız ilk şüpheleneceğiniz şey budur. Çözüm, dönüşüm sırasında sabit kare hızına zorlamaktır.
Neden bazı videolar açılmıyor
Teşhis için sırayla bakılacaklar:
1. Kodek desteği yok. En yaygın sebep. Cihaz H.265 veya AV1 çözemiyor olabilir. Çözüm: H.264'e yeniden kodlama.
2. Kap desteği yok. Daha nadir. Bazı eski cihazlar MKV okuyamaz. Çözüm: MP4'e remux (kodekler uyumluysa).
3. Ses kodeği desteklenmiyor. Görüntü gelir ama ses gelmez. AC3 veya DTS gibi kodekler bazı cihazlarda çalışmaz. Çözüm: sesi AAC'ye dönüştürme.
4. Profil/seviye çok yüksek. H.264'ün kendi içinde profilleri vardır (Baseline, Main, High) ve bazı eski cihazlar sadece düşük profilleri destekler. Yüksek çözünürlük ve bitrate de sınırları aşabilir.
5. Dosya bozuk veya eksik. İndirme yarım kalmış olabilir.
Özetle
Bir video dosyası iki katmanlıdır: kap izleri bir arada tutar, kodek onları sıkıştırır. Uyumluluk sorunlarının çoğu kaptan değil kodekten gelir, bu yüzden "MP4'e çevir" tavsiyesi tek başına eksiktir — içindeki kodeği de belirlemek gerekir. Kodekler kareler arası fazlalıktan yararlanır ve bu, I/P/B kare yapısını ve GOP kavramını doğurur; ileri sarma hassasiyeti ve kesme kolaylığı doğrudan buna bağlıdır. H.265 ve AV1 daha verimlidir ama H.264'ün evrensel donanım desteği çoğu senaryoda daha değerlidir. Ve değişken kare hızı, dönüşümlerde ses-görüntü kaymasının en yaygın gizli sebebidir.
Sıkça Sorulan Sorular
Aynı uzantılı iki video neden farklı davranıyor?
Çünkü uzantı sadece kabı gösterir, içindeki kodeği değil. İki MP4 dosyasından biri H.264 video taşıyıp her yerde çalışırken, diğeri H.265 taşıyıp eski bir cihazda açılmayabilir. Aynı şekilde bir MKV içinde AV1 varsa çoğu donanım oynatıcı zorlanır. Sorun teşhisinde 'ne formatı' değil 'hangi kodek' sorusunu sormak gerekir.
Anahtar kare (keyframe) nedir, neden önemli?
Anahtar kare (I-frame), kendi başına tam bir görüntü içeren karedir; diğer karelere bakmadan çözülebilir. Aradaki kareler ise sadece değişimi saklar. Bu yüzden videoda ileri sararken oynatıcı en yakın anahtar kareye atlar — anahtar kareler seyrekse ileri sarma kaba hissedilir. Ayrıca kesme işlemleri anahtar kare sınırlarında yapılırsa yeniden kodlama gerekmez.
H.265 H.264'ten çok daha iyiyse neden herkes kullanmıyor?
Üç sebeple: eski cihazların donanım kod çözücüsü yoktur ve yazılımla çözmek pil tüketir veya takılmaya yol açar, bazı tarayıcılar desteklemez, ve patent lisanslama yapısı karmaşıktır. H.264 ise pratikte üretilmiş her cihazda donanım desteğine sahiptir. Bu yüzden H.264 hâlâ en güvenli seçimdir ve H.265 esas olarak depolama tasarrufunun kritik olduğu senaryolarda kullanılır.
Değişken kare hızı (VFR) neden senkron sorunlarına yol açıyor?
VFR'de kareler eşit aralıklarla gelmez; ekran kaydı yazılımları ve bazı telefon kameraları hareket olmadığında kare atlayarak yer kazanır. Birçok düzenleme ve dönüştürme aracı sabit kare hızı varsayar ve VFR bir kaynağı işlerken zaman damgalarını yanlış yorumlayabilir. Sonuç, videonun ilerledikçe artan ses-görüntü kayması olur.
Bu konuyu Video Format Dönüştür aracıyla hemen deneyin.
Video Format Dönüştür aracını dene