Fehler in AVC Videostream finden

  • Hi Leute, ich hab da so ein Problem.
    Ich habe ein Video von einer Bluray auf die Festplatte gerippt was soweit auch funktioniert hat, aber manchmal kommt es vor, dass das gerippte Video fehler enthält.
    Um jetzt nicht jedes Video vorher manuell auf fehler zu duchsuchen, wollte ich fragen ob es ein Programm gibt welches fehler in AVC h264 Streams findet.
    TsDoctor hab ich schon ausprobiert, allerdings sagt es der Stream hätte keine fehler was offensichtlich falsch ist.

    Hier noch ein Bild wie der Fehler aussieht.
    snapshot_error.jpg

  • Das sieht tatsächlich wie ein Datenfehler im Videostream aus.

    TsDoctor wird dabei sicherlich nicht das gesamte Video zu decodieren versuchen, nur die Struktur oberflächlich prüfen. Um solche Fehler zu finden, müsste man aber das Video wirklich weitgehend decodieren. Ich wüsste im Moment nicht sicher, welches Programm man dafür verwenden könnte. Ein kommerzieller "H.264 video validator" wäre sicherlich teuer.

  • Was ist wenn du den film nochmal kopierst?
    Ist der fehler immer an der selben stelle?
    Zeigt ein (billig) player am TV auch, bzw. ähnliche fehler?
    Ist der datenträger/laufwerk unbeschädigt/sauber?

    U.u. auch mal ein anderes kopiertool testen.

    Wenn der fehler sich reproduzieren lässt,
    dann wurde die bluray wirklich mit diesem fehler produziert...

  • Es wäre nicht mal sicher, dass der Fehler im Videostream der Blu-ray sein muss. Nehmen wir mal an, der Fehler wäre schon im Original-Material des Videostudios enthalten gewesen, das die Blu-ray-Inhalte produziert hat. Dann hätte deren Encoder sich viel Mühe gegeben, diesen schon vorher vorhandenen Bildfehler zu encodieren, und das Ergebnis wäre ein technisch fehlerfreier Videostream auf der Blu-ray, mit solchen Artefakten als Bildinhalt. Das könnte kein automatischer Decodier-Test einfach so entdecken. Da müsste schon eine Bildverarbeitungs-Analyse stattfinden, die nach DCT-Mustern sucht. Und die wäre ziemlich langsam, wenn überhaupt mal jemand so was implementiert hätte.

  • Danke schon mal für die antworten.

    HQ-LQ: Der fehler ist nicht immer an der selben stelle, manchmal funktioniert das kopiren problemlos und ein anderes mal tritt das Problem an einer völlig anderen stelle auf, hab das schon mehrfach getestet.
    Mein problem ist ich möchte nicht jedesmal bevor ich ein video encode das video manuell auf fehler prüfen.
    Der Datenträger ist sauber und unbeschädigt, hab auch schon ein Ram-Test gemacht da ich dachte es der könnte defekt sein aber laut Test ist der inordnung.
    LigH: Da der Fehler immer an verschiedenen Stellen auftritt wurde der nicht mit encodiert, sonst müsste er ja immer an der gleichen stelle sein.

    Ich hatte gehofft, das es vieleicht einen Decoder mit debug modus gibt, der mit loggt was decoded wurde und man so heraus findet ob der Stream fehlerhaft ist.

  • Wenn der Fehler bei mehrfachem Decodieren des selben Materials immer an verschiedenen Stellen erscheint, ist es wohl ein Decodierfehler, aber nicht im Videomaterial, sondern im Decoder.

    Technische Details bitte: Welcher Konverter, falls auf AviSynth basierend: Welches Skript, welches Decoder-Plugin?

    Spontan fällt mir z.B. ein, dass DirectShowSource (je nach dem, welcher DirectShow-Filter dann die Decodierung tatsächlich durchführt) und FFMS2 (wenn nicht auf 1 Thread beschränkt) bei AviSynth durchaus unzuverlässig sein könnten.

  • Der Fehler ist ist leider schon im Quellmaterial, sprich im m2ts vorhanden, es muss also während dem Kopieren von der Bluray passiert sein.
    Ich denke der decoder kann dann auch nichts mehr retten.
    Falls es doch hilft ich verwende MeGui mit x264 also AviSynth basierend.
    Decoder plugin LSMASHSource.dll

    Verwendetes Script:

    Code
    LoadPlugin("C:\Program Files (x86)\MeGui\tools\lsmash\LSMASHSource.dll")
    LWLibavVideoSource("S:\BDMV\STREAM\00002.m2ts")
  • Wenn Du ein kleines Sample posten könntest (Auschnitt aus dem kopierschutzfreien Original), dann könnte jemand der einen Decoderfilter verwendet, der den Hardwaredecoder Chip der Grafikkarte verwendet mal schauen ob da der Fehler auch auftritt.
    Vielleicht ist es ja ein libav Bug. :)

  • Irgendwie verwirrt mich das ganze... überlegen wir noch mal schrittweise.

    1. Wenn das Video einmal von der Blu-ray-Disc auf Festplatte gerippt wurde, und du die M2TS-Dateien von der Festplatte mehrmals decodierst:

    1.a: Wenn der Fehler immer zuverlässig an der selben Stelle ist, liegt es wahrscheinlich am Videomaterial; siehe zweiter Schritt...
    1.b: Wenn der Fehler nicht zuverlässig an der selben Stelle ist, liegt es wahrscheinlich am Decoder.

    2. Wenn das Video mehrmals von der Blu-ray-Disc auf Festplatte gerippt wurde:

    2.a: Wenn der Fehler dabei immer zuverlässig an der selben Stelle ist, liegt es ziemlich sicher am Videomaterial.
    2.b: Wenn der Fehler dabei nicht zuverlässig an der selben Stelle ist, liegt es wohl eher am Ripper oder an der Sauberkeit der Scheibe.

    Mir ist nach deinen letzten beiden Antworten nicht mehr klar, welcher Fall bei dir vorliegt. Meiner Meinung nach widersprechen die sich.

  • ich überleg gerade: wenn der kopiervorgang nicht sauber arbeitet, dann sollte man mal es mit hashing (crc32/md5/...) überprüfen und die datei mehrfach kopieren.

    eigentlich sollten die daten, welche digital vorliegen, vom dateisystem mit Fehlerkorrektur geschützt sein, bzw. es gibt ein Signal vom dateisystem-treiber, dass etwas nicht stimmt.

    mir stellt sich auch die frage, was das für ein programm ist, dass ohne prüfroutienen einfach alles kopiert?!

  • Hab das ganze jetzt nochmal mit einem externen Bluray Laufwerk getestet, da scheint der Kopiervorgang problemlos zu funktionieren.
    Hab das ganze dann per crc32 überprüft, beim externen Laufwerk gibts keine probleme, nur mein internes Laufwerk scheint nicht ganz zuverlässig zu sein.
    Manchmal funktionierts und manchmal gibts fehler.
    Werde in zukunft wohl immer zusätzlich noch mit crc32 prüfen ob alles problemlos geklappt hat.

    Trotzdem würde mich noch interesieren, ob es ein Programm gibt welches beim decodieren des Streams feststellen kann ob dieser fehler enthält.

  • Theoretisch könnte das jeder Videodecoder für das jeweils vorliegende Videoformat. Es kommt nur darauf an, ob er in der Lage ist, Decodierfehler zu melden, oder eher versucht, sie weitgehend zu ignorieren, um sich nicht bei jeder Kleinigkeit aufhalten zu lassen. Am ehesten in Frage kommen also "Referenz-Decoder" (u.U. nicht leicht zu handhaben, erzeugen wahrscheinlich riesige YUV-Datei), "Compliance Tester" (teure (Semi-) Profi-Software) oder "geschwätzige Player" bzw. Decodier-Tester an der Kommandozeile wie ffprobe, ffplay, ffmpeg (decodieren und Ausgabe nach NUL: schicken könnte möglich sein, oder?), mplayer, mencoder (wie ffmpeg, Null-Konvertireung).

    Also das beste, was mir da bisher einfällt: ffprobe — das dürfte in etwa das Programm sein, was dem Zweck am nächsten kommt: Decodieren versuchen und Fehler melden. Allerdings ist mit Ungenauigkeiten zu rechnen: Nicht jeder entdeckte Fehler muss zu einer Bildstörung führen, und nicht jeder Bildfehler muss als Decodierfehler bemerkt werden (manchmal gibt es Zufälle, dass ein fehlerhafter Huffman-Code doch zu einen anscheinend sinnvollen Datenstrom decodiert wird). Schau mal nach der aktuellen "static"-Version von ffmpeg für dein Betriebssystem auf dem "zeranoe"-Server:

    http://ffmpeg.zeranoe.com/builds/win32/static/
    http://ffmpeg.zeranoe.com/builds/win64/static/

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!