www.radonmaster.de/robernd/    Stand: 14. Juli. 2003

home

Fehler in DVB-Aufzeichnungen beheben

Im übertragenen MPEG2-Strom sind eine ganze Reihe Fehler vorhanden. Prinzipiell lassen sich die meisten Übertragungsfehler (theoretisch) so korrigieren, dass sie unsichtbar oder zumindest unauffällig sind. Das macht ein Receiver bei der Wiedergabe von der Platte ständig.
Es gibt auch einige wenige PC-Programme, die für diesen Zweck geeignet sind. Leider arbeiten sie (bisher) weniger perfekt. Trotzdem halte ich sie für so wichtig, dass ich einiges darüber aufgeschrieben habe. Ich muss aber zugeben, so richtig durchblicken tue ich auch nicht.

Bei mir funktioniert die Prozedur Festplatte auslesen mit WinPVR und DVD authoren mit SpruceUp recht zuverlässig. Nur in seltenen Fällen treten Fehler auf. Manchmal mag SpruceUp die Daten nicht importieren oder Kompilieren. Manchmal sind auch Bild und Ton asynchron.
Oft hilft ein zweiter Ripp-Versuch mit einer um 1 sec verschobenen Anfangszeit. Das hängt wahrscheinlich damit zusammen, dass am Filmanfang besonders häufig Fehler auftreten, speziell wenn man noch einen Teil der Filmankündigung erwischt hat (die oft sogar ein anderes Bildformat als der Film hat).

Bei besonders schlechtem Empfang laufen Bild und Ton während des Films immer weiter auseinander. Es kommen auch fehlerhafte Zeit- oder Statusinformationen vor. SpruceUp liefert dann oft eine Fehlermeldung während des Imports oder Kompilierens - und aus der Traum.
Ich habe einmal eine Liste von Reaktionen von SpruceUp zusammengestellt. Ungefähr so verhält es sich, wenn die Zahl der Übertragungsfehler steigt bzw. wenn sie schwerer werden (z.B. beim Aufzug einer dicken Regenwolke):

1. Fehlerfreie Funktion
2. Fehlerfreie Funktion der Software, aber Bild und Ton asynchron (laut PVAStrumento ein bis zwei Fehler pro Minute)
3. Spruce meldet Fehler während der Kompilation
4. Spruce kann den Ton nicht zuordnen und produziert Ergebnis ohne Ton
5. Spruce bricht mit Fehlermeldung den Import ab
6. Spruce importiert einen Film aber ohne Ton (Ton-Symbol im Film-Icon fehlt)
7. Spruce bricht ohne Fehlermeldung den Import völlig ab

Die Größte Aussicht auf Erfolg haben wir, wenn lediglich Bild und Ton um eine bestimmte Zeit versetzt sind. Deshalb möchte ich speziell auf diesen Fall eingehen. Bei schweren Fehlern warten wir am besten auf eine Wiederholung des Films (bei schönem Wetter). Das macht in jedem Fall die wenigste Arbeit.

Eines der prinzipiell zur Korrektur nützlichen Tools ist PVAStrumento von www.offeryn.de/dv.html/. Es erzeugt tatsächlich einen Datenstrom, in dem Bild und Ton wieder synchron laufen. Aber es produziert einen zumindest für mich unakzeptablen Nebeneffekt: Es korrigiert (und entfernt) so viele Frames, dass immer wieder für kurze Zeit das Bild "einfriert". Das macht es leider auch bei Aufzeichnungen, die sich sonst fehlerfrei verarbeiten lassen.
Allein schon wegen der ausgezeichneten Beschreibungen möglicher Übertragungsfehler in den zugehörigen Texten lohnt sich ein Download.

Weit mehr Erfolg habe ich mit ds.jar gehabt. Ich würde es inzwischen als unverzichtbar bezeichnen, weil sich ungefähr 90% aller Fehler beseitigen lassen. Bereits beim Durchlauf ohne Spezialeinstellungen (aber mit gewissen Grundeinstellungen) beiseitigt es fehlerhafte/widersprüchliche Statusangaben, an denen das Authoringprogramm sonst hängen bleibt. Außerdem gelingt es, Filme mit asynchronem Ton zu retten, bei denen selbst bbMPEG versagt. Deshalb hier eine etwas ausführlichere Beschreibung.


Installation und Grundeinstellungen des Programms ds
Der Autor hat ds inzwischen aus dem Internet genommen, es lässt sich aber noch finden. Es gibt außerdem ein neues, ähnliches Tool aus seiner Feder. Es heißt einfach nur X. Sein Sourcecode ist freigegeben, übersetzten muss es sich der Anwender selbst. Zu finden in www.radonmaster.de/robernd/tools/

ds oder X bieten eine auf den ersten Blick verwirrende Fülle von Manupulationsmöglichkeiten für MPEG2-Ströme. Dazu gehören Zeitverschiebungen des Tones, Zusammenfügen und Schneiden von MPEG-Videos oder selektieren unterschiedlicher Tonspuren. Bei jedem Durchlauf nimmt es zusätzlich Fehlerkorrekturen am bearbeiteten MPEG-Strom vor. Ursprünglich ist ds dafür programmiert, einen empfangenen und aufgezeichneten MPEG-Transportstrom in einen für die weitere Verarbeitung geigneten Programmstrom zu wandeln. WinPVR führt diese Wandlung bereits selbst aus. Deshalb ist diese Funktion erst von Bedeutung, seit WinPVR auch einen Transportstrom ausgibt. Dafür Audio raw und Stream Raw rippen markieren.

