FFmpeg - это бесплатная программа с открытым исходным кодом, которая используется для обработки видео, аудио и других мультимедийных потоков. Программа была разработана для обработки видео и аудио файлов на основе командной строки. Однако совсем недавно стало поступать много сообщений о « Прошлая длительность слишком велика ”Ошибка при кодировании или уменьшении размера видео.
Логотип FFmpeg
Что вызывает ошибку «Прошлая длительность слишком велика» в FFmpeg?
Получив многочисленные отчеты от нескольких пользователей, мы решили изучить проблему и разработали набор решений, чтобы полностью ее устранить. Кроме того, мы изучили причины, по которым возникает эта ошибка, и перечислили их следующим образом:
- Отсутствует входная частота кадров: В большинстве случаев проблема возникает из-за того, что для изображений не указана входная частота кадров. Это приводит к тому, что программа предполагает, что входная частота кадров составляет 25 кадров в секунду, что может вызвать проблемы, если это не так.
- Настройки синхронизации не реализованы: Для большинства пользователей проблема была решена с помощью определенных настроек синхронизации. Иногда кадры могут не синхронизироваться должным образом, из-за чего некоторые кадры могут быть пропущены, и может возникнуть эта ошибка.
Теперь, когда у вас есть базовое представление о природе проблемы, мы перейдем к ее решениям. Обязательно реализуйте их в том порядке, в котором они представлены, чтобы избежать конфликтов.
Решение 1. Добавление кадров ввода
Если входная частота кадров видео не была добавлена, это может привести к потере некоторых кадров и возникновению ошибки. Поэтому на этом этапе мы добавим для этого входные кадры:
- Наблюдайте за созывом, который вы использовали для преобразования видео, он может быть включен аналогичный к следующему
ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv
- Теперь просто Добавить в частота кадров к созыву используется следующим образом
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
- Однако вместо этого использовать следующий созыв
ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1
- Обратите внимание, что мы только что добавили ' -async 1 -vsync1 »К созыву, и это нужно добавить в конце созыва, который вы используете.
Заметка: Ваш первоначальный созыв может отличаться от приведенного в качестве примера. Однако изменения, внесенные в созыв, не должны отличаться.