Я только что нашел это видео на YouTube, где есть разделенный экран с движущейся сеткой. Я хочу знать, как создать движущийся разделенный экран, как в видео, используя ffmpeg.

Ссылка на видео

Вот чего я хочу добиться:


Вы, кажется, неправильно меня поняли, я исследовал видеокод на этом. Моя проблема в том, что я не знаю петлю png, как это видео.

    ffmpeg -i video.mp4 -i nen.png  -filter_complex "overlay=x=0:y='if(gte(t,0), -w+(t)*800, 3)'" out.mp4

иллюстрация

Я пробовал:loop -1 and overlay:shortest=1 но не удалось

Можете ли вы сделать оверлей для меня?

1 ответ1

3

Вам нужно использовать сложный фильтр:

ffmpeg -f lavfi -i "\
movie=input-1.mp4,scale=960:540[v1]; \
movie=input-2.mp4,scale=960:540[v2]; \
movie=input-3.mp4,scale=1920:540[v3]; \
[v1][v2]hstack[hstack]; \
[hstack][v3]vstack[stack]; \
movie=grid.png[grid]; \
[stack][grid]overlay=y='5*sin(0.1*n)'[outv]" \
-map "[outv]" \
output.mp4

Это предполагает, что у вас есть три входных видео (от input-1.mp4 до input-3.mp4), которые в этом примере имеют scale d, чтобы получить их в нужных размерах для сетки. Они затем по горизонтали и по вертикали stack эд друг на друга , чтобы получить 1920⨉1080 вывода видео с наклейками , как stack

Теперь у вас есть прозрачный оверлей grid.png , размер которого также должен быть 1920⨉1080. Конечно, вы должны создать эту сетку самостоятельно с помощью какого-либо графического редактора.

Эта сетка будет overlay поверх стека, но ее координаты y будут варьироваться в зависимости от вывода функции синуса. Вы можете отрегулировать скорость движения, изменив параметр перед n (который является номером кадра), и амплитуду, изменив параметр перед функцией sin .

Конечно, если вы хотите более случайное движение, вы можете дополнительно изменить положение, например, с помощью random функции.

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