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 geq
Filter 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.