FFmpeg'da 'Geçmiş Süre Çok Büyük' ​​Hatası Nasıl Düzeltilir?

FFmpeg, Video, Ses ve diğer multimedya akışlarını işlemek için kullanılan ücretsiz ve açık kaynaklı bir programdır. Program, video ve ses dosyalarının işlenmesinin komut satırı tabanlı işlemesi için tasarlanmıştır. Bununla birlikte, son zamanlarda, bir videoyu kodlarken veya küçültürken “ Geçmiş Süre Çok Büyük ” Hata ile ilgili birçok rapor geliyor.

FFmpeg Logosu

FFmpeg'de “Geçmiş Süre Çok Büyük” Hatasına Neden Olan Ne?

Birden fazla kullanıcıdan çok sayıda rapor aldıktan sonra, sorunu araştırmaya karar verdik ve sorunu tamamen gidermek için bir dizi çözüm geliştirdik. Ayrıca, bu hatanın neden olmasının sebeplerini araştırdık ve aşağıdaki gibi sıraladık:

  • Giriş Kare Hızı Kayıp: Çoğu durumda, sorun, görüntüler için giriş kare hızının girilmemesi nedeniyle ortaya çıkar. Bu, programın giriş kare hızının 25 fps olduğunu varsayar;
  • Uygulanmayan Eşitleme Ayarları: Çoğu kullanıcı ile belirli eşitleme ayarlarının uygulanması sorunu çözdü. Bazen, belirli karelerin düşmesi ve bu hatanın tetiklenmesi nedeniyle kareler düzgün bir şekilde eşitlenmeyebilir.

Artık konunun doğası hakkında temel bir anlayışa sahip olduğunuza göre çözümlere doğru ilerleyeceğiz. Bunları, uyuşmazlıktan kaçınmak için verildikleri özel sırayla uyguladığınızdan emin olun.

1. Çözüm: Giriş Çerçeveleri Ekleme

Videonun giriş kare hızı eklenmediyse, bazı karelerin düşmesine ve hatanın tetiklenmesine neden olabilir. Bu nedenle, bu adımda bunun için giriş çerçeveleri ekleyeceğiz:

  1. Videoyu dönüştürmek için kullandığınız görüşmeye dikkat edin, aşağıdakine benzer olabilir.
     ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 çıkış, mkv 
  2. Şimdi, kare hızını aşağıdaki şekilde kullanılan toplantıya ekleyin
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 çıkışı.mkv 
  3. Sorunun devam edip etmediğini kontrol edin.

2. Çözüm: Eşitleme Bayraklarını Kullanma

Eşitleme bayraklarının eklenmesi, videonun ilk kare hızlarına göre çıktıyı ve giriş videosunu eşitlemeye yardımcı olabilir. Bu nedenle, senkronizasyon komutları eklenmediyse, karelerin düzgün bir şekilde senkronize edilmemesi mümkündür. Bu adımda, senkronizasyon komutlarını ekleyeceğiz

  1. Bu aşamada, muhtemelen aşağıdaki toplantıları kullanıyor olmalısınız.
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 çıkışı.mkv 
  2. Bununla birlikte, bunun yerine, aşağıdaki toplantıyı kullanın
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 çıkışı.mkv -async 1 -vsync 1 
  3. Toplantıya-async 1 -vsync1 ” i henüz eklediğimizi ve bunun, kullandığınız toplantıların sonuna eklenmesi gerektiğini unutmayın.

    Not: İlk görüşmeniz örnek olarak kullanılandan farklı olabilir. Bununla birlikte, toplantıya eklenen değişiklikler farklı olmamalıdır.

Ilginç Haberler