Überlagern Sie ein Bild mit einer Deckkrafteinstellung in Ffmpeg

Überlagern Sie ein Bild mit einer Deckkrafteinstellung in Ffmpeg
  • Ich möchte ein Bild mit einer Opazitätseinstellung überlagern

  • Ich weiß, wie man ein Bild über ein Video legt, aber ich verstehe nicht, wie man die Deckkraft einstellt. Ich kann meinem Video problemlos ein Wasserzeichen hinzufügen, aber dieses Wasserzeichen hat eine Deckkraft von 100 %:

  • Aber wie erreiche ich, dass die Bilddatei eine Deckkraft von 50 % aufweist?

    Beispiel: ffmpeg -i in.mp4 -i image.png -af "pan=stereo|c0<c0+c2|c1<c1+c3,aeval=val(0)|val(1),volume=1.6" -vf "opacity=0.5" out.mp4

[AVFilterGraph @ 0000000000316dc0] Kein solcher Filter: „Opacity“. Fehler beim Öffnen der Filter!

Antwort1

Verwenden Sie den folgenden Befehl.

ffmpeg -i in.mp4 -i image.png \
-af "pan=stereo|c0<c0+c2|c1<c1+c3,aeval=val(0)|val(1),volume=1.6" \
-filter_complex "[1]geq=r='r(X,Y)':a='0.5*alpha(X,Y)'[a];[0][a]overlay" out.mp4

Dadurch a='0.5*alpha(X,Y)'wird das Alpha, also die Deckkraft, festgelegt.

Der geqFilter erkennt nicht automatisch, ob der Eingang RGB oder YUV ist, sondern orientiert sich am Vorhandensein eines Ausdrucks einer der Nicht-Alpha-Ebenen, sodass eine davon angegeben werden muss. Ich habe einen Ausdruck für die R-Ebene angegeben und ihn auf Identität gesetzt, sodass er nicht geändert wird.

verwandte Informationen