gibt es eine Möglichkeit, die Textfarbe des Wasserzeichens bei Verwendung von FFMPEG dynamisch zu ändern, abhängig von der Hintergrundfarbe beim Aufzeichnen einer Videodatei?

gibt es eine Möglichkeit, die Textfarbe des Wasserzeichens bei Verwendung von FFMPEG dynamisch zu ändern, abhängig von der Hintergrundfarbe beim Aufzeichnen einer Videodatei?

Dieser Befehl im Eingabeaufforderungsfenster funktioniert einwandfrei und zeichnet den gesamten Bildschirm auf:

ffmpeg -f gdigrab -framerate 24 -i desktop -preset ultrafast -pix_fmt yuv420p out.mp4

Diese Eingabeaufforderung fügt in der Mitte des Bildschirms einen Wasserzeichentext in weißer Farbe hinzu:

ffmpeg -f gdigrab -framerate 24 -i desktop -vf "drawtext=fontfile=path/to/arial.ttf:text='All rights reserved to ...':fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2" -preset ultrafast -pix_fmt yuv420p out.mp4

das Problem besteht darin, dass der Wasserzeichentext weiß ist und ich ihn nur sehen kann, wenn die Fensterhintergrundfarbe schwarz ist, beispielsweise wenn ich das FFMPEG-Konsolenfenster in den Vordergrund hole:

Wasserzeichentext

Aber wenn ein Fenster mit weißem Hintergrund aufgezeichnet wird, kann der Text nicht gesehen werden, da er weiß ist.

Ich möchte die Eingabeaufforderung von ffmpeg aktualisieren, um sie irgendwie dynamisch zu gestalten, sodass bei einem schwarzen Hintergrundfenster der Wasserzeichentext in Weiß angezeigt wird und wenn ich dann ein Fenster mit weißem Hintergrund öffne, der Wasserzeichentext automatisch in Schwarz geändert wird.

dies ist der Befehl, den ich für den dynamischen Effekt ausprobiert habe, aber er hat nicht funktioniert. Ich habe Fehlermeldungen bekommen und dann so viele Versionen der Befehlszeile ausprobiert, aber nichts hat geholfen oder funktioniert.

ffmpeg -f gdigrab -framerate 24 -i desktop -filter_complex "[0:v]drawtext=text='Watermark Text':x=(w-text_w)/2:y=(h-text_h)/2:fontfile=arial.ttf:fontsize=24,format=rgba [txt];[txt]split=2 [bw][wc];[bw]lut=r=val*2 [b];[wc]lut=r=val*0.5+0.5:g=val*0.5+0.5:b=val*0.5+0.5 [wc];[wc][b]alphamerge [wm];[wm][0:v]overlay=10:10[outv]" -c:v libx264 -preset ultrafast -map "[outv]" out.mp4

und habe das auch versucht

ffmpeg -f gdigrab -framerate 24 -i desktop -filter_complex "[0:v]drawtext=text='Watermark Text':x=(w-text_w)/2:y=(h-text_h)/2:fontfile=Arial.ttf:fontsize=24,format=rgba [txt];[txt]split=2 [bw][wm];[bw][1:v]split=3 [b][g][r];[b]geq=r=0:g=0.5:b=0 [b];[g]geq=r=0:g=0:b=0.5 [g];[r]geq=r=0.5:g=0:b=0 [r];[wm][b][g][r]merge=3,format=rgba [watermark];[0:v][watermark]overlay=x=(W-w)/2:y=(H-h)/2" -map "[watermark]" -map 0:a? -c:v libx264 -c:a copy -preset ultrafast out.mp4

verwandte Informationen