Как да коригираме грешката в миналото твърде голяма грешка в FFmpeg?

FFmpeg е безплатна за използване програма с отворен код, която се използва за работа с видео, аудио и други мултимедийни потоци. Програмата е проектирана да управлява обработката на видео и аудио файлове, базирана на команден ред. Въпреки това, съвсем наскоро се появиха много доклади за грешка „ Минала продължителност твърде голяма “, докато кодирате или намалявате мащаба на видео.

FFmpeg лого

Какво причинява грешката „Минала продължителност твърде голяма“ във FFmpeg?

След като получихме множество отчети от множество потребители, решихме да проучим проблема и създадохме набор от решения, за да го коригираме напълно. Освен това разгледахме причините, поради които се задейства тази грешка, и ги изброихме по следния начин:

  • Липсва входна рамка: В повечето случаи проблемът се дължи на това, че входният кадър не е въведен за изображенията. Това води до това, че програмата приема, че входният кадър е 25 fps, което може да причини проблеми, ако това не е така.
  • Настройките за синхронизиране не са изпълнени: При повечето потребители, прилагането на определени настройки за синхронизиране, отстрани проблема. Понякога кадрите може да не се синхронизират правилно, поради което някои кадри могат да бъдат изпуснати и тази грешка може да се задейства.

Сега, когато имате основно разбиране за същността на проблема, ще преминем към решенията. Уверете се, че ги прилагате в конкретния ред, в който са представени, за да избегнете конфликт.

Решение 1: Добавяне на входни рамки

Ако входният кадър на видеоклипа не е добавен, това може да доведе до отпадане на някои кадри и задействане на грешката. Следователно в тази стъпка ще добавим входните рамки за това:

  1. Спазвайте свикването, което сте използвали за преобразуване на видеото, то може да е подобно на следното
     ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv 
  2. Сега просто добавете кадъра към свикването, използвано по следния начин
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  3. Проверете дали проблемът продължава.

Решение 2: Използване на Sync Flags

Добавянето на флаговете Sync може да помогне за синхронизирането на изходното и входното видео в съответствие с първоначалните рамки на видеоклипа. Следователно, ако командите за синхронизиране не са добавени, възможно е кадрите да не се синхронизират правилно. В тази стъпка ще добавяме командите за синхронизация

  1. На този етап вероятно трябва да използвате следното свикване
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  2. Въпреки това, вместо това, използвайте следното свикване
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1 
  3. Обърнете внимание, че току-що добавихме „ -async 1 -vsync1 “ към свикването и това трябва да бъде добавено в края на свикването, което използвате.

    Забележка: Първоначалното ви свикване може да се различава от използваното като пример. Промените, добавени към свикването, обаче, не трябва да се различават.

Интересни Статии