ffmpeg - Sobrepõe um vídeo em outro

ffmpeg - Sobrepõe um vídeo em outro

Quero sobrepor um vídeo a outro. Tenho dois vídeos com a mesma duração.

O objetivo é tornar o vídeo superior pouco transparente para que se possa ver o que está acontecendo no vídeo de fundo.

Eu tentei abaixocomando:

String command="ffmpeg -y -i /sdcard/videokit/two.mp4 -i /sdcard/videokit/inone.mp4 -filter_complex [0:v][1:v]overlay=100:100:eof_action=pass[v] -map [v] /sdcard/videokit/output.mp4";

Neste comando, o vídeo superior não corresponde (no contexto de altura e largura) ao vídeo traseiro.

Confusão : Pode haver a possibilidade de que o vídeo de fundo não tenha a mesma altura e largura do vídeo superior, pois ele vem dinamicamente, nesse caso, como devo gerenciar..!!!

Qualquer ajuda ou sugestão seria apreciada.

Responder1

O comando abaixo redimensiona o vídeo superior para corresponder ao vídeo base e também lhe dá transparência.

ffmpeg -y -i /sdcard/videokit/two.mp4 -i /sdcard/videokit/inone.mp4 -filter_complex "[1:v][0:v]scale2ref[ua][b];[ua]setsar=1,format=yuva444p,colorchannelmixer=aa=0.5[u];[b][u]overlay=eof_action=pass[v]" -map [v] /sdcard/videokit/output.mp4

O scale2refredimensiona o segundo vídeo para corresponder às dimensões do primeiro. Em seguida, colorchannelmixerajusta o canal alfa para obter 50% de transparência.

informação relacionada