ffmpeg - Ein Video über ein anderes legen

ffmpeg - Ein Video über ein anderes legen

Ich möchte ein Video über ein anderes legen. Ich habe zwei Videos mit derselben Dauer.

Ziel ist, das obere Video etwas transparent zu machen, damit man sehen kann, was im Hintergrundvideo passiert.

Ich habe unten versuchtBefehl:

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";

Bei diesem Befehl stimmt das obere Video (hinsichtlich Höhe und Breite) nicht mit dem hinteren Video überein.

Verwirrung : Es besteht die Möglichkeit, dass das Hintergrundvideo nicht dieselbe Höhe und Breite hat wie das obere Video, weil es dynamisch dargestellt wird. Wie soll ich das in diesem Fall schaffen...!!!

Ich bin für jede Hilfe und jeden Vorschlag dankbar.

Antwort1

Der folgende Befehl passt die Größe des oberen Videos an das Basisvideo an und verleiht ihm außerdem Transparenz.

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

Das scale2refzweite Video wird so skaliert, dass es den Abmessungen des ersten entspricht. Dann colorchannelmixerwird der Alphakanal optimiert, um ihm 50 % Transparenz zu verleihen.

verwandte Informationen