Как с помощью FFMPEG создать видео с одним сплошным цветом, который будет меняться с определенными интервалами?

Как с помощью FFMPEG создать видео с одним сплошным цветом, который будет меняться с определенными интервалами?

В целях тестирования я хочу создать видео, которое будет меняться между сплошным черным и сплошным белым цветом в каждом кадре со скоростью 10 кадров в секунду. Как это сделать с помощью FFMPEG?

решение1

Быстрым ответом будет «потратить 3 часа на изучение того, как работают фильтры ffmpeg» — то, что я сделал сегодня ради развлечения, поэтому я использовал этот вопрос как вызов.

Похоже, есть несколько способов получить результат, но вот что сработало для меня:

  1. Создайте черное и белое изображения, назвав их img-001.pngи img-002.png.

  2. Используйте ffmpegфункцию -loop, которую я узнал изэтот ответ только для работы с изображениями в видео

Генерация изображений:

ffmpeg -f lavfi -i color=black:1920x1080:d=3,format=rgb24 -frames:v 1 -y img-001.png

ffmpeg -f lavfi -i color=white:1920x1080:d=3,format=rgb24 -frames:v 1 -y img-002.png

Зациклить эти изображения на 30 секунд со скоростью 10 кадров в секунду:

ffmpeg -loop 1 -i 'img-%03d.png' -r 10 -t 30 -vf format=yuv420p -y out.mp4

ffprobeсообщает следующие метаданные:

(edited for clarity)
Duration: 00:00:30.00, start: 0.000000, 
Video: h264 (High) yuv420p
1920x1080 [SAR 1:1 DAR 16:9], 20 kb/s, 10 fps

Эта суть имеет другой подходкоторый использует filter_complex. Хотя он не делает то же самое, его можно адаптировать для этой задачи.

Связанный контент