FFMPEG bietet ein paar dürftig dokumentierte Effekte, sogenannte vhooks. Einer davon ist imlib2.so. Zwar sind die vhooks zu nicht viel nütze, werden auch gar nicht mehr weiter entwickelt und sind in der Anwendung gräßlich kompliziert. Einen lustigen Effekt möchte ich euch aber nicht vorenthalten: eine Schrift, die etwas zeitverzögert übers Bild huscht und dabei langsam transparent wird.
ffmpeg -i input.flv -vhook '/usr/lib/vhook/imlib2.so -c white -x 250 -y H+(-1.8*N+80) -t Hallo! -A max(0,255-exp(N/16))' -sameq -acodec copy output.flv
Ja, das ist eine mords Codewurst.
Zuvor muss in der Shell noch die Variable FONTPATH gesetzt und exportiert werden, falls sie nicht gesetzt ist:
FONTPATH="/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/lib/fonts/"
export FONTPATH
Sonst findet ffmpeg die Schriften nicht. Obiger Ordner ist nur ein Beispiel, dort liegt bei mir zufällig die Schrift, die ffmpeg per default verwendet. Zwar kann das noch mit -f gesetzt werden, aber der Befehl ist auch so schon lang genug.
Jetzt aber im Detail:
/usr/lib/vhook/imlib2.so Pfad zum Hook muss absolut sein
-c white Schriftfarbe weiss
-x 250 x-Koordinaten der Schrift
-y H+(-1.8*N+80)
-y y-Koordinaten der Schrift
H+ Höhe des Frames + => Beginn unten, außerhalb des Filmes
-1.8*N Geschwindigkeit der Bewegung (- => aufwärts, größere Zahl => schneller)
+80 Beginn bei Frame 80
-t Hallo! Text (darf keine Leerzeichen enthalten!)
-A max(0,255-exp(N/16))
-A Tranparenz (der Schrift)
0,255 von voll sichtbar bis voll transparent
-exp(N/16) ... keine Ahnung (kleinere Zahl => schneller)
Kein Wunder, dass sich die vhooks nie wirklich durchgesetzt haben
Was an offizieller Dokumentation für vhooks zur Verfügung steht, findet ihr auf
windforce.ellil.net/d/ffmpeg/hooks.html