Como criar uma sobreposição de jitter com ffmpeg? [fechadas]

0

Acabei de encontrar este vídeo no YouTube, onde há uma tela dividida com uma grade em movimento. Eu quero saber como criar uma tela dividida em movimento, assim como no vídeo, usando o ffmpeg.

Link para vídeo

Isso é o que eu quero alcançar:

Vocêparecemeinterpretarmal,eupesquiseiocódigodevídeoemumpresenteMeuproblemaéqueeunãoconheçoolooppngcomoessevídeo.

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

Eu tentei: loop -1 and overlay:shortest=1 , mas falhou

Você pode fazer o loop da sobreposição para mim?

    
por Passionato 13.11.2017 / 18:37

1 resposta

3

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.

    
por 13.11.2017 / 21:30

Tags