Mein Meta-Punkt ist, dass die EQ-Filter von FFMPEG sehr unterschiedliche Ergebnisse von den entsprechenden CSS-Filtern ergeben. Weiß jemand, warum dies passieren könnte?
Unter allen Softwareanbietern besteht kein einheitlicher Konsens darüber, wie Helligkeit, Kontrast und Sättigung funktionieren sollen.
Die CSS-Filter verfügen über genaue mathematische Definitionen, die vom W3C festgelegt werden. Sie müssen präzise sein, damit verschiedene Browser von verschiedenen Herstellern dasselbe gerenderte Bild anzeigen können. Die aktuelle Spezifikation für CSS-Filter ist hier: https://www.w3.org/TR/filter-effects-1/
Andererseits werden ffmpeg-Filter auf Ad-hoc-Basis von (sehr intelligenten) Ingenieuren implementiert und müssen keinem Standard entsprechen. Sie müssen lediglich aus Sicht der ffmpeg-Entwickler nützlich sein.
und wie kann ich sie dazu bringen, zusammenzupassen?
Ich gehe davon aus, dass der einzige Weg, um genau zu wissen, was ein ffmpeg-Filter tut, darin besteht, den Quellcode zu lesen (mit anderen Worten, der Quellcode ist die Spezifikation). Auf diese Weise können Sie Eingabeparameter bestimmen, die Ihnen das gleiche mathematische Ergebnis liefern wie die CSS-Filter. Oder vielleicht nicht.
Da ffmpeg-Filter keinem Standard entsprechen müssen, besteht das Risiko, dass ein zukünftiges ffmpeg-Update das Ergebnis ändert.
BEARBEITEN : Zu beachten ist auch, dass die numerischen Farbwerte in beiden Videodateien auch dann identisch sind, wenn sie abgespielt werden. Ein Grund ist, dass Metadaten über den Farbraum während der Verarbeitung verloren gingen oder geändert wurden, so dass sich die ffmpeg-Ausgabe in einem anderen Farbraum als das Originalvideo befindet, wodurch der Player die numerischen Farbwerte unterschiedlich interpretiert. Ein anderer Grund ist, wenn ein Spieler Farbraumkonvertierungen unterstützt, die der andere nicht unterstützt. Basierend auf den obigen Screenshots sieht es so aus, als würden sie von verschiedenen Spielern (einem Browser oder etwas anderem) betrachtet. Es ist am besten, beide Videos im selben Player anzuzeigen.