Avidemux/MPEG yakalamasını düzeltme (DVB veya IVTV)

Bu sayfada yakalanmış MPEG dosyalarını düzenleme hakkında ipuçları bulunmaktadır. Bu yakalanmış MPEG'ler genelde DVB S/T'den (MPEG TS formatında), IVTV tabanlı kartlardan veya MPEG PS formatında MPEG-2 kaydeden diğer kartlardan yakalanmıştır.

Bu yakalamalar sıklıkla kayıp veya bozuk frame'ler olarak ortaya çıkan iletim hatalarını içerir. MPlayer, xine veya VLC gibi oynatıcılar, akıma gömülü olan zamanlama bilgisini kullanarak sık sık akımı senkronize ederler. Ancak Avidemux bunu yapmaz.

Timeshift filtresiyle kolayca halledilebilen basit ses kaymasını bir kenara bırakırsak ayrıca bir de kodlama veya format değiştirme esnasında ortaya çıkan bir senkronizasyon problemi de oluşacaktır. Yeniden kodlama yapmadan kaydetme bile bu senkronizasyon bozukluğunu engellemeyecektir.

MythTV kayıtları bu sorunun en önemli örnekleridir. Eğer aşağıdaki işlem yapılmazsa ses videodan yaklaşık 330 ms önde olacaktır. Ancak bütün MythTV kayıtlarında aynı sorun bulunmayabilir. Sorunun ortaya çıkıp çıkmaması yazılım ve donanım yapılandırmasına bağlıdır.

Çözüm

değiştir

Bu sorunun tek %100 güvenilir çözümü ProjectX'tir (bkz: ProjectX öğreticisi). ProjectX biraz zaman alır ama kolay betiklendirilir. Örnek bir betik burada mevcuttur. Şimdi MPEG TS formatında ve 2537_20060819203500.mpg isminde yakalanmış bir DVB dosyanız (DVB-T) olduğunu varsayalım.

Öncelikle dosyadan sesi ve videoyu basit akımlar elde edecek şekilde ayıracağız (ancak senkronize basit akımlar).

projectx 2537_20060819203500.mpg

Bu kod sonucunda her bir basit akım için aşağıdaki uzantılara sahip birer dosya oluşacaktır:

  • m2v: video akımı için
  • mp2: MPEG ses akımı için
  • ac3: Dolby Digital (yani AC3) akımı

Şimdi bu akımları PS formatı elde edecek şekilde birleştirmeliyiz. Komut şu şekilde:

mplex -f 8 -o olusan_dosya.mpg 2537_20060819203500.ac3 2537_20060819203500.m2v 2537_20060819203500.mp2

Oluşan dosya (olusan_dosya.mpg) Avidemux'la düzenlenebilir (örneğin reklamları silmek amacıyla) veya senkronizasyon problemi olmadan başka bir formata kodlanabilir.

ProjectX, akımları senkronize etmek için son derece güvenilirdir, kayıp ses frame'leri kopyalama yoluyla oluşturur ve kayıp video frame'leri yerine boş frame koyar.

Win32 sistemler için olan mplex'in güncel sürümlerini bulmak zordur, ancak ImagoMPEG-Muxer bu programın yerini alabilir.

Son dokunuş

değiştir

Eğer MPEG-4 gibi başka bir formata kodlama yaparsanız, muhtemelen "Preferences" penceresindeki "Input" sekmesinden "Use libavcodec MPEG decoder" ayarını etkinleştirmek isteyeceksiniz. libavcodec, çözme hatalarını gizlemeye yarayan kodlar içerir. Yani yeşil bir blok elde etmektense büyük oranda doğru ama bulanık bir blok elde edeceksiniz. Yeşil bir blok görmektense bulanık bir blok görmek izleyiciyi daha memnun edecektir.