it-swarm.com.de

Compare you two videodateien, to the best quality to detect

Angenommen, ich habe dasselbe Videomaterial in zwei (oder mehr) Dateien codiert. Ich möchte ein Hilfsprogramm ausführen, das darauf hinweist, welche Datei von "bester" Qualität ist. "Grundsätzlich" bedeutet, dass ich einen Bericht erhalten möchte, in dem verschiedene Aspekte (z. B. Videoauflösung, Videobitrate, Audioabtastrate, Audiobitrate usw. usw.) nacheinander verglichen werden, und dann eine ganzzahlige Punktzahl, die alle Aspekte berücksichtigt von ihnen.

Hier geht es um die Funktionalität, aber damit dieses Dienstprogramm tatsächlich verwendet werden kann, sollte es Open Source und Befehlszeile sein.

28
pfalcon

Ich arbeite in der Videoqualitätsforschung und es ist schwierig, Ihre Frage einfach zu beantworten. Was Sie wollen, ist ein Programm, das Ihnen einen Mean Opinion Score (MOS) eines Videos gibt, dh eine Zahl zwischen 1 und 5 oder zwischen 0 und 100, was entspricht auf die vom Menschen wahrgenommene Qualität.

Warum kann man Bitrate/Auflösung/etc. Nicht einfach vergleichen?.

Allein der Vergleich der Videoauflösung sagt noch nichts über die Qualität aus. In der Tat kann es völlig irreführend sein. Ein 1080p-Movie-Rip mit einer Größe von 700 MB sieht möglicherweise schlechter aus als ein 720p-Rip mit einer Größe von 700 MB, da bei ersteren die Bitrate zu niedrig ist, wodurch alle Arten von Komprimierungsartefakten auftreten.

Gleiches gilt für den Vergleich der Bitrate bei ähnlichen Frame-Größen, da verschiedene Encoder tatsächlich eine bessere Qualität bei geringerer Bitrate liefern können oder umgekehrt. Beispielsweise sieht ein mit XviD erstellter 720p-Rip mit 700 MB schlechter aus als ein mit x264 erstellter Rip mit 700 MB, da letzterer wesentlich effizienter ist.

Sie müssten auch definieren, wie sich eine endgültige "ganzzahlige Bewertung" (MOS) aus den einzelnen Qualitätsfaktoren zusammensetzt. Dies hängt in hohem Maße von verschiedenen Dingen ab, einschließlich, aber nicht beschränkt auf:

  • die Art von Videos, die Sie vergleichen (Cartoons, Filme, Nachrichten usw.)
  • ihre Länge
  • ihre Zuschauer
  • ihre ursprüngliche Rahmengröße
  • ihre ursprüngliche "Qualität", bevor sie codiert wurden

Wir reden nicht einmal darüber, wie Menschen die Videos wahrnehmen würden. Nehmen wir an, Sie haben einen Freund, der sich Filme ansieht, weil er oder sie gestochen scharfe Details und eine hohe Bewegungsauflösung mag. Sie wären viel kritischer, wenn sie einen Rip mit geringer Qualität sehen würden, als ein Freund, der sich nur Filme für ihren Inhalt ansieht . Sie würden sich wahrscheinlich nicht so sehr für die Qualität interessieren, solange der Film lustig oder unterhaltsam ist.

Es gibt verschiedene Arten von Videoqualitätsmetriken!

Lassen Sie mich Ihnen eine Liste der Dinge geben, die meiner Meinung nach heute am häufigsten für die grundlegende Bewertung der Videoqualität verwendet werden. Es gibt mehrere Videoqualitätsmetriken, die klassifiziert werden können, anhand welcher Art von Informationen die Qualität bestimmt wird. Grundsätzlich und ganz einfach unterscheidet man zwischen:

  • Keine Referenzmetriken - Sie haben nur ein Video als Eingabe und geben einen Qualitätsfaktor aus. In Ihrem Fall suchen Sie nach einer No-Reference-Metrik , da Sie häufig nicht einmal das Originalvideo haben. Eine solche Metrik nimmt ein Video auf und gibt einen Qualitätsfaktor aus. Hier sind einige Beispiele von Problemen, die eine NR-Metrik erkennen wird (z. B. Unschärfe).

  • Vollreferenz-Metriken - Sie haben zwei Eingänge, wobei einer das ursprüngliche Eingangsvideo und der andere das codierte Video ist. Sie können beispielsweise einen DVD-Film aufnehmen, dann zwei Rips daraus erstellen und anhand einer vollständigen Referenzmetrik den Qualitätsverlust zwischen dem ursprünglichen DVD-Film (d. H. Dem MPEG-2-Video auf der Disc) und Ihren Rips abschätzen. Die Berechnung dauert lange, ist aber genauer.

Die obigen Metriken beziehen sich auf die Video-Codierungsqualität, aber es gibt auch Metriken, die Probleme wie anfängliche Ladezeiten und Verzögerungsereignisse beim Streamen von Videos beinhalten (z. B. ITU-T S.1203 ). .

Welche Software kann ich verwenden?

Hier ist eine Liste gebrauchsfertiger Tools, mit denen Sie einige Metriken testen können (einige sind nur für Windows):

Welche Metriken gibt es nun?

PSNR, PSNR-HVS und PSNR-HVS-M

Für den Anfang ist PSNR (Spitzensignal-Rausch-Verhältnis) eine sehr einfach zu verwendende, aber etwas schlechte Methode zur Beurteilung der Videoqualität. Es funktioniert zwar für die meisten Anwendungen relativ gut, gibt jedoch keine gute Einschätzung darüber, wie Menschen die Qualität wahrnehmen würden.

PSNR kann Bild für Bild berechnet werden, und dann würden Sie beispielsweise das PSNR einer ganzen Videosequenz mitteln, um die endgültige Punktzahl zu erhalten. Höhere PSNR ist besser.

