1

У меня есть серия изображений с интервальной съемкой, которые я использую для создания видео. Эти изображения большие (1080p), поэтому я пытаюсь занять как можно меньше места на моем компьютере. В настоящее время у меня есть около 3500 изображений. Если я использую FFmpeg для генерации видео со скоростью 30 кадров в секунду и 3500 кбит / с, размер файла составляет около 50 МБ, что не совсем реально для использования в презентациях PowerPoint. Поэтому я хотел бы использовать FFmpeg для создания видео, но использовать только каждый N-й кадр из этой последовательности изображений в видео. Я нашел кучу постов, которые предлагают способы сделать это, но все они берут существующее видео и сокращают его. Я пытался использовать команду select для достижения этой цели, но безрезультатно. Это команда, которую я использовал:

ffmpeg -framerate 30 -i Image%08d.jpg -filter:v select='not(mod(n\,5))' -b:v 3500k Output.mp4

У кого-нибудь есть предложения?

1 ответ1

2

Вы можете просто использовать режим CRF вместо указания битрейта:

ffmpeg -framerate 30 -i Image%08d.jpg -crf 23 Output.mp4

Чем меньше значение, тем лучше, но получается больше файлов. 18-28 это приличный диапазон.


Чтобы использовать каждый 5-й кадр,

ffmpeg -framerate 30 -i Image%08d.jpg -vf "select='not(mod(n,5))',setpts=N/30/TB" -crf 23 Output.mp4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .