Video überlagert ein anderes falsch - Hintergrund liegt über der Überlagerung

Video überlagert ein anderes falsch - Hintergrund liegt über der Überlagerung

Ich bin ein neuer Benutzer von FFmpeg und möchte mit einem Befehl ein Logo in zwei Videos einfügen (ein Video überlagert das andere).

  1. FFmpeg-Befehl (ok):
ffmpeg -stream_loop -1 -i background1080p.mp4 -i input1080p.mp4 -i
logo.png -filter_complex
"[1]scale=1280:720[inner];[0][inner]overlay=70:70:shortest=1[vid];
[vid][2]overlay=10:10:enable='not(between(t\,10\,15))'[out]" -map
"[out]" -map 0:a -c:a copy -y -shortest output.mp4

Gutes Ergebnisvideo Wenn ich den obigen Befehl verwende, funktioniert es einwandfrei.

  1. FFmpeg-Befehlsfehler

Wenn ich es jedoch auf die folgende Befehlszeile anwende, erhalte ich eine Fehlermeldung:

@ECHO OFF
Setlocal EnableDelayedExpansion
set INPUT=D:\Shorts\code\INPUT
set OUTPUT=D:\Shorts\code\OUTPUT

:: encode video:

for %%a in ("%INPUT%\*.*") DO ffmpeg -i "%%a" -stream_loop -1 -i background.mp4 -i logo.png -filter_complex "[1]scale=1280:720[inner];[0][inner]overlay=70:70:shortest=1[vid]; [vid][2]overlay=10:10:enable='not(between(t\,10\,15))'[out]" -map "[out]" -map 0:a -c:a copy -shortest "%output%\%%~na_%%03d.mp4"

pause

Falsches Overlay-Ergebnis

  • Hauptvideo (aus INPUTOrdner) und Video background.mp4haben ihre Rollen vertauscht und was das Overlay sein soll, ist der Hintergrund.

Bitte helfen Sie mir, den Fehler zu beheben

Antwort1

Vertauschen Sie die Reihenfolge der ersten beiden Eingänge, d. h.-stream_loop -1 -i background.mp4 -i "%%a"

verwandte Informationen