Video Birleştirmede Kopyalama ve Yeniden Kodlama: Teknik Fark
6 dk okuma
İki videoyu birleştirmek kulağa basit gelir: birini diğerinin arkasına ekle. Gerçekte ise arka planda kodek yapılandırmaları, anahtar kare sınırları ve zaman damgası hesapları devreye giriyor — ve bunlar, işlemin saniyeler mi dakikalar mı süreceğini, kalitenin korunup korunmayacağını belirliyor.
İki temel yaklaşım
Kopyalama (stream copy / concat demuxer): Video ve ses verisi hiç çözülmeden yeni dosyaya taşınır. Sadece kap yeniden yazılır ve zaman damgaları düzeltilir.
- Kalite kaybı: sıfır
- Süre: dosya kopyalama hızında
- Koşul: katı parametre uyumu
Yeniden kodlama (transcode / concat filter): Tüm parçalar çözülür, ortak bir formata dönüştürülür, tek bir akış olarak yeniden kodlanır.
- Kalite kaybı: var
- Süre: dakikalar veya saatler
- Koşul: yok, her zaman mümkün
Kopyalama neden bu kadar katı koşullar istiyor
Bir video kod çözücü, akışı çözmeye başlamadan önce bir yapılandırma bilgisi alır. H.264'te buna SPS (Sequence Parameter Set) ve PPS (Picture Parameter Set) denir ve şunları içerir:
- Çözünürlük (genişlik, yükseklik)
- Profil ve seviye (Baseline/Main/High)
- Kroma formatı (4:2:0, 4:2:2, 4:4:4)
- Bit derinliği
- Kare yeniden sıralama bilgisi
Bu bilgiler akışın başında verilir ve çözücü buna göre kendini kurar — bellek ayırır, tampon boyutlarını belirler.
Şimdi 1080p bir videoyla 720p bir videoyu kopyalayarak birleştirdiğinizi düşünün. Akışın ortasında çözünürlük değişir ve çözücünün yeniden başlatılması gerekir. Bazı oynatıcılar bunu yapabilir, çoğu yapamaz — sonuç bozuk görüntü, donma veya oynatıcının çökmesi olur.
Bu yüzden kopyalama için gereken uyum listesi:
| Parametre | Uyum gerekli mi | |---|---| | Video kodeği | Evet, kesin | | Çözünürlük | Evet, kesin | | Profil / seviye | Evet | | Kroma formatı | Evet | | Kare hızı | Evet (zamanlama için) | | Ses kodeği | Evet | | Ses örnekleme hızı | Evet | | Ses kanal sayısı | Evet | | Bitrate | Hayır (değişebilir) |
Son satır önemli: bitrate akış içinde zaten değişkendir, dolayısıyla uyum gerektirmez.
MKV'nin esnekliği
MP4 kabı, iz düzeyinde tek bir yapılandırma bekler. Akış ortasında çözünürlük veya profil değişimi standart dışıdır.
MKV daha esnektir: farklı parametrelere sahip bölümleri aynı dosyada taşıyabilen bir yapıya sahiptir ve birçok MKV oynatıcı akış ortasındaki değişimlere uyum sağlar.
Pratik sonuç: karışık kaynakları MKV'de birleştirmek bazen yeniden kodlamadan mümkün olabilir, MP4'te olmaz. Ancak bu, oynatıcıya bağlı bir davranıştır ve garantili değildir. Dosyayı geniş bir kitleye dağıtacaksanız güvenilir yol yeniden kodlamaktır.
Zaman damgalarının yeniden yazılması
Kopyalama yapılırken bile bir şey mutlaka değişir: zaman damgaları.
Her video dosyası zaman damgalarını sıfırdan başlatır. Birinci video 0'dan 120 saniyeye kadar, ikinci video yine 0'dan 90 saniyeye kadar damgalanmıştır.
İkisini basitçe uç uca eklerseniz oynatıcı ikinci videonun damgalarını görüp "başa dönüş" sanır. Sonuç: video 120. saniyede biter veya oynatıcı kafası karışır.
Birleştirme aracı, ikinci videonun tüm zaman damgalarına birinci videonun süresini ekler:
Video 1: PTS 0, 40, 80, ... 119960 (ms)
Video 2 (orijinal): PTS 0, 40, 80, ... 89960
Video 2 (kaydırılmış): PTS 120000, 120040, ... 209960
Bu, sürekli bir zaman ekseni oluşturur ve oynatıcı videoyu tek bir akış olarak görür.
Aynı işlem ses izi için de yapılır ve ses ile videonun aynı miktarda kaydırılması senkronun korunması için kritiktir.
Anahtar kare sınırı
Video kodekleri kareleri üç tipte saklar:
- I-kare (anahtar kare): Kendi başına tam bir görüntü. Bağımsız çözülebilir.
- P-kare: Önceki karelere bağımlı.
- B-kare: Hem önceki hem sonraki karelere bağımlı.
Bunlar GOP (Group of Pictures) grupları hâlinde dizilir ve her GOP bir I-kare ile başlar.
Bunun birleştirmeye etkisi: kopyalama yaparken kesme noktası bir I-kareye denk gelmelidir. Bir P-kareden başlayamazsınız çünkü o kare, kendisinden önceki kareleri gerektirir ve onlar yeni dosyada yoktur.
Sonuç: videoyu kesip birleştiriyorsanız ve kopyalama kullanıyorsanız, araç kesme noktasını en yakın anahtar kareye yuvarlar. İstediğiniz saniyeden birkaç saniye önce veya sonra kesilebilir.
Kare hassasiyetinde kesme istiyorsanız o bölümün yeniden kodlanması gerekir. Bazı araçlar akıllı bir yaklaşım kullanır: sadece kesme noktalarındaki GOP'ları yeniden kodlar, geri kalanı kopyalar. Bu, "smart rendering" olarak bilinir ve hem hız hem hassasiyet sağlar.
Tam dosyaları birleştiriyorsanız (kesme yoksa) bu sorun yaşanmaz — her dosya zaten bir I-kareyle başlar.
Değişken kare hızı sorunu
Sabit kare hızı (CFR): Kareler eşit aralıklarla gelir. Zaman damgaları düzenli bir aritmetik dizidir.
Değişken kare hızı (VFR): Kareler eşit aralıklarla gelmez. Telefon kameraları ışığa göre, ekran kayıt yazılımları hareket yokluğuna göre kare atlar.
VFR birleştirmede iki sorun yaratır:
1. Süre hesabı yanlış olur. Araç ortalama bir kare hızı varsayıp süreyi kare sayısı / fps olarak hesaplarsa, gerçek süreden farklı bir değer bulur. İkinci videonun kaydırma miktarı yanlış hesaplanır.
2. Kayma birikir. Her parçada küçük bir hata varsa, bunlar toplanır. Beş parçayı birleştirdiğinizde sonlara doğru fark edilir bir dudak senkronu sorunu oluşur.
Belirtisi karakteristiktir: videonun başında senkron iyi, sonuna doğru bozuluyor.
Çözüm: parçaları birleştirmeden önce sabit kare hızına dönüştürmek. Bu, ek bir yeniden kodlama adımıdır ama sorunu kökünden çözer.
Telefonla çekilmiş videolarla düzenli çalışıyorsanız bu adımı iş akışınıza dahil etmek iyi bir alışkanlıktır.
Ses tarafındaki uyum
Ses için de benzer koşullar geçerlidir:
Kodek uyumu: Biri AAC, diğeri MP3 ise kopyalama mümkün değildir.
Örnekleme hızı: 44.1 kHz ile 48 kHz karışımı, düzgün dönüştürülmezse bir parçanın yanlış hızda çalmasına yol açar.
Kanal sayısı: Mono ve stereo karışımı dönüşüm gerektirir.
Ayrıca kayıplı ses kodekleri blok tabanlı çalıştığı için her dosyanın başında ve sonunda kodlayıcı gecikmesi ve dolgu örnekleri bulunur. Kopyalayarak birleştirdiğinizde bu boşluklar korunur ve her geçişte kısa bir sessizlik oluşur.
Video tarafında bu sorun yoktur (video kareleri blok dolgusu gerektirmez), dolayısıyla ses ve video arasında küçük bir zamanlama farkı oluşabilir. Uzun birleştirmelerde bu birikebilir.
Kesintisiz ses istiyorsanız sesin yeniden kodlanması gerekir.
Yeniden kodlamada hedef seçimi
Yeniden kodlama kaçınılmazsa, hedef parametreleri seçmeniz gerekir:
Çözünürlük. En yaygın kullanılan değeri hedefleyin. Karışımda dört adet 1080p, bir adet 720p varsa 1080p seçin — sadece bir parça büyütülür.
Kare hızı. En yüksek olanı seçmek daha akıcı sonuç verir. 30 fps bir videoyu 60 fps'ye çıkarmak kareleri tekrarlar (yeni bilgi eklemez) ama 60 fps parçalar akıcılığını korur.
En-boy oranı. Farklı oranlar varsa siyah bant (letterbox/pillarbox) eklemek içeriği korur; kırpmak ekranı doldurur ama içerik kaybettirir.
Bitrate / kalite. CRF tabanlı bir kalite hedefi kullanmak, sabit bitrate'ten genellikle daha iyi sonuç verir çünkü her sahne ihtiyacı kadar veri alır.
Kodek. H.264 en güvenli seçimdir; her yerde çalışır.
Özetle
Video birleştirmede kopyalama, hiçbir kalite kaybı olmadan ve saniyeler içinde biten ideal yoldur — ama katı koşulları vardır: kodek, çözünürlük, profil, kroma formatı, kare hızı ve tüm ses parametreleri eşleşmelidir. Bu koşul sağlansa bile zaman damgalarının yeniden yazılması gerekir; ses ve videonun aynı miktarda kaydırılması senkronu belirler. Kesme yapıyorsanız kopyalama anahtar kare sınırlarına takılır ve kesme noktası yuvarlanır. Değişken kare hızlı kaynaklar, birikimli senkron kaymasının en yaygın sebebidir ve önceden sabit kare hızına dönüştürülmelidir. Uyum sağlanamıyorsa yeniden kodlama gerekir ve hedef çözünürlük, kare hızı ile en-boy oranı kararlarını bilinçli vermek gerekir.
Sıkça Sorulan Sorular
Neden aynı kodek yetmiyor, parametreler de aynı olmalı?
Çünkü kod çözücü, bir videoyu çözmeye başlamadan önce bir yapılandırma bilgisi alır: çözünürlük, profil, seviye, kroma formatı. Akış ortasında bu değerler değişirse çözücünün yeniden başlatılması gerekir ve birçok oynatıcı bunu düzgün yapamaz. Bu yüzden kopyalama için sadece kodek değil, tüm akış parametrelerinin eşleşmesi gerekir.
Videoyu tam istediğim saniyeden kesip birleştirebilir miyim?
Kopyalama yapıyorsanız hayır — kesme noktası bir anahtar kareye (I-frame) denk gelmelidir, çünkü aradaki kareler önceki karelere bağımlıdır ve tek başlarına çözülemezler. Araç en yakın anahtar kareye yuvarlar. Kare hassasiyetinde kesme istiyorsanız o bölümün yeniden kodlanması gerekir.
Zaman damgaları neden yeniden yazılmak zorunda?
Çünkü her video dosyası zaman damgalarını sıfırdan başlatır. İki videoyu uç uca eklerken ikinci videonun damgaları da sıfırdan başlar ve oynatıcı bunu 'başa dönüş' olarak yorumlar. Birleştirme aracı, ikinci videonun tüm zaman damgalarına birinci videonun süresini ekleyerek sürekli bir zaman ekseni oluşturur.
MKV kabı birleştirmede neden daha esnek?
MKV, farklı parametrelere sahip bölümleri aynı dosyada taşıyabilen bir yapıya sahiptir ve birçok MKV oynatıcı akış ortasındaki değişimlere uyum sağlar. MP4 ise daha katıdır; iz düzeyinde tek bir yapılandırma bekler. Bu yüzden karışık kaynakları MKV'de birleştirmek bazen yeniden kodlamadan mümkün olabilirken MP4'te olmaz.
Bu konuyu Video Birleştir aracıyla hemen deneyin.
Video Birleştir aracını dene