Avidemux/Bağımsız MPEG-4 çalıcılar

Vikikitap, özgür kütüphane

Bu sayfa videonuzun bağımsız MPEG-4 DVD çalıcılarda (DivX onaylı veya değil) oynatılabilmesi için ne yapmanız gerektiğini anlatmaktadır.

Paketlenmiş frame'ler hilesi[değiştir]

B-frame'ler iyidir ancak bir frame'lik bir gecikmeye neden olurlar, çünkü B-frame'lerin çözülebilmesi için hem kendinden önce, hem de kendinden sonra gelen I/P frame'in çözülmüş olması gerekir. Bu yüzden b-frame'ler VFW (Video for Windows) ile pek uyumlu çalışamazlar. Çünkü VFW, bir frame alır, bir frame verir. Bu sorunu çözmek için DivX Şirketi AVI'de PB frame'leri icat etmiştir. Bu konunun ayrıntısını öğrenmek için B-frame'ler sayfasını okuyun. Ancak basit olarak anlatmak gerekirse bu yöntemde hem P hem de B frame'i içeren bir frame'den sonra kodlanmamış bir resim eklenir. Bu yöntem, yapay ek bir frame ürettiği için bazı oynatıcılar, bu yöntemle oluşturulmuş videoları çalarken büyük veya küçük takılmalar yaşayabilmektedir. Ayrıca bunun tespit edilebilmesi için MPEG-4 akımının kullanıcı veri bölümüne özel bir işaretçi de konulmaktadır. Bazı oynatıcılar bu bilgiyi paketlenmiş frame moduna geçmek için kullanmaktadırlar, ancak bu %100 güvenilir değildir. Ayrıca akım da %100 ISO uyumlu değildir.

  • Kural 1: Paketlenmiş frame'leri kullanmayın. Avidemux'la zaten paketlenmiş frame üretemezsiniz ancak başka yazılımlar üretebilir.
  • Kural 2: Eğer elinize içinde paketlenmiş frame olan bir video geçerse frame'leri paketten çıkartın. Bunu yapmak için, Avidemux ilgili frame'leri çıkarıp çıkarmayacağınızı sorduğunda "yes" deyin. Avidemux, her frame'i alacak ve her bir frame'in içinde başka frame'ler olup olmadığını bulmaya çalışacaktır. Bulduğunda paketlenmiş frame'leri paketten çıkaracak ve karşılığı olan kodlanmamış frame'leri silecektir. Ancak henüz kullanıcı verisindeki işaretçi kalacaktır. Bunu da silmek için çıktı formatı olarak normal "AVI" yerine "AVI, unp. VOP"u seçip videoyu kaydedin. Bunun sonucunda işaretçi taranıp düzeltilecek ve akım "paketlenmemiş" olacaktır. Bu işlem bütün DivX ile kodlanmış paketli videoların sorununu çözer, ancak bazı Xvid ile kodlanmış videoların sorunlarını çözemeyebilir.

Uyarı: Eğer dosyanın VBR sesi varsa, dosyayı açtıktan sonra "Audio->Build VBR Time Map" yapmayı unutmayın.

Eğer yukarıda anlatılanı birçok dosyaya uygulamak istiyorsanız şöyle bir betik kullanabilirsiniz:

#!/bin/bash
export SRC=/tmp/fma2
export TGT=/tmp/fma3
perl foreach.pl $SRC/*.avi "avidemux2 \
--force-unpack  --load $SRC/%f  \
--audio-map  --save-unpacked-vop \
$TGT/fixed_%f --quit"

GMC ve Qpel[değiştir]

Xvid ve libavcodec MPEG-4, DivX'ten daha eksiksiz olan GMC ve Qpel modelllerini kullanabilir. Bunları kullanırken videoyu yeniden kodlamak ve aynı boyutu korumak için 2-pass kullanmalısınız. Ancak 1-pass'i kullanarak da hemen hemen aynı boyutu elde etmenin bir yolu vardır. Videonun doğru yapıldığını var sayarsak, önceki kodlama zaten quantizer ve bit oranlarını belirli bir boyutta iyi bir kalite elde etmek için dağıtmıştır. Haydi bu bilgiyi yeniden kullanalım!

Bunu yapmak için Xvid (veya libavcodec MPEG-4)'ü "Same Qz as input" modunu kullanacak şekilde ayarlayın. Bu modda her bir frame daha önce kullanılan quantizer ile kodlanacaktır. Sonuçta orijinaliyle hemen hemen aynı boyutta/kalitede video elde edilmekte ama 1-pass kullanılmaktadır.

Bu işlem ayrıca komut satırında da (tek seferde birden fazla video işlemek için) yapılabilir:

#!/bin/bash
export SRC=/tmp/fma2
export TGT=/tmp/fma3
perl foreach.pl $SRC/*.avi "avidemux2 \
--force-unpack  --load $SRC/%f \
--audio-map  --video-process --video-codec xvid4 \
--video-conf follow=1000  --save $ TGT/fixed_%f \
--quit"

Sesle videoyu birleştirme[değiştir]

Nandub'un bazı versiyonları gibi bazı yazılımların ses ve videoyu doğru birleştiremediklerini fark ettim. Bu sorun, takılma ve donmaya neden oluyor. Çözüm basit: dosyayı Avidemux'la açıp kaydedin.