Как исправить ошибку 'Прошлая длительность слишком велика' в FFmpeg?



Попробуйте наш инструмент устранения неполадок

FFmpeg - это бесплатная программа с открытым исходным кодом, которая используется для обработки видео, аудио и других мультимедийных потоков. Программа была разработана для обработки видео и аудио файлов на основе командной строки. Однако совсем недавно стало поступать много сообщений о « Прошлая длительность слишком велика ”Ошибка при кодировании или уменьшении размера видео.



Логотип FFmpeg



Что вызывает ошибку «Прошлая длительность слишком велика» в FFmpeg?

Получив многочисленные отчеты от нескольких пользователей, мы решили изучить проблему и разработали набор решений, чтобы полностью ее устранить. Кроме того, мы изучили причины, по которым возникает эта ошибка, и перечислили их следующим образом:



  • Отсутствует входная частота кадров: В большинстве случаев проблема возникает из-за того, что для изображений не указана входная частота кадров. Это приводит к тому, что программа предполагает, что входная частота кадров составляет 25 кадров в секунду, что может вызвать проблемы, если это не так.
  • Настройки синхронизации не реализованы: Для большинства пользователей проблема была решена с помощью определенных настроек синхронизации. Иногда кадры могут не синхронизироваться должным образом, из-за чего некоторые кадры могут быть пропущены, и может возникнуть эта ошибка.

Теперь, когда у вас есть базовое представление о природе проблемы, мы перейдем к ее решениям. Обязательно реализуйте их в том порядке, в котором они представлены, чтобы избежать конфликтов.

Решение 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. Использование флагов синхронизации

Добавление флагов синхронизации может помочь синхронизировать выходное и входное видео в соответствии с исходной частотой кадров видео. Следовательно, если команды синхронизации не были добавлены, возможно, кадры не синхронизируются должным образом. На этом этапе мы добавим команды синхронизации.



  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 »К созыву, и это нужно добавить в конце созыва, который вы используете.
    Заметка: Ваш первоначальный созыв может отличаться от приведенного в качестве примера. Однако изменения, внесенные в созыв, не должны отличаться.
2 минуты на чтение