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