Video Dosyasında Ses İzi Nasıl Saklanır? Demux ve Kopyalama Mantığı
7 dk okuma
Bir videodan sesi çıkardığınızda dosyanın içinde ne oluyor? Ses "ayrılmıyor" — çünkü zaten ayrı bir iz olarak duruyor, sadece video verisiyle iç içe paketlenmiş durumda. Bu yazıda kapların iç yapısını, izlerin nasıl saklandığını ve kopyalama ile yeniden kodlama arasındaki teknik farkı açıklıyoruz.
Kap içinde izler nasıl duruyor
Bir video dosyasını açıp içine baksanız, "önce tüm video, sonra tüm ses" gibi düzenli bir yapı görmezsiniz. Bunun yerine küçük paketlerin iç içe geçtiği bir akış bulursunuz:
[video paketi 0.00s][ses paketi 0.00s][video paketi 0.04s]
[ses paketi 0.02s][video paketi 0.08s][ses paketi 0.04s]...
Buna çoklama (multiplexing) denir. Sebebi oynatma verimliliğidir: bir videoyu izlerken belirli bir anın hem görüntüsüne hem sesine aynı anda ihtiyacınız olur. Bunlar dosyanın farklı uçlarında saklansaydı, oynatıcı sürekli ileri geri okuma yapmak zorunda kalırdı. Ağdan akış yaparken bu tamamen kullanılamaz bir yapı olurdu.
Demux (demultiplexing) bu karışık akışı ayrıştırıp her izi kendi başına toplama işlemidir. Ses çıkarmanın ilk adımı budur.
Kritik nokta: demux hiçbir kod çözme işlemi içermez. Paketleri okur, hangi ize ait olduklarına bakar, ayırır. Ses verisinin içine hiç bakmaz.
İz yapısı ve metadata
Her kapta izler hakkında bilgi tutan bir yapı bulunur. MP4'te bu, moov atomu içindeki trak yapılarıdır; MKV'de Tracks elemanıdır.
Her iz için saklanan bilgiler:
| Bilgi | Anlamı | |---|---| | İz tipi | Video, ses, altyazı, metadata | | Kodek tanımlayıcı | AAC, H.264, AC3, Opus... | | Zaman ölçeği | Zaman damgalarının birimi | | Süre | İzin uzunluğu | | Dil | Türkçe, İngilizce... | | Kanal sayısı | Mono, stereo, 5.1 | | Örnekleme hızı | 44100, 48000 Hz | | Bitrate | Ortalama veri hızı | | Kodek özel verisi | Kod çözücünün ihtiyaç duyduğu başlangıç parametreleri |
Son satır önemli: birçok kodek, kod çözmeye başlamadan önce bir yapılandırma bloğuna ihtiyaç duyar. AAC için buna AudioSpecificConfig denir ve örnekleme hızı, kanal düzeni, profil bilgisi gibi verileri taşır. Bu blok ses paketlerinin içinde değil, iz metadata'sında saklanır.
Ses çıkarma sırasında bu yapılandırma bloğunun da yeni dosyaya doğru biçimde aktarılması gerekir — aksi halde çıkan dosya çalınamaz veya yanlış hızda çalar.
Kopyalama: kayıpsız yol
Stream copy (akış kopyalama) işleminde şunlar olur:
- Kap demux edilir, ses paketleri ayrılır.
- Paketlerin içine hiç bakılmaz. Kodlanmış veri olduğu gibi durur.
- Yeni bir kap (veya ham dosya) oluşturulur.
- Paketler zaman damgalarıyla birlikte yeni kaba yazılır.
- İz metadata'sı ve kodek yapılandırması aktarılır.
Sonuç: ses verisi bit bit aynıdır. Hiçbir kalite kaybı yoktur. İşlem, dosya kopyalama hızında çalışır çünkü hiçbir hesaplama yapılmaz.
Koşul: hedef dosya formatının o kodeği barındırabilmesi gerekir.
| Kaynak ses kodeği | Kopyalanabilir hedefler | |---|---| | AAC | .m4a, .aac, .mp4, .mkv | | MP3 | .mp3, .mkv, .mp4 | | Opus | .opus, .ogg, .mkv, .webm | | Vorbis | .ogg, .mkv, .webm | | FLAC | .flac, .mkv | | PCM | .wav, .mkv, .mov | | AC3 / DTS | .ac3, .dts, .mkv |
Bu tablodan çıkan pratik sonuç: MP4 videolarınızdan ses çıkarırken M4A hedefini seçerseniz kopyalama yapılır ve hiç kalite kaybetmezsiniz. Aynı içeriği MP3 isterseniz yeniden kodlama zorunlu hâle gelir.
Yeniden kodlama: kayıplı yol
Hedef format kaynakla uyumsuzsa, iki adımlı bir işlem gerekir:
1. Kod çözme. Kodlanmış ses paketleri PCM'e (ham örnek dizisine) çözülür.
2. Yeniden kodlama. Bu PCM veri, hedef kodekle sıfırdan sıkıştırılır.
Kayıplı bir kaynaktan kayıplı bir hedefe giderken sorun şudur: birinci kodlayıcının attığı bilgi zaten yok olmuştur, ve ikinci kodlayıcı kendi psikoakustik modeline göre yeniden bilgi atar. İki farklı "atma" birbirinin üzerine biner ve kayıp birikir.
Ayrıca birinci kodlamanın bıraktığı nicemleme gürültüsü, ikinci kodlayıcı için "gerçek ses" gibi görünür ve onu korumaya çalışarak bit bütçesi harcar.
Bu yüzden hedef bitrate'i kaynağın bir kademe üstünde tutmak gerekir — kaybı sıfırlamaz ama sınırlar.
İstisna: kaynak kayıpsızsa (PCM veya FLAC), yeniden kodlama sadece bir kez kayıp ekler ve bu normal bir kodlama işlemidir. Bu durumda kalite tamamen seçtiğiniz bitrate'e bağlıdır.
Zaman damgaları ve senkron
Her paket bir zaman damgası taşır. Aslında iki tane:
PTS (Presentation Timestamp): Bu paketin ne zaman gösterileceği/çalınacağı.
DTS (Decoding Timestamp): Bu paketin ne zaman çözülmesi gerektiği.
Ses için ikisi genellikle aynıdır. Video için farklı olabilir — B-kareler ileriye bakarak tahmin yaptığı için çözme sırası gösterim sırasından farklıdır.
Ses çıkarmada zaman damgaları iki sebeple önemlidir:
Başlangıç kaydırması. Bazı kayıtlarda ses izi videodan farklı bir zamanda başlar. Kapta bu bir edit list veya kaydırma değeriyle telafi edilir. Çıkarma sırasında bu bilgi aktarılmazsa, çıkan ses videodakinden birkaç yüz milisaniye kaymış olur.
Boşluklar. Bazı kayıtlarda (özellikle ağ üzerinden alınan akışlarda) ses paketlerinde boşluklar olabilir. Kopyalama bu boşlukları taşır; bazı araçlar bunları doldurur, bazıları görmezden gelir ve süre kısalır.
Değişken kare hızı sorunu
Ekran kayıt yazılımları ve bazı telefon kameraları değişken kare hızı (VFR) kullanır: hareket olmadığında kare atlayarak yer kazanır.
Ses ise her zaman sabit hızda akar — 48000 örnek/saniye, istisnasız.
Bu asimetri, VFR videolarda zaman hesaplamalarını zorlaştırır. Bazı araçlar videonun ortalama kare hızını hesaplayıp sabit varsayar ve ses zaman damgalarını buna göre yorumlar. Sonuç, videonun ilerledikçe artan bir kayma olur.
Bir saatlik bir ekran kaydından çıkardığınız ses, sonlara doğru birkaç saniye kaymış olabilir. Çözüm, videoyu önce sabit kare hızına dönüştürmektir.
Çoklu ses izleri
MKV kabı sınırsız sayıda ses izi taşıyabilir. Tipik bir film dosyasında:
- İz 1: Orijinal dil, 5.1 AC3
- İz 2: Türkçe dublaj, 2.0 AAC
- İz 3: Yönetmen yorumu, 2.0 AAC
- İz 4: Sesli betimleme
Her iz kendi dil etiketini, kanal düzenini ve kodeğini taşır.
Çıkarma araçları genellikle varsayılan izi veya ilk izi alır. Belirli bir izi istiyorsanız aracın iz seçimi sunması gerekir.
MP4 kabı da çoklu ses izi destekler ama pratikte daha az kullanılır ve bazı oynatıcılar sadece ilkini görür.
Kanal karıştırma
Film sesleri genellikle 5.1 veya 7.1 kanaldır. Bunu stereo bir dosyaya çıkarırken downmix (aşağı karıştırma) yapılır: altı kanal iki kanala indirilir.
Standart formül kabaca şöyledir:
- Sol = Ön Sol + 0.707 × Merkez + 0.707 × Arka Sol
- Sağ = Ön Sağ + 0.707 × Merkez + 0.707 × Arka Sağ
- LFE (bas kanalı) genellikle atılır veya düşük ağırlıkla eklenir
Bu karıştırma bazen sorun yaratır: film seslerinde diyaloglar merkez kanaldadır ve efektler yan kanallarda. Karıştırma oranları uygun değilse diyaloglar arka planda kalabilir — filmden ses çıkardığınızda konuşmaların duyulmaması bu yüzdendir.
Bazı araçlar merkez kanalı daha güçlü karıştıran "diyalog odaklı" seçenekler sunar.
PCM: kayıpsız kaynak
Bazı videolarda ses hiç sıkıştırılmamış olarak, PCM formatında saklanır. Profesyonel kameralarda, bazı ekran kayıt yazılımlarında ve Blu-ray disklerde bulunur.
PCM, WAV dosyalarının içindekiyle aynı veridir. Bu durumda:
- WAV'a çıkarma: doğrudan kopyalama, hiçbir kayıp yok.
- FLAC'a çıkarma: kayıpsız sıkıştırma, veri birebir korunur, dosya küçülür.
- MP3/AAC'ye çıkarma: ilk kayıplı kodlama; kalite tamamen seçtiğiniz bitrate'e bağlıdır ve iyi bir bitrate'te sonuç mükemmeldir.
PCM kaynaklı çıkarmalar, düzenleme için en iyi başlangıç noktasıdır.
Özetle
Bir video dosyasında ses, video verisiyle iç içe paketlenmiş ayrı bir iz olarak durur; çıkarma işleminin ilk adımı bu paketleri ayırmaktır (demux) ve bu adım hiçbir kod çözme içermez. Hedef format kaynak kodeğiyle uyumluysa paketler olduğu gibi taşınır — kopyalama, sıfır kayıp, saniyeler süren işlem. Uyumsuzsa kod çözme ve yeniden kodlama gerekir ve kayıplı kaynaklarda ikinci bir kayıp eklenir. Zaman damgaları senkronu belirler ve değişken kare hızlı kaynaklarda kayma sorununun ana sebebidir. Çok kanallı film seslerinde stereo'ya karıştırma, diyalogların zayıflamasına yol açabilir — bu, karıştırma oranlarının doğal bir sonucudur.
Sıkça Sorulan Sorular
Demux tam olarak ne demek?
Demultiplexing kelimesinin kısaltması. Bir kap içinde video, ses ve altyazı verileri iç içe geçmiş paketler hâlinde saklanır — oynatırken hepsi eşzamanlı gerekli olduğu için. Demux, bu karışık akışı ayrıştırıp her izi kendi başına almaktır. Ses çıkarmanın ilk adımı budur ve hiçbir kod çözme işlemi gerektirmez.
Neden ses ve video verileri iç içe saklanıyor?
Oynatma verimliliği için. Bir videoyu izlerken belirli bir anın hem görüntüsüne hem sesine aynı anda ihtiyacınız olur. Bunlar dosyanın farklı uçlarında olsaydı, oynatıcı sürekli ileri geri okuma yapmak zorunda kalırdı — özellikle ağdan akış yaparken bu felaket olurdu. İç içe saklama, sıralı okumayla her ikisini birden almanızı sağlar.
Kopyalama yaparken neden bazen format seçemiyorum?
Çünkü kopyalama, veriyi olduğu gibi taşır ve hedef dosyanın o veriyi barındırabilmesi gerekir. AAC ses verisini .m4a dosyasına koyabilirsiniz ama .mp3 dosyasına koyamazsınız — MP3 dosya formatı MP3 verisi bekler. Farklı bir hedef format istiyorsanız yeniden kodlama zorunlu hâle gelir.
PCM ses nedir, hangi videolarda bulunur?
PCM, hiç sıkıştırılmamış ham ses verisidir — WAV dosyalarının içindekiyle aynı. Profesyonel kameralarda, bazı ekran kayıt yazılımlarında ve Blu-ray disklerde bulunur. Kayıpsız olduğu için çıkarma sırasında WAV veya FLAC'a hiçbir kayıp olmadan geçilebilir. Dosya boyutu büyüktür ama düzenleme için ideal bir kaynaktır.
Bu konuyu Videodan Ses Çıkar aracıyla hemen deneyin.
Videodan Ses Çıkar aracını dene