DS und X sind Java-Anwendungen. Deshalb ist ein Java Runtime Environment im PC erforderlich. Wer es noch nicht in seinem PC installiert hat, kann es downloaden von http://java.sun.com/j2se/ Dabei ist die mehrsprachige Windows-Version zu bevorzugen. Die Installation erfolgt durch Ausführen des von dort geladene xxx.exe Files.
ds startet dann durch Anklicken von ds.jar oder einer entsprechenden Verknüpfung.

Auf der Karte "spec" rename abschalten, damit die Namenserweiterungen der von ds neu geschriebenen Files den alten entspricht. DS hängt an alle Namen neu erzeugter Files eine Nummer an. Die Originale werden also nicht überschrieben




Die Arbeit mit Videodaten ist optimal, wenn immer von einem (physikalischen) Plattenlaufwerk auf ein zweites gearbeitet wird. In diesem Beispiel von E:\aaMPEG\ auf F:\aaMPEG\. Deshalb geben wir auf der Karte "files" das Ausgabeverzeichnis ausdrücklich an (sonst würde ds ebenfalls E:\aaMPEG\ verwenden):

- "+" Zeichen hinter "output dirs" anklicken. File-Auswahlfenster "Öffnen" erscheint.
- gewünschtes Verzeichnis suchen und nur Einfachklick auf dessen Namen
- Klick auf "Öffnen". Das ausgewählte Verzeichnis erscheint unter "output dirs:


Nach Beenden von ds bleiben die Änderungen im ini-File gespeichert und sind beim Neustart wieder aktiv.


Synchronisation von Bild und Ton mit dem Programm ds

Das Beispiel ist für den etwas komplizierteren Fall gemacht, in dem Bild und Ton nicht zusammen passen. Falls beide synchron sind und nur sonstige Datenfehler behoben werden sollen, entfallen die Punkte 4. und 5.
1. Rippen mit WinPVR Mit WinPVR auf die übliche Weise die Receiver-Festplatte auslesen. Dabei SEKUNDENGENAU die exakte Laufzeit des gerippten Films notieren.

2. Programm ds starten
Start durch Doppelklick auf das File ds.jar oder eine entsprechende Verknüpfung

3. Auswahl der zu verarbeitenden Files (Karte main)
- Doppelklick mit der RECHTEN Maustaste in das Eingabefeld (E) und Videofile xxx.m2v auswählen.
- Doppelklick mit der rechten Maustaste in das Eingabefeld (E) und Audiofile xxx.mpa oder xxx.ac3 auswählen.



4. Auswahl des zu bearbeiteten Ausschnittes (Karte main)
Es hat sich gezeigt, dass SpruceUp Schwierigkeiten macht, wenn Bild und Ton gegeneinander verschoben werden. Bei der ursprünglichen Laufzeit fehlt dann irgendwo ein Stück Information. Deshalb verkürzen wir am Anfang und Ende den Film um jeweils ein Stück, das mindestens so groß ist wie die vorgesehene Verschiebung. In diesem Beispiel sind es 2 Sekunden.
- Doppelklick mit der linken Maustaste auf einen File-Namen im Eingabefeld (E). Es öffnet sich das Fenster "collection specials"
- In das Eingabefeld (F) die Zahl 50 schreiben (entspricht 2 sec mit je 25 Bildern)
- Enter-Taste (Die 50 erscheint als cut-in im Anzeigefeld.)
- die Laufzeit des Filmes (aus 1.) in Sekunden umrechnen, dann in Bilder umrechnen (x25), 50 (2 sec) abziehen und in Eingabefeld (F) schreiben. Die Laufzeit - 2sec erscheint sofort im unter (F) liegenden Zeitfeld.
- Enter-Taste (Zahl erscheint als cut-out im Anzeigefeld der Schnittliste)
- Klick auf "apply & close"

Im Bild oben ist der cut-out Punkt 117000. Die in (F) stehende 123025 wäre ein zweites cut-in, das nicht mit Enter in die Schnittliste übernommen ist.

Wenn die genaue Laufzeit des Filmes nicht bekannt ist, muss diese ermittelt werden. Dafür kann man z.B. bbMPEG auf die gerippten Daten anwenden und nach dem ersten Durchlauf das Programm abbrechen und die Zeit in Sek notieren.

5. Auswahl der Zeitverschiebung des Tons
- Karte "out" anwählen.
- "enable offset" markieren
- darunter Zeitverschiebung des Tons in ms eintragen. (positive Zahl: Audio erklingt später)

6. Vorgang auslösen
- Karte "main" auswählen
- Einfachklick auf "Go!"
- Warten und Kaffe kochen
Unter dem "Go!"-Knopf wird der Fortschritt des Vorganges angezeigt. Der Knopf C bricht ihn ab. P macht eine Pause.

7. Authoren mit SpruceUp
Übliche Prozedur, xxx_0.m2v auswählen und importieren. xxx_0.mpa oder xxx_0.ac3 werden automatisch importiert. "_0" hängt ds in diesem Beispiel an den ursprünglichen Filename an.

Für eigene Experimente sind der Fantasie kaum Grenzen gesetzt. Hier ist nur ein Weg aufgeschrieben, der (zufällig?) zum Erfolg geführt hat. Sicher gibt es auch bessere Wege. Je nach Art der vorliegenden Fehler muss das beschriebene Beispiel wahrscheinlich abgewandelt werden.

______________________________________________________________________

Mehrere Mitglieder des www.satellite-board.de und www.hdtforum.de haben mir bei der Lösung der Probleme geholfen. Dafür bedanke ich mich herzlich.

Viel Erfolg bei eigenen Experimenten!
RoBernd

home