Suche Programm zu Bestimmung des hellsten und dunkelsten Wertes eines Videos

  • Ich suche ein Programm welches mir .m2v Videos scannt und mir den dunkelsten und hellsten Wert ausgibt, damit ich so ein mögliches Leveling per Avisynth für das Video bestimmen kann.

  • Müsste ich damit nicht erst den ganzen Film durchlaufen lassen, damit er auf für mich sinnvolle Werte kommt? Das scannt doch sicher nicht automatisch das ganze Video.

    Und ist 16 da der dunkelste Wert? Ich komme jedenfalls nicht unter 16.

    2 Mal editiert, zuletzt von Menedas (26. September 2010 um 03:48)

  • Ah, es geht Dir nicht nur darum zu wissen ob der Input TV (16-235) oder PC (0-255) skaliert ist. :)
    ColorYUV guckt sich das Format des Videos an nicht die wirklich auftretenden Farben.
    Um die wirklich auftretenden Farben zu wissen müsste man aus der Quelle erst mal verlässlich wissen wie sie kodiert ist.
    1 ITU-R BT.709 I709
    4 FCC (almost the same as ITU-R BT.601) FCC
    5 ITU-R BT.470-2 (exactly the same as ITU-R BT.601)
    (recommendation BT.601 is an update BT.470-2) I470
    6 SMPTE 170M (exactly the same as ITU-R BT.601) S170
    7 SMPTE 240M (almost the same as ITU-R BT.709) S240
    dann mit ColorMatrix falls man ein anderes Format will die Farbenanpassen und danach erst analysieren,...

    Wenn Du wirklich den kleinsten und maximalen Farbwert eines Filmes wissen willst, müsstest Du den Stream decodieren (sicher gehen, dass dabei keine Farbverfälschungen auftreten, z.B. weil der Decoder ITU-R BT.601 erwartet, das Material aber ITU-R BT.709 ist) und dann wirklich jeden Pixel analysieren,...
    -> Wenn Du sowas wirklich willst würde ich empfehlen mal ffdshow genauer anzugucken, da kann man sich sowas eventuell anzeigen lassen. (Wüsste sonst aber spontan kein Tool was dies automatisch macht.)

    Cu Selur

  • Bisher hab ich versucht manuell ein möglichst dunkles Bild im Video zu finden und mir das dann in PS anzeigen lassen um mir dort dann alles markieren zu lassen was Schwarz ist. So habe ich dann die Levels so angepasst, bis erste Markierungen auch im Video erschienen. Arg blöde Idee? Also abgesehen davon, dass es recht umständlich ist ;)

  • Visuell darstellen lassen kann man es auch mit Histogram().

    Und dann gibt es noch die Laufzeit-Funktionen YPlaneMin() und YPlaneMax() - ist nur nicht ganz leicht, die zu benutzen, um sich Statistiken ausgeben zu lassen, die man anschließend auswerten kann. Mit WriteFile() kann man Text pro Frame in eine Datei schreiben lassen, während das Video einmal durchläuft (VirtualDub: Video - Scan for errors; File - Close); das könnte man dann wohl z.B. als CSV-Datei mit Excel auswerten.

  • Wenn WriteFile() eine Zeichenkette erwartet, dann muss man eventuell auch Funktionsergebnisse in Zahlenform erst mal in eine Zeichenkette umwandeln lassen, da müsste es entsprechende Funktionen geben - String() wahrscheinlich.

    Verwende am besten erst mal eine Zuweisung zu einer Variablen in einer einzelnen Quelltextzeile, dann kannst du diese Variable erst mal mit der Funktion Subtitle() ins Video einblenden lassen. Wenn du dir sicher bist, dass die String-Variable sinnvollen Inhalt hat, verwendest du WriteFile() statt Subtitle().

  • Also ich habs jetzt so versucht, kam aber nix bei raus:

    Subtitle(String(ColorYUV(analyze=true)))
    Subtitle(String(rangeinfoYV12()))

    Wahrscheinlich ist da meine Syntax falsch.

  • Das Ergebnis von ColorYUV ist ja auch nicht "ein Zahlenwert pro Frame", sondern "die Veränderung eines Clips" -- die kann man nicht in Zeichenketten umwandeln.

    Zitat

    Docs/english/corefilters/coloryuv.htm
    ...
    analyze can be true or false. This will print out color statistics on the screen.

  • Also ich glaub ich kann mich auch so arrangieren, dass ich einfach rangeinfoYV12() ans Ende eines Scriptes hänge und dann einfach dein Vorschlag mit (VirtualDub: Video - Scan for errors; File - Close). Dann sehe ich am Ende auch das Ergebnis, ohne den Umweg über ein zusätzliches Textfile. Danke für deine Hilfe.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!