| Brauchbares Analysetool für AVI-Dateien?
Frage von Thomas Henkel:
Hi!
Ich suche ein Programm, das AVI-Dateien (;vornehmlich DivX und XVid) auf Fehler untersucht. Ich habe bisher mangels mir bekannter Alternativen die "Scan Video Stream for errors"-Funktion von VirtualDub verwendet, manchmal auch die MP3/Freeze-Version. Leider zeigen beide Analysefunktionen Schwächen in der Erkennung von Bildfehlern, Dropped Frames oder sonstigen Fehlern im Datenstrom. Sprich: Manche Fehler werden einfach nicht erkannt, obwohl sie beim Abspielen ganz offensichtlich Probleme machen. Da frage ich mich, warum ein Codec beim Decodieren diese Fehler findet, VirtualDub aber nicht, obwohl es bei manchen Dateien eine halbe Stunde und mehr mit der "Analyse" beschäftigt ist?
Vor kurzem habe ich noch den DivX-DRF-Analyzer entdeckt. Das Programm ist offenbar wesentlich zuverlässiger in der Erkennung fehlerhafter Frames und um Größenordnungen schneller als VirtualDub. Großes Manko ist aber die unübersichtliche Darstellung der Ergebnisse. Die grafische Analyse sieht zwar hübsch bunt aus, aber wenn man einzelne Bildfehler lokalisieren will, um sie sich einfach mal live anzusehen, muss man sich von Hand durch den "kilometerlangen" Analyse-Graphen wurschteln, um an die Frame-Nummern zu kommen. Die Zusammenfassung zeigt nur an, *ob* es Dropped Frames gibt, aber nicht, *wo* genau sich diese befinden. Exportieren kann man den Report nur in einem selbstgebastelten Binärformat, mit dem man nichts sinnvolles anfangen kann.
Frage: Gibt es ein Tool, das zuverlässig Bild- und Dateifehler, ggf.auch Tonfehler in Video-Dateien erkennt und das eine einfache Liste mit den fehlerhaft decodierten Frames erzeugt? Das würde mir jedenfalls völlig reichen.
Tom
Antwort von Heiko Nocon:
Thomas Henkel wrote:
>Ich suche ein Programm, das AVI-Dateien (;vornehmlich DivX und XVid) auf >Fehler untersucht. Ich habe bisher mangels mir bekannter Alternativen die >"Scan Video Stream for errors"-Funktion von VirtualDub verwendet, manchmal >auch die MP3/Freeze-Version. Leider zeigen beide Analysefunktionen >Schwächen in der Erkennung von Bildfehlern, Dropped Frames oder sonstigen >Fehlern im Datenstrom. Sprich: Manche Fehler werden einfach nicht erkannt, >obwohl sie beim Abspielen ganz offensichtlich Probleme machen. Da frage ich >mich, warum ein Codec beim Decodieren diese Fehler findet, VirtualDub aber >nicht, obwohl es bei manchen Dateien eine halbe Stunde und mehr mit der >"Analyse" beschäftigt ist?
VirtualDub selber beschäftigt sich nur insofern mit der Datei, als das es die Formalitäten des Containers prüft, also ob es eine vollständig gültige Avi-Datei ist.
Bezüglich des Inhaltes macht VD nichts anderes, als ihn (;so schnell es geht) abzuspielen und dabei die vom Decoder zurückgemeldeten Ergebnisse auszuwerten. Meldet der Codec "0" zurück (;%OK) ist das Frame für VD ok, auch wenn der Codec massive Probleme hatte und nur bunte Klötzchen zustande bringt. Wenn er das nicht als Fehler zurückmeldet, kann VD keinen Fehler erkennen. So einfach ist das.
Dropped frames sind übrigens sowieso keine Fehler, sondern im Gegenteil ein Mittel, mit dem ein Encoder aus fehlerbehafteten/unvollständigen Eingangsdaten doch noch einen gültigen Datenstrom herstellen kann. Bei einigen Codecs werden sie sogar im Rahmen ihrer regulären Arbeitsweise eingesetzt.
Wenn also irgendein Abspielprogramm Probleme durch das Vorhandensein von dropped frames bekommt, implementiert es schlicht den Avi-Standard falsch. >Frage: Gibt es ein Tool, das zuverlässig Bild- und Dateifehler, ggf.auch >Tonfehler in Video-Dateien erkennt
Bildfehler: nein Dateifehler: ja Tonfehler: nein
Antwort von Frank Derlin:
"Thomas Henkel" schrieb... > Ich suche ein Programm, das AVI-Dateien (;vornehmlich DivX und XVid) auf > Fehler untersucht. Ich habe bisher mangels mir bekannter Alternativen die > "Scan Video Stream for errors"-Funktion von VirtualDub verwendet, manchmal > auch die MP3/Freeze-Version. Leider zeigen beide Analysefunktionen > Schwächen in der Erkennung von Bildfehlern, Dropped Frames oder sonstigen > Fehlern im Datenstrom. Sprich: Manche Fehler werden einfach nicht erkannt,
Zitat: http://www.virtualdub.org/virtualdub kb | Scan for Errors is vulnerable to error concealment The error mode for | the video stream must be set to "report all errors" for the Scan for | Errors command to work. Note that this option also relies on the video | codec correctly detecting corruption and reporting an error back safely; | this is not always implemented or possible depending on the error.
Für Drops ist kein Scannen notwendig. Es reicht ein "Next drop frame" im Edit-Menü.
> obwohl sie beim Abspielen ganz offensichtlich Probleme machen. Da frage ich > mich, warum ein Codec beim Decodieren diese Fehler findet, VirtualDub aber > nicht, obwohl es bei manchen Dateien eine halbe Stunde und mehr mit der > "Analyse" beschäftigt ist? [snip]
VirtualDub kann uncompressed, MJPG und MPEG1 selbst lesen. Für alles Andere ist VD auf Codecs und deren Angaben angewiesen.
Ein Beispiel. Eine defekte VCD. Viele bunte Klötzchen. Daraus wird ein neues AVI erstellt. Wie sollte jetzt ein Programm irgendeinen Fehler erkennen können?
> Frage: Gibt es ein Tool, das zuverlässig Bild- und Dateifehler, ggf.auch > Tonfehler in Video-Dateien erkennt und das eine einfache Liste mit den > fehlerhaft decodierten Frames erzeugt? Das würde mir jedenfalls völlig > reichen.
Zuverlässig? VirtualDubMod hat eine etwas erweiterte Version gegenüber VDs Scan. Von DynaPel (;motionperfect) gab es mal 'VideoScope'. Inwieweit es mit aktuellen Codecs umgehen kann ist mir nicht bekannt.
Gruß, Frank
Antwort von Alexander Noe":
Heiko Nocon wrote:
> Dropped frames sind übrigens sowieso keine Fehler, sondern im Gegenteil > ein Mittel, mit dem ein Encoder aus fehlerbehafteten/unvollständigen > Eingangsdaten doch noch einen gültigen Datenstrom herstellen kann. Bei > einigen Codecs werden sie sogar im Rahmen ihrer regulären Arbeitsweise > eingesetzt.
Ja, z.b. enhält ffmpeg eine Lösung um Vorbis-Audio in AVI-Dateien auf eine Weise zu muxen, die tatsächlich kompatibel zu AVI ist und die auf dropped Frames basiert :)
MfG Alexander
| |
| |