FFmpeg'de 'Geçmiş Süre Çok Büyük' Hatası Nasıl Onarılır?



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

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ına dayalı olarak işlenmesi için tasarlanmıştır. Ancak, oldukça yakın zamanda, bir ' Geçmiş Süre Çok Uzun 'Bir videoyu kodlarken veya küçültürken hata oluştu.



FFmpeg Logosu



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

Birden çok kullanıcıdan çok sayıda rapor aldıktan sonra, sorunu araştırmaya karar verdik ve tamamen düzeltmek için bir dizi çözüm geliştirdik. Ayrıca, bu hatanın tetiklenmesinin nedenlerini araştırdık ve bunları aşağıdaki gibi listeledik:



  • Girdi Kare Hızı Eksik: Çoğu durumda sorun, giriş kare hızının görüntüler için girilmemesinden kaynaklanır. Bu, programın giriş kare hızının 25 fps olduğunu varsaymasıyla sonuçlanır ve bu durum böyle değilse sorunlara neden olabilir.
  • Senkronizasyon Ayarları Uygulanmadı: Çoğu kullanıcıyla, belirli senkronizasyon ayarlarının uygulanması sorunu çözdü. Bazen, hangi çerçevelerin atlanabileceği nedeniyle çerçeveler düzgün şekilde senkronize edilemeyebilir ve bu hata tetiklenebilir.

Artık sorunun doğası hakkında temel bir anlayışa sahip olduğunuza göre, çözümlere doğru ilerleyeceğiz. Çatışmayı önlemek için bunları verildikleri 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 hata tetiklenmesine neden olabilir. Bu nedenle, bu adımda bunun için giriş çerçevelerini ekleyeceğiz:

  1. Videoyu dönüştürmek için kullandığınız çağrıyı gözlemleyin. benzer müteakip
    ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv
  2. Şimdi basitçe Ekle kare hızı aşağıdaki gibi kullanılan toplantıya
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  3. Sorunun devam edip etmediğini kontrol edin.

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

Senkronizasyon bayraklarının eklenmesi, videonun ilk kare hızlarına göre çıkışı ve giriş videosunu senkronize etmeye yardımcı olabilir. Bu nedenle, senkronizasyon komutları eklenmemişse, çerçevelerin düzgün şekilde senkronize edilmemesi mümkündür. Bu adımda, senkronizasyon komutlarını ekleyeceğiz



  1. Bu aşamada muhtemelen olmalısın kullanma aşağıdaki çağrı
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv
  2. Ancak bunun yerine kullanım aşağıdaki çağrı
    ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1
  3. ' -async 1 -vsync1 'Davetiyeye ve bu, kullanmakta olduğunuz görüşmenin sonuna eklenmelidir.
    Not: İlk çağrınız, örnek olarak kullanılandan farklı olabilir. Ancak toplantıya eklenen değişiklikler farklı olmamalıdır.
2 dakika okundu