Você precisa usar um filtro complexo:
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
Isso pressupõe que você tenha três vídeos de entrada ( input-1.mp4
a input-3.mp4
), que são scale
d neste exemplo apenas para levá-los às dimensões corretas para a grade. Eles são horizontalmente e verticalmente stack
ed um sobre o outro para obter um vídeo de saída de 1920 a 1080 marcado como stack
.
Agora você tem uma sobreposição transparente de grid.png
, cujo tamanho também deve ser 1920⨉1080. É claro que você tem que criar essa grade com um editor de imagens.
Essa grade será overlay
no topo da pilha, mas seu y
As coordenadas variam com base na saída de uma função sine . Você pode ajustar a velocidade do movimento alterando o parâmetro antes de n
(que é o número do quadro) e a amplitude alterando o parâmetro antes da função sin
.
Claro, se você quiser um movimento mais aleatório, você pode modificar adicionalmente a posição usando a função random
, por exemplo.