Automatisierte Screenshots/extrahierte Bilder von h264/mkv

  • Hallo zusammen,


    da im HD-Zeitalter meine normalen SD-Einstellungen für x264 (2-pass, --preset veryslow, --mixed-refs, --weightb etc.) zwar nach wie vor hervorragende Qualität liefern, allerdings selbst auf meinem Core i7 bei 1080p mit äußerst unpraktikablen ~2 bis 3 fps laufen, bin ich dabei mir neue persönliche Standard-Settings zu suchen, die einen guten Kompromiss aus Qualität, Dateigröße und Encodingdauer darstellen.


    Hierzu habe ich mir einen kurzen 1080p-Clip gebastelt, den ich mit diversen Settings durch x264 jage und anschließend in MKV muxe. Nun möchte ich aus den encodeten Dateien Einzelbilder (unkomprimiert als BMP oder verlustfrei als PNG) bestimmter, zuvor festgelegter Frames für einen direkten Vergleich mit dem Original haben.


    Der einzige Weg, der mir dazu momentan einfällt:


    MKV mit DGIndexNV indizieren => per AviSynth in VirtualDub laden => gewünschtes Frame anspringen (das können offenbar weder DGIndex noch alle mir bekannten Player so in der Form) => Strg+1 => Photoshop auf => Bild einfügen => als Bitmap speichern.


    Das funktioniert auch ganz hervorragend - dummerweise sitze ich bei dieser Vorgehensweise vermutlich noch nächstes Jahr dabei...


    Hat jemand einen Ansatz, diesen Prozess zu automatisieren?

  • Besten Dank für den Tip, klappt soweit ganz gut:



    Muss ich mir nur noch einen schönen "Gesamt-Workflow" zu überlegen.

  • Zitat von TheGenesis

    Darf man fragen, was du da alles reingepackt hast?


    Die "üblichen Verdächtigen": Szenen mit vielen schnellen Bewegungen/Details, Szenen mit Nebel/Rauch und einige ruhige Sequenzen mit größeren, unbewegten Flächen. Das habe ich jetzt einfach mal als meinen persönlichen, repräsentativen "Standard" festgelegt.


    Zitat von Chetwood

    Hab mich schon immer gewundert, wie man mit Standbildern die Effizienz der Kodierung von Bewegtbildern einschätzen will ;)


    Indem man sich bewusst ist, dass ein Bewegtbild aus einer Anreihung von Standbildern besteht. :)


    Sagen wir so: Qualitative Bewertungen von Videos sind grundsätzlich subjektiv - zwar lässt sich mit SSIM, PSNR oder ähnlichem auch ein objektiver Vergleich anstellen, ein solcher "synthetischer" Wert muss allerdings noch lange nichts darüber aussagen, wie Person w mit Sehstärke x im Abstand y vor Gerät z die Qualität wahrnimmt.


    Ein direkter Vergleich zweier Standbilder des gleichen Frames ist zunächst mal deutlich einfacher und präziser als zwei Videos nach- oder nebeneinander zu betrachten - jedes Bild im PAL-Video wird nur 0,04 Sekunden angezeigt (bei einem direkten Vergleich an zwei verschiedenen Stellen auf einem oder zwei Wiedergabegerät/en, bei einem aufeinanderfolgenden Vergleich in einem zeitlichen Abstand), meine Standbilder wechseln direkt zwischen Original und Encode an der selben Stelle auf dem Monitor in einem per Mausklick frei wählbaren Zeitraum.


    Ob man die Unterschiede bzw. den Qualitäts-/Detail-Verlust und die ggf. vorhandenen, sichtbaren Makroblock-Grenzen beim Abspielen tatsächlich als so signifikant wahrnimmt wie bei einem Vergleich der Einzelbilder steht auf einem anderen Blatt. CRF und diverse andere Settings/Features moderner Videokompressions-Algorithmen setzen ja beispielsweise darauf, Verluste psychovisuell möglichst zu "verstecken", z.B. in schnell wechselnden Bildfolgen mit viel Bewegung, wo sie dem Betrachter möglichst kaum bis überhaupt nicht auffallen. Habe ich mir nun zufällig ein solches Frame herausgepickt, sieht das Resultat als Standbild-Vergleich möglicherweise schlecht aus, obwohl man den Unterschied im laufenden Video deutlich weniger bis überhaupt nicht wahrnimmt.


    Andersherum kann ich mir kaum vorstellen, dass ich ein abgespieltes Video als qualitativ schlechter empfinde als den direkten Vergleich der einzelnen Frames. Natürlich sollte man die Videos auch nochmal "laufend" vergleichen, allerdings werden Unterschiede/Verluste zwischen den Videos bei einem Standbild-Vergleich tendenziell immer signifikanter hervortreten. Sprich: Um so weniger Unterschiede zwischen den einzelnen Frames ich erkenne, um so näher bin ich am Original - mein subjektiver Qualitätseindruck des abgespielten Videos ist möglicherweise besser, dürfte aber kaum schlechter sein. Das ist aus meiner Sicht die "objektivste Subjektivität".

  • Ich glaube, wir werden Freunde :cheers:


    Ganz so weit treibe ich das zwar nicht, aber ich möchte dir dazu ein prima tool empfehlen ... dann braucht man nicht unbedingt jedes einzelne Frame zu vergleichen ;)


    Ich finde leider den Link nicht mehr im Internet ... das Teil nennt sich VideoCheck0.4 und ist nichmal 6 MB groß ... kann ich dir zuschicken, wenn du Interesse hast.


    Das Ding ist super simpel ... starten ... Dateiöffnendialog für 1stes Video ... Dateiöffnendialog für 2tes Video ... fertig.
    Beide Videos werden jetzt synchron (ohne Ton -> gut, weil keine Ablenkung) abgespielt.
    Oben links im Bild erscheint ein kleines Kästchen, das signalisiert, welches der beiden Videos gerade betrachtet wird (Rot=1stes Video, Blau=zweites)
    Jetzt, während es läuft, kann man prima mit einem einfachen Mausklick zwischen den beiden hin und herschalten und wenn man will, zu jeder zeit, mit einem kurzen Druck auf die Space-Taste das ganze pausieren.


    Das hat bei mir schon zu wahren klick-origien geführt, aber da kann man genial mit vergleichen.


    Gruß
    Thom

  • Dann bist du aber durch das Wissen beeinflusst, welches der beiden du gerade siehst, und deine Vorurteile fließen unterbewusst in deine Bewertung ein.


    Statistisch gefestigt sind ABX-Tests, bei denen möglichst viele Betrachter mehrmals das Original und die Kopie sehen, und beim jeweils dritten Mal nicht wissen, ob das Original oder die Kopie gezeigt wird. Je häufiger die Erkennung der Kopie korrekt ist, umso deutlicher muss wohl der Unterschied sein. Und je mehr Testpersonen daran teilnehmen, umso zuverlässiger kann man das Ergebnis verallgemeinern. Bist du der einzige Teilnehmer, erfährst du also nur etwas über deine persönlichen Vorlieben (oder die Qualität deiner Sinnesorgane...).

  • Jupp ... wie recht du hast ... aber wenn man nach einem halbstündigen Vergleichsmarathon mal 'ne Pause von ein paar Stunden einlegt, geht das wieder ... grins ... da fällt mir glatt ne Analogie ein ... mit der Frau ins Douglas und aus 10 Parfums das beste finden ... huaa ... da geb ich nach dem 4ten riechen auch keine Wertung mehr ab.


    Das ich der einzige bin, der das "testet" ist für mich nicht ganz so tragisch, weil die leute, die das Ergebnis nach dem encoden zu sehen bekommen i.d.R. meine Verwandten sind und die sind nicht so "geschädigt" wie ich ... die sehen die Makroblöcke erst dann, wenn der Fernseher plötzlich eine schwarze Umrandung bekommt :anonymous:


    Die Qualität meiner Sinnesorgane ist (noch) gut ... wer weiss ... vielleicht halte ich ja unterbewußt an meiner Parameterliste fest, weil ich mir in nicht allzu ferner Zukunft nicht mehr zutraue, eine subjektiv-objektive Bewertung fällen zu können ;)


    Aber stimmt schon, für einen globalen Ansatz muss man viele Leute anonyme Testsequenzen bewerten lassen ... aber wie und wer entscheidet eigentlich, ob ein "Tester" überhaupt "qualifiziert" ist, ein Urteil über so eine Sequenz fällen zu können?


    Ich finde alleine das schon schwierig ... ich selbst z.B. würde mir niemals anmaßen, ein verwertbares Urteil über den Klang einer HiFi-Anlage zu geben, weil ich dafür einfach keine "Ohren" habe ... mhmmm ... und wie machen die jungs vom x264 das? ... über die Masse?

  • Verrückt ... vor ein paar Wochen hast du noch behauptet, das könne man via Google finden. Weg. Warum sollte ^ diese Kopie die letzte sein?!
    __


    Ah, ".exe" weglassen, und da kommt er zum Vorschein:


    Utility to compare different encodings (im doom9-Forum)


    Eine halbe Stunde verzweifelt gesucht, und dann 2 Minuten nach dem Erstellen dieses Beitrags doch entdeckt. Manchmal hab ich Angst vor mir selber.