ffmpeg становится очень медленным при использовании duration вместо-r

что я делаю:

Я все еще работаю над сценарием слайд-шоу. Смысл, Я используют ffmpeg это concat demuxer (файлы.txt) предоставить ffmpeg с кучей .jpg файлы для слайд-шоу.

в прошлом я хотел, чтобы все изображения, которые будут показаны в течение 3 секунд, так что я использовал (по назначению?) флаг частоты кадров ffmpeg -r 1/3 достигнуть сказанной продолжительности, которая работала вне совершенно и действительно быстро (грубо 10 секунд для всех 600 изображения.)

что я хочу сделать сейчас:

теперь я хотел, чтобы слайд-шоу было более динамичным, изменяя продолжительность (дольше для более интересных и так далее, вы знаете). Итак, я решил сбросить флаг частоты кадров и установить duration 3 прямо в файле concat. Конечно, для каждого файла с правильным количеством секунд. Который работает-вид.

моя единственная проблема: теперь ffmpeg запускается через этот скрипт. Не только немного, но это занимает примерно в 30 раз больше времени. Хотя я уже использую -c:v libx264 -preset ultrafast.

так, больше не реально практически использовать. Я что-то упускаю или есть третий способ?

Edit:

только что заметил ffmpeg падает это предупреждение:More than 1000 frames duplicated. Это не может быть так, когда статическое изображение отображается максимум 5 секунд при 25 кадрах в секунду (значение по умолчанию).

С уважением!

30
задан Max M.
03.03.2023 22:34 Количество просмотров материала 2492
Распечатать страницу

1 ответ

при использовании duration директива в файле concat demuxer, то, что вы устанавливаете, это смещение временной метки, применяемое к next файл, относительно начальной метки времени, рассчитанной для текущего файла. Для того, чтобы это работало, введите -r нельзя использовать. Что, в свою очередь, означает, что каждому изображению присваивается частота кадров по умолчанию 25 кадров в секунду. В настоящее время это не может быть изменено. Однако можно уменьшить частоту кадров. Так как у вас нет дробных секунд, вы можете уменьшить до 1 кадр.

ffmpeg -f concat -i list.txt -vf fps=1 out.mp4

Я опустил все параметры кодировки. Используют ffmpeg 4.0 или более поздней.

0
отвечен Gyan 2023-03-05 06:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх