
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).
- 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
Wenn ich den obigen Befehl verwende, funktioniert es einwandfrei.
- 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
- Hauptvideo (aus
INPUT
Ordner) und Videobackground.mp4
haben 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"