Ich versuche, mein Logo für die ersten 30 Sekunden in einem Video mit ffmpeg hinzuzufügen. Ich habe ein Video namens d1.mp4
und ein Logo namens logo.png
.
Wenn das Video gestartet wird, sollte sich das Wasserzeichen in der oberen linken oder oberen rechten Ecke des Videos befinden und nach 30 Sekunden verschwinden.
Können Sie mir bitte zeigen, wie man es hinzufügt?
ffmpeg -i d1.mp4 -i logo.png
zeigt sich dann? Bitte geben Sie einfach diesen Befehl ein und zeigen Sie uns, was die Ausgabe ist. Wenn Sie Fragen zu stellenffmpeg
, sollten Sie immer so viele Details wie möglich darüber angeben, welches Video- / Audiomaterial Sie haben, was Sie bereits ausprobiert haben und die vollständige Befehlszeilenausgabe von allem, was Sie versucht haben.Antworten:
Dies setzt voraus, dass das Logo ein einzelnes Standbild mit einem Alphakanal ist und Sie es über ein Video mit einer Bildrate von 30000/1001 (NTSC-Rate) legen möchten. Ändern Sie das
-framerate
, um es an Ihr Eingangsvideo anzupassen, falls es anders ist. Wenn Ihr Logo ein Video ist, lassen Sie es weg-framerate 30000/1001 -loop 1
. Wenn das Logo keinen Alphakanal hat, fügen Sie einen hinzu, indem Sie z . B.format=yuva420p,
unmittelbar zuvor einfügenfade
.Dadurch wird das Logo 30 Sekunden lang an der x, y-Position 10,10 angezeigt, gefolgt von einem 1-Sekunden-Ausblenden.
quelle
framerate
undloop
in diesem Fall erforderlich ist und nicht für eine einfache Überlagerung ohne Überblendfilter?-framerate
und-loop
für ein Standbild ist, dass das Ausblenden funktioniert. Wenn es nur ein einzelnes Bild gibt, kann es nicht über einen Zeitraum von 1 Sekunde ausgeblendet werden. Idealerweise sollte es die gleiche Bildrate wie das Video haben, damit die Überblendung so gleichmäßig wie möglich ist.Verwenden des
overlay
Videofilters zum Hinzufügen eines Logos zu einem Video:Um diesen Befehl zu verstehen, müssen Sie wissen, was ein Stream-Bezeichner ist, und das Lesen der Einführung in die FFmpeg-Filterung hilft.
[0:v]
bezieht sich auf den / die Videostreams des ersten Eingangs (video.mp4
) und[1:v]
auf den Videostream des zweiten Eingangs (logo.mp4
). So können Sie feststellen,overlay
welche Eingänge verwendet werden sollen. Sie können weglassen[0:v][1:v]
undoverlay
funktionieren weiterhin, es wird jedoch empfohlen, explizit zu sein und sich nicht auf möglicherweise unbekannte Standardeinstellungen zu verlassen.Standardmäßig wird das Logo oben links platziert.
Mit
-codec:a copy
wird das Audio kopiert . Dadurch wird das Audio einfach neu gemuxt, anstatt es neu zu codieren. Stellen Sie sich das als "Kopieren und Einfügen" des Audios vor.Logo verschieben
In diesem Beispiel wird das Logo um 10 Pixel nach rechts und um 10 Pixel nach unten verschoben:
In diesem Beispiel wird das Logo 10 Pixel von der rechten Seite und 10 Pixel nach unten verschoben:
main_w
bezieht sich auf die Breite des "Haupt" -Eingangs (Hintergrund oder[0:v]
) undoverlay_w
bezieht sich auf die Breite des "Overlay" -Eingangs (Logo oder[1:v]
). Im Beispiel kann dies also inoverlay=320-90-10:10
oder übersetzt werdenoverlay=220:10
.Timing der Überlagerung
Einige Filter können die Zeitleistenbearbeitung verarbeiten, sodass Sie mithilfe von arithmetischen Ausdrücken bestimmen können, wann ein Filter angewendet werden soll. Lesen Sie,
ffmpeg -filters
welche Filter die Timeline-Bearbeitung unterstützen.In diesem Beispiel wird das Logo bis 30 Sekunden lang angezeigt:
Wenn Sie das Logo ausblenden möchten, lesen Sie die Antwort von mark4o .
quelle
enable=not(between'(t,30,50)')
. Dadurch wird die Überlagerung jederzeit angezeigt, jedoch nicht mit einer Dauer von 30 bis 60 Sekunden.overlay
alles alleine zu verwenden, habe ich es getan, weil die Standardposition oben links genau das war, was ich wollte. (Also am Ende waren meine Flaggen einfachfilter_complex overlay
.)