Fügen Sie mit ffmepg ein Bild unter dem Video hinzu

7

Ich möchte die grundlegende Verwendung von Wasserzeichen erweitern und unter das Video stellen. Das bedeutet. Ich habe Eingangsvideo 720x480 und Bild 720x20. Bei der Ausgabe möchte ich Video 720x500 haben, bei dem der Videoaspekt erhalten bleibt und oben positioniert wird und das Bild unten hinzugefügt wird.

Video eingeben

|--------------------------|
|                          |
|                          |
|                          |
|          720*480         |
|                          |
|                          |
|                          |
|--------------------------|

Eingabebild

|--------------------------|
|          720x20          |
|--------------------------|

Video ausgeben

|--------------------------|
|                          |
|                          |
|                          |
|          720*480         |
|                          |
|                          |
|                          |
|--------------------------|
|          720x20          |
|--------------------------|

Vielen Dank

Schovi
quelle
Können Sie ein Bild hochladen, um zu sehen, was Sie brauchen?
p2or
@poor - anders ausgedrückt, er sagt, er möchte das Bild an den unteren Rand des Videos anhängen. Die Ausgabe sollte also das gesamte Originalvideo mit dem Bild darunter sein. (Der obere Rand des Bildes würde direkt neben dem unteren Rand des Videos sein.)
AJ Henderson
1
Ich habe einige Visualisierungen hinzugefügt :)
Schovi

Antworten:

5

Ich denke, es ist wahrscheinlich einfacher, ein Hintergrundbild in voller Dimension (720 x 500 Pixel) mit Ihrem Video in ffmpeg zu kombinieren (zu stapeln), als dem Video die Fußzeile mit 20 Pixel hinzuzufügen. Sie können einfach das overlay filterdafür verwenden:

ffmpeg \
    -loop 1 -i 720x500.jpg \
    -i 720x480.mp4 \
    -filter_complex overlay=0:0 \
    -t 0:01.48 \ 
    out.m4v

Hinweis: In diesem Beispiel müssen Sie die Dauer Ihres Ausgabevideos manuell mit dem -tParameter einstellen .


Wenn Sie die Dauer nicht angeben möchten, können Sie das shortestFlag innerhalb des Filters verwenden, wenn Sie -loop 1als @LordNeckbeard verwenden, wie in den Kommentaren unten erwähnt:

ffmpeg \
    -loop 1 -i 720x500.jpg \
    -i 720x480.mp4 \
    -filter_complex "overlay=0:0:shortest=1" \
    out.m4v
p2or
quelle
1
Wenn Sie verwenden -loop 1, können Sie shortest=1in Ihrem Overlay-Filter wie in einstellen overlay=0:0:shortest=1.
Llogan
@ LordNeckbeard Danke für deine Ideen! Ich habe meine Antwort aktualisiert.
p2or
5

Verwenden Sie den vstack-Filter :

hstack

ffmpeg -i video.mp4 -i image.png -filter_complex vstack output.mp4

Wenn das Bild nicht die gleiche Breite wie das Video hat, ändern Sie die Größe mit dem Skalierungsfilter :

ffmpeg -i video.mp4 -i image.png -filter_complex "[1:v]scale=320:-1[bottom];[0:v][bottom]vstack" output.mp4
llogan
quelle