Was ist das ffmpeg-Filteräquivalent von "Automatische Ebenen" für Farben?

Wenn man sich die Dokumentation zu Filtern ansieht, scheint es einen Kurvenfilter zu geben , um die Farbe mit den folgenden Voreinstellungen zu manipulieren:

  • color_negativ
  • Kreuzprozess
  • dunkler
  • Kontrast erhöhen
  • Feuerzeug
  • linearer_Kontrast
  • mittlerer_kontrast
  • Negativ
  • starker_kontrast
  • Jahrgang

Leider erwähnt die Dokumentation nicht, was diese Voreinstellungen tun oder was ihre Parameter sind. Ich suche nach einer einfachen Option, um ein Video aufzunehmen und die Farben für alle Frames automatisch auszugleichen. Funktioniert eine dieser Voreinstellungen?

Antworten (1)

Hier sind die Details zu den Voreinstellungen:

[PRESET_COLOR_NEGATIVE] = {
    "0/1 0.129/1 0.466/0.498 0.725/0 1/0",
    "0/1 0.109/1 0.301/0.498 0.517/0 1/0",
    "0/1 0.098/1 0.235/0.498 0.423/0 1/0",
},
[PRESET_CROSS_PROCESS] = {
    "0.25/0.156 0.501/0.501 0.686/0.745",
    "0.25/0.188 0.38/0.501 0.745/0.815 1/0.815",
    "0.231/0.094 0.709/0.874",
},
[PRESET_DARKER]             = { .master = "0.5/0.4" },
[PRESET_INCREASE_CONTRAST]  = { .master = "0.149/0.066 0.831/0.905 0.905/0.98" },
[PRESET_LIGHTER]            = { .master = "0.4/0.5" },
[PRESET_LINEAR_CONTRAST]    = { .master = "0.305/0.286 0.694/0.713" },
[PRESET_MEDIUM_CONTRAST]    = { .master = "0.286/0.219 0.639/0.643" },
[PRESET_NEGATIVE]           = { .master = "0/1 1/0" },
[PRESET_STRONG_CONTRAST]    = { .master = "0.301/0.196 0.592/0.6 0.686/0.737" },
[PRESET_VINTAGE] = {
    "0/0.11 0.42/0.51 1/0.95",
    "0.50/0.48",
    "0/0.22 0.49/0.44 1/0.8",
}

Für jede Voreinstellung x/yordnet jedes Paar den Eingang xdem Ausgang zu y, wobei der Bereich 0-1. Wenn nicht gesetzt, setzt der Filter automatisch 0/0und 1/1dh Eingang Schwarz = Ausgang Schwarz und Eingang Weiß = Ausgang Weiß. Während 0/1dies bedeuten würde, dass die schwarzen Pixel der Eingabe in der Ausgabe auf weiß gesetzt werden. Wenn Sie mehrere Paare in Anführungszeichen haben, die durch Kommas getrennt sind, wird die Sequenz "R","G","B"zugeordnet. Die Interpolation zwischen den Punkten ist ein natürlicher kubischer Spline .


Für die automatische Nivellierung wäre eine grobe Methode die Verwendung des autolevelsUnterfilters des ppFilters.

ffmpeg -i input.mp4 -vf pp=al output.mp4

Dadurch wird die Leuchtdichte auf den vollen Bereich ausgedehnt.


Um die Pegel vor (und nach) jeder von Ihnen vorgenommenen Anpassung zu überprüfen, können Sie eine RGB-Parade für ein solches Bild erstellen

ffmpeg -i input.mp4 -vf "format=rgb24,waveform=c=7:d=parade,scale=1200x512" -vframes 1 frame1parade.png

Verwenden Sie für einen bestimmten Rahmen

ffmpeg -ss 12.4 -i input.mp4 -vf "format=rgb24,waveform=c=7:d=parade,scale=1200x512" -vframes 1 frameNparade.png