mit avc encodierte mp4 dateien untersuchen

  • Hallo!


    Ich suche eine Möglichkeit mit avc encodierte mp4 dateien zu untersuchen und mit dem unkomprimierten Original zu vergleichen. Also SSIM, PSNR und wenn möglich weitere objektive Messwerte.


    Habe mit avisynth und diversen Plugins wie SSIM und DGAVCIndex herumprobiert. Bekomme es aber nicht zum laufen.


    Reine h.264 files krieg ich mit DGAVCIndex abgespielt. Der Vergleich mit dem Original klappt allerdings nicht.


    Hoffe es kann mir jemand weiterhelfen! Vielleicht kennt ja jemand noch andere Möglichkeiten solche vergleichenden Tests durchzuführen.


    Besten Dank!!

  • :seher: - Huch, da war doch mal was:


    SSIM, VQMCalc, Compare und Subtract auf zwei Clips angewendet


    Aber bitte niemals vergessen: Künstliche Metriken sind bisher bestenfalls ein verzweifelter Versuch, die Fähigkeiten des menschlichen Gehirns in Ansätzen nachzuahmen, Unterschiede von erwarteten Idealvorstellungen zu bemerken. PSNR kann man bereits mit trivialen Beispielen unerwartete Ergebnisse produzieren lassen, mit SSIM ist dies mit genug Hintergrundwissen ebenfalls möglich.


    Das einzige zuverlässige Mittel, etwas so subjektives wie Qualität zu vergleichen, wäre nur ein Test mit möglichst vielen verschiedenen Teilnehmern.

  • Danke für die Antwort. Komm aber trotzdem nicht weiter.


    Ich beschreib mal mein Problem genauer:


    Ich habe unkomprimierte AVIs. Liegen als 1080p mit 29,970 fps vor.
    Diese möchte ich mit AVC und VC-1 encoden und vergleichen.


    Ich nutze Adobe Encore, weil ich bei keinem kostenfreien Encoder Datenraten bis 300MBit einstellen kann. Hab ich zumindest keinen gefunden. Ist aber erwünscht.


    Aber nun zum Hauptproblem. Die entstandenen mp4 Dateien hab ich versucht zu demuxen und mittels DGAVCIndex eine dga datei gemacht. Damit lies sich das mp4 über avisynth (avcsource) im virtualdub abspielen.


    Wenn ich allerdings die SSIM.dll nutzen möchte, meckert er, dass das Original und das mp4 nicht die gleiche Länge haben und deshalb nicht verglichen werden können.


    Was nun?

  • Im Notfall sollte es reichen, die beiden Clips mit Trim() auf die kleinere der beiden Längen zu verkürzen.


    Ich nenne die beiden Video-Clips mal "original" und "compressed"...


    PHP
    1. minframes = min(FrameCount(original), FrameCount(compressed))
    2. original = Trim(original, 0, minframes-1)
    3. compressed = Trim(compressed, 0, minframes-1)