2016-07-14 25 views
1

Zum Bild auf Video-Overlay ich nächste Befehlffmpeg Overlay Bild nicht jedes Bild

ffmpeg -i video.mp4 -i pic.png -strict -2 -filter_complex 'overlay=10:main_h-overlay_h-10' result.mp4 

Aber wie ich es dauert ziemlich viel Zeit sehen können sogar kleine HD-Video zu verarbeiten. Ich möchte Overlay-Bild auf meinem Android-Gerät, also brauche ich ein paar Performance-Hacks.

Gibt es Befehle zum Überlagern von Bildern auf jedem 10-Frame, die für das menschliche Auge geeignet sind?

+0

Können Sie klären: Wie oft und wie lange jedes Mal? – Mulvya

+0

Zum Beispiel habe ich 2 Minuten Video bei 720p. Um auch ein kleines Png-Bild zu überlagern, braucht man viel Zeit (ca. 3 min), was für ein mobiles Gerät extrem viel ist. Zum Beispiel hat mein Video 10k Frames. Ich muss jeden Frame überlagern. Aber wenn ich ungefähr 10 Frames überspringen werde, werde ich diesen Prozess 10x schneller machen. –

Antwort

0

Sie können ein einfaches Bild-Overlay tun mit der folgenden Syntax:

ffmpeg -y 
    -i foo.mp4 -i foo.jpg -i 
    -filter_complex " 
     [0:v][1:v] overlay=25:25:enable='between(t,0.1,0.11)' [tmp]; 
     [tmp][1:v] overlay=25:25:enable='between(t,1.1,1.11)' [tmp]; 
     .... 
    " 
bar.mp4 

overlay=25:25 bedeutet, dass wir das Bild 25px nach links und 25 Pixel nach unten, ausgehend von der oberen linken Ecke positionieren wollen.

enable='between(t,0.1,0.11)' bedeutet, dass das Bild zwischen Sekunde 0.1 und 0.11 angezeigt werden soll.

+0

Ich sehe, ich fand diese Antwort auch auf Stackoverflow :) Aber ich brauche Befehl, Frames zu überspringen. –

+0

Wie kann ich diese Werte in Variablen setzen? Um dies zu wiederholen, um beispielsweise alle 0,5 Sekunden ein Bild anzuzeigen –