PSNR-HVS und PSNR-HVS-M sind Erweiterungen von PSNR, die versuchen, die visuelle Wahrnehmung des Menschen zu emulieren. Sie sollten daher genauer sein. VQMT und MSU können PSNR, PSNR-HVS und PSNR-HVS-M zwischen zwei berechnen Videos.

SSIM, MS-SSIM

Strukturelle Ähnlichkeit (SSIM) ist so einfach zu berechnen wie PSNR und liefert genauere Ergebnisse, jedoch immer noch Frame für Frame. Sie finden einige Implementierungen unter dem Wikipedia-Link, oder Sie können VQMT oder MSU verwenden. Diese Tools umfassen auch MS-SSIM, das bessere (d. H. Repräsentativere) Ergebnisse als SSIM liefert, sowie einige andere Derivate.

Die Ergebnisse sollten ähnlich wie bei PSNR sein. Auch hier müssen Sie einen Verweis auf ein verarbeitetes Video vergleichen, damit dies funktioniert. Beide Videos sollten dieselbe Größe haben.

VMAF

Video Multi-Method Assessment Fusion von Netflix ist eine Reihe von Tools zur Berechnung der Videoqualität auf der Grundlage einiger vorhandener Metriken, die dann durch maschinelle Lernmethoden zu einer endgültigen Punktzahl zusammengeführt werden 0 und 100. Netflix hat das Ganze hier erklärt :

[VMAF] sagt subjektive Qualität voraus, indem es mehrere elementare Qualitätsmetriken kombiniert. Das Grundprinzip ist, dass jede elementare Metrik ihre eigenen Stärken und Schwächen in Bezug auf die Eigenschaften des Quellinhalts, die Art der Artefakte und den Grad der Verzerrung haben kann. Durch 'Zusammenführen' elementarer Metriken zu einer endgültigen Metrik unter Verwendung eines Algorithmus zum maschinellen Lernen - in unserem Fall eines SVM-Regressors (Support Vector Machine) - der jeder elementaren Metrik eine Gewichtung zuweist, kann die endgültige Metrik alle Stärken der einzelnen Metriken bewahren und liefern eine genauere Endnote.

Sie können auch ffmpeg verwenden, um die VMAF-Werte zu berechnen.

VQM

Die Video Quality Metric wurde in der Video Quality Experts Group (VQEG) validiert und ist eine sehr gute Referenzalgorithmus. Sie können VQM kostenlos herunterladen oder die Implementierung von MSU verwenden.

Wenn Sie sich registrieren und herunterladen, möchten Sie das NTIA General Model oder das Video Quality Model mit variabler Bildverzögerung verwenden.

Andere Metriken

  • PEVQ ist eine standardisierte Vollreferenzmetrik nach ITU-T J.246. Es zielt auf Multimedia-Signale ab, aber nicht auf HD-Videos.
  • VQuad-HD ist eine weitere als ITU-T J.341 standardisierte Vollreferenzmetrik. Da es neuer ist, ist es besser für HD-Videos geeignet.

Bei beiden handelt es sich um kommerzielle Lösungen, für die Sie keine Software zum Herunterladen finden.

Es gibt auch einige ITU-Standards für Nichtreferenzmetriken, wie z. B. ITU-T S.1201 und ITU-T S.1202 , die mit Parametern aus dem Bitstream für IPTV-Streaming arbeiten. ITU-T S.1203 kann für Fälle von adaptivem Streaming verwendet werden.


Zusammenfassung

Wenn Sie nur einfache objektiv messbare Kriterien vergleichen möchten, wie:

  • Rahmengröße
  • Bitrate
  • Bilder pro Sekunde
  • Video Auflösung

… Ein einfacher Aufruf von ffmpeg -i sollte Ihnen alle Details geben, die Sie zu Beginn benötigen. Schauen Sie sich auch die Option -vstats an. Sie können dies dann in einer Tabelle zusammenfassen. Beachten Sie, dass x264 beispielsweise beim Codieren von Videos Dinge wie PSNR direkt in einer Datei protokolliert, wenn dies erforderlich ist, sodass Sie diese Werte später verwenden können.

Was das Abwägen dieser Kriterien angeht, sollten Sie wahrscheinlich die Bitrate betonen - aber nur, wenn Sie wissen, dass der Codec derselbe ist. Man kann allgemein sagen, dass bei Verwendung von x264 bei beiden Videos die höhere Bitrate besser ist. Noch allgemeiner sollten Sie eine niedrigere Auflösung wählen, wenn Sie zwei Videos mit derselben Bitrate haben, da die Verschlechterung aufgrund von Upscaling nicht so schlimm ist wie die Verschlechterung aufgrund niedriger Bitrate.

Der Vergleich verschiedener Codecs nach ihrer Bitrate ist nicht möglich , es sei denn, Sie wissen mehr über den Inhalt und die einzelnen Codierungseinstellungen. Die Bildrate ist ebenfalls sehr subjektiv und sollte in Ihre Messungen einbezogen werden, wenn sie deutlich unter 25 Hz liegt.

Um zusammenzufassen, betonen Sie die Bitrate stark, wenn es das einzige ist, was Sie haben. Vergiss nicht auch deine Augen zu benutzen :)

83
slhck

Mir ist kein Tool bekannt, mit dem Sie eine endgültige Empfehlung oder Bewertung erhalten. Mit FFmpeg können Sie jedoch alle in der Frage aufgeführten Details ausgeben .

In der Befehlszeile listet ffmpeg -i die Informationen aus dem Video auf. Von dort aus können Sie ein Skript schreiben, um die Informationen zu analysieren und nach Bedarf zu gewichten.

1
jhulst