Audio synchronisieren bei gegrabbtem VHS-Video

Oft laufen im gegrabbten Video Ton und Bild auseinander.
Hier wird erklärt, wie du die Audio-Spur reparierst.

Warum Audio und Video auseinanderlaufen können
Den genauen Laufzeitversatz zwischen Video und Audio feststellen
Wie du Audio und Video synchronisierst
Synchronisationsfehler in Videos mit MP3-Ton

Warum Audio und Video auseinanderlaufen können

Symptom

Beim Abspielen von gegrabbten VHS Videos laufen Ton und Bild auseinander. Meist wird der Versatz nach hinten zu immer größer. Im Eigenschaften-Fenster des Videos wird zudem manchmal eine unterschiedliche Länge von Audio- und Videospur angezeigt.

Ursachen für Tonversatz

Es gibt mehrere Ursachen für den Tonversatz: systematische (konstante Laufzeitunterschiede) und schwankende:

  1. Ton-Versatz durch kleine Abweichungen der Framerate (wegen automatischer Bildsynchronisation des abspielenden VHS-Players).
    VHS-Player gleichen geometrische Abweichungen im Bandlauf aus, indem sie die Wiedergabegeschwindigkeit beim Abspielen leicht abändern, bis das Bild richtig synchronisiert wird. Dies geschieht automatisch oder über einen manuellen Einsteller.
    Dadurch ist bei VHS die tatsächliche Bildwiederholrate bei der Wiedergabe nie genau 25 fps. Sie weicht immer etwas ab.
    Wenn diese Aufnahme auf dem Computer anschließend mit genau 25 Frames wiedergegeben wird, entsteht eine falsche Laufzeit der Videospur. Audio wird hingegen mit der selben Länge wie beim Aufzeichnen wiedergeben (selbe Samplingfrequenz 41.5 kHz). Dadurch laufen Audio und Videospur auseinander.
    Schon 0.1% Abweichung machen 1s Versatz in 20 Minuten aus!
    Dieser Audio-Versatz nimmt prozentual mit steigender Laufzeit immer mehr zu.
  2. Sprunghafter Versatz durch Bildaussetzer (Dropped Frames).
    Bei knittrigem VHS-Band kommt es zu Bildaussetzern. Dadurch fehlen unter Umständen einige Einzelbilder im gegrabbten Video (dropped frames). Der Ton wird aber weiter ohne Aussetzer aufgezeichnet. Dieser Fehler tritt vor allem bei E-300 Kassetten auf, weil diese das dünnste Band haben.
    Die Debut Video capture Software zeigt am Ende der Aufnahme die Anzahl von dropped frames an.

    Ein anderer Grund für Dropped frames ist der fehlerhafte Umgang einiger Codecs beim Einlesen von Videodatenströmen, die NULL frames enthalten.
    In diesem Fall scheint das Video mit dem Rohdaten noch in Ordnung zu sein, aber sobald das Video weiter bearbeitet wurde, treten plötzlich schlagartige Sprünge zwischen Video und Audio auf, die immer größer werden. (Das Bild eilt dem Ton immer mehr voraus).
    Wie das vermieden werden kann, steht unter: Vermeiden von Bildverlusten (Dropped Frames) beim Importieren.

    Audio-Versatz durch verlorene Frames tritt stufenweise auf
    , so dass sich bei gestörten Stellen im Video das Bild schlagartig gegen den Ton verschiebt.
  3. Sprunghafte Aussetzer durch Überlastung des Computers bei der Aufnahme
    Dropped Frames entstanden bei langsamen Computern auch als Folge zu hoher Prozessorlast beim capturen. Der Computer kam nicht hinterher. Dieser Fehler sollte mit modernen Geräten nicht mehr auftreten (siehe Tipps in Teil 1).
  4. Selten sind auch stärkere Schwankungen der Abspielgeschwindigkeit (Framerate) möglich, z.B. durch gedehntes Videoband. In diesem Fall schwankt auch die Tonhöhe der Audiospur.
    Sowas ist nur extrem aufwendig korrigierbar.
    Das Vorgehen wäre hier:
    1. Korrektur der Tonhöhenschwankungen mit einer Spezialsoftware wie Celemony Capstan.
    2. Danach Korrektur der Laufzeitunterschiede wie auf dieser Seite gezeigt.

 

Ein Beispiel

Audio und Video Versatz
Audioversatz in gegrapptem VHS-Video (Bildrate nicht 25 fps und Dropped frames ab 0:50)

In der Abbildung sieht man den realen Tonversatz, den ein digitalisierter Märchenfilm von einer VHS-Kassette hatte. Bis zur 50ten Minute gibt es einen stetig zunehmenden Versatz, der allein dadurch entsteht, dass die Videokassette nicht genau mit 25 Bildern pro Sekunde läuft. Die Framerate weicht nur 0,026% ab. Aber das genügt schon, damit man etwa ab der 10. Minute merkt, dass der Ton dem Bild hinterher läuft. Denn man bemerkt einen Audioversatz schon etwa ab 100 ms. Bei 50 Minuten hat sich der Versatz bereits auf 800 ms aufaddiert. Das ist fast eine Sekunde.(!)

Ab der 50ten Minute steigt der Tonversatz plötzlich stark an. Im digitalsierten Video konnte man sehen, dass sich das Bild in diesem Bereich immer wieder sprunghaft bewegte. Also gab es hier dropped Frames. Im Ton konnte man zusätzlich kleine Knack- und Knister-Geräusche identifizieren.

Die Korrekturen der Laufzeit habe ich in Wavelab vorgenommen. Jeden Abschnitt in der Grafik zwischen zwei Punkten habe ich in Wavelab separat korrigiert. Der als Offset benutzte Korrekturwert ist immer die Differenz zwischen dem Versatz am Abschnittende und dem Versatz am Abschnitt-Anfang. Zwischen 1:05 und 1:07 beispielsweise 200 ms. Nach diesen Anpassungen war die Synchronizität zwischen Ton und Bild okay.

Schritt 1: Den genauen Laufzeitversatz zwischen Video und Audio feststellen

Bevor du den Audio-Versatz korrigieren kannst, musst du zunächst möglichst exakt heraus bekommen, wie groß er ist.

a) Abschätzung durch Auslesen der Datei-Informationen deines Videos.

Dies geht leider nur bei MPG-Dateien.
In den AVI-Dateien, die mit Debut Video Capture und dem PicVideo MJPG Encoder aufgezeichnet wurden, sind die Laufzeitangaben für Bild und Ton nicht exakt.

Öffne die Video-Datei in Avidemux: Datei > Datei-Information

Audio und Video Versatz
0.01381%. Versatz zwischen Ton und Bild. Das entspricht etwa 1 s Versatz pro Stunde Video-Laufzeit

Man sieht hier die Laufzeit des Videostroms (auf 25.00 fps umgerechnet) und die Laufzeit des Audio-Stroms (entspricht der tatsächlichen Aufnahmezeit). Die prozentuale Abweichung des Tones erhälst du, indem du beide Werte in Sekunden umrechnest und danach durcheinander teilst. Im Beispiel sind das 0.01381% Versatz.
Diesen Wert kannst du für die Korrektur genau so in Wavelab eingeben.

Zum Grabben wollen wir allerdings MPG nicht verwenden, weil das Bild dabei komprimiert wird und sich danach schlecht deinterlacen lässt.

b) Abschätzung durch Kalibrieren deiner Aufnahme-Strecke

Nehme testweise 10 … 30 Minuten deines Videos als MPG auf (beispielsweise mit dem Programm WinAVI Video Grabber). Dann bekommst du mit der oben beschriebenen Methode a) deinen genauen prozentualen Audio-Versatz heraus.

Wenn alle deine Videos mit der selben Abspielgeschwindigkeit durchlaufen, benötigen auch alle den selben Korrektur-Wert.
Du kannst anschließend das Video mit einem anderen Codec aufnehmen. Der prozentuale Versatz zwischen Ton und Bild wird gleich bleiben.

Die Kalibrierungs-Methode funktioniert nur, wenn deine Videos vom Player mit der selben konstanten Synchronisations-Einstellung abgespielt werden. Benutzt dein Player hingegen eine automatische Synchronisation (=automatischer Feinabgleich der Framerate), dann musst du wahrscheinlich auf die Probier-Methode wechseln.

c) Genauere Abschätzung: die Probier-Methode

Mit etwas Übung wird es dir gelingen, den Tonversatz auf etwa 100 ms genau einzuschätzen.

Öffne dein Video mit einem Video-Player (VLC Media player oder MPC Media player classic).

Tipp: Wenn dein Video keine starken Bildstörungen hat, kannst du davon ausgehen, dass ein konstanter Laufzeitunterschied zwischen Audio und Video besteht. Folglich ist der Versatz am Anfang des Video 0, und am Ende erreicht er ein Maximum. Du brauchst dann diesen Versatz nur ein einziges Mal bestimmen und zwar am Ende des Videos.

Gehe an eine Stelle des Videos, an der sich gut der Ton mit dem dazugehörigen Bild vergleichen lässt.
Szenen mit deutlich sichtbaren Lippenbewegungen sind gut geeignet.

Rufe in deinem Videoplayer den Menüpunkt auf, wo du einen Audio-Offset einstellen kannst.

Gut geeignet ist der VLC-Mediaplayer. Über Werkzeuge > Spursynchronisierung
öffnet sich ein separates Einstellfenster, so dass man beim laufenden Video den Versatz einstellen kann, ohne den Dialog zu schließen.

VLC mit Einstellfenster für Audio-Offset
Bild: Einstellen des Audio-Offset in VLC.

Im Media Player Classic erreichst du die Audio-Einstellungen mit rechter Maustaste > Audio > Options
Aktiviere [x] Audio time shift.

Gebe versuchsweise einen geschätzten Wert ein. Du kannst hier positive oder auch negative Werte eintragen.
Spiele die Szene nochmals ab und beobachte, ob Bild und Ton synchroner laufen.
Schätze ein, ob du dich einer optimalen Einstellung angenähert hast und verbessere schrittweise den Zahlenwert für Audio time shift. Wenn der Ton lippensynchron ist, notiere den genauen Zahlenwert zusammen mit der jeweiligen Zeitmarke.

Bei Videos mit starken Bildaussetzern musst du eventuell den Audioversatz nach jeder gestörten Strecke bestimmen, da er sich stufenweise ändern kann.

MPC audio time shift
Im Beispiel wurde im Media Player Classic ein Audio-Zeitversatz von +1100 ms eingestellt

Hinweis: Der MPC merkt sich den Wert für den Audio-Versatz. Deshalb solltest du den Wert hinterher wieder auf Null setzen.

Zum Schluss wirst du eine Tabelle erhalten, die für verschiedene Zeitpunkte deines Videos den richtigen Audio-Offset auflistet.

Wenn man diese Werte als Kurve darstellt, kann man deutlich besser erkennen, ob es sich um sprunghafte Änderungen handelt (die alle einzeln korrigiert werden müssen), oder ob es reicht, nur einmalig die gesamte Laufzeit der Tonspur zu ändern.
Zu diesem Zweck lade das Excel-Datenblatt Video-Audioversatz.xls herunter.
Trage dort in die Tabelle deine Werte ein.
Es wird sich in etwa so ein Bild ergeben, wie im folgenden Beispiel.

Video-Audioversatz.xls
Bild: Darstellung des gemessenen Audiooffsets und seine Abweichung von der linearen Interpolation in einem Excel-Datenblatt

Im Beispiel ist Folgendes zu erkennen:

In der Tabelle wurde ein Startoffset von 100 ms eingetragen (der schon am Anfang des Videos besteht) und als letzer Wert ein Versatz von 2500 ms (= 2,5 s) am Ende der Laufzeit.

Excel berechnet daraus eine durchschnittliche Abweichung über der Laufzeit.
Der gemessene tatsächliche Audioffset weicht mal nach oben und mal nach unten von der interpolierten linearen Abweichung ab. Dies könnte auch an Messungenauigkeiten liegen.
Da man einen Audioversatz ab etwa 100 ms Versatz deutlich wahrnimmt, habe ich mit den beiden gelben Linien den Bereich dieser gerade noch erlaubten Abweichung markiert.

Man erkennt, dass der tatsächliche Offset (bis auf das Stück am Ende) gerade noch so innerhalb dieser erlaubten Abweichungen liegt.

Anschließend habe ich aus diesem Grund den einfachen Weg gewählt: Ich habe die Laufzeit nur einmalig in Wavelab um 2400 ms gestreckt, und zusätzlich am Anfang der Datei 100 ms Stille eingefügt.

Im resultierenden Video waren zwar immer noch kleine Abweichungen erkennbar (man nimmt nun mal 100 ms Versatz schon wahr), aber bei diesem Film war das noch akzeptierbar.
Allerdings war es nötig, in einem zweiten Durchlauf die Strecke ab der 60. Minute bis zum Filmende nochmals um ca. 400 ms zu dehnen.

Wie du Audio und Video synchronisierst (digitale Recordings von VHS reparieren)

Audio speichern

Um den Ton bearbeiten zu können, musst du ihn aus der Video-Datei extrahieren. Dies geht so:

Aus Virtualdub:
Video öffnen
Virtualdub > File > Save WAV...
(Unter Audio: Direct stream copy auswählen, sonst wird der Ton mit dem ausgewählten Codec komprimiert.)

Aus Avidemux:
Video öffnen
Avidemux > Audio > Tonspur speichern...

Solltest du Audio als ac3-Datenstrom (Dolby digital) aufgezeichnet haben, so kannst du ihn auf folgende Arten als PCM (Wav) exportieren:

Aus Avidemux:
Video öffnen
Video: Kopie
Audio: PCM
Datei > Speichern unter...
Es wird eine neue Video-Datei gespeichert, wobei nur der Ton neu gerendert wird.
Anschließend das neue Video in Avidemux öffnen und Audio speichern.

Oder die AC-3 Audiodaten direkt aus Avidemux speichern.
Anschließend mit dem Tool BeSweet die AC-3 Daten in Wav konvertieren.

Audio Laufzeit korrigieren mit Wavelab

Lese die Audio-Datei in Wavelab ein.

Korrigiere zunächst die Lautstärke.

Wenn nötig, solltest du den Ton auch filtern, entclicken, vorsichtig entrauschen oder entbrummen, eventuell Höhen auffrischen.

Wenn du dein Video mit dem USB Video Grabber aufgenommen hast, solltest du mit einem 60 Hz Hochpass filtern.
Speichere das Ergebnis.
Es kann passieren, dass du an diesen Punkt zurückkehren musst, wenn dir bei der folgenden Korrektur der Laufzeit ein Fehler unterläuft.

Zeitkorrektur mit Wavelab:
Wavelab > Ausführen > Zeitkorrektur
Du kannst hier entweder die geplante Laufzeit angeben, oder den Prozentsatz der Korrektur.
Ich empfehle letzteres, da dieser Wert für die meisten deiner Videos gleich sein wird.
In den Optionen wähle Qualität: Gut, [x] Tonhöhe beibehalten
Den Dirac-Prozessor solltest du nur aktivieren, wenn dein Video Musik enthält. Die zeitliche Skalierung dauert mit Dirac Prozessor bis zu mehreren Stunden(!), ohne ihn nur wenige Minuten.

Wavelab Zeitkorrektur
Bild: Einstellungen für die Änderung der Laufzeit (Zeitkorrektur) in Wavelab

Achtung: Die Wavelab-Zeitkorrektur merkt sich die letzten verwendeten Werte. Daher musst du erst auf Verhältnis: Quelle klicken, damit als Ausgangswert 100% der Originallänge gesetzt wird. Dann musst du den vorher herausgefunden Laufzeitunterschied dazu addieren (meist einige 100 ms) und als neue Laufzeit des Abschnittes eingeben.

Am Anfang der Datei kannst – falls nötig – einen Anfangsoffset einfügen.

Dies erfolgt über den Menüpunkt Bearbeiten > Stille....
- Positionszeiger an Anfang der Datei setzen
- Bearbeiten > Stille einfügen
- [ ] wie Auswahlbereich (abwählen), und Länge der Stille angeben

Wavelab - Stille einfügen
Bild: Einstellungen für Stille einfügen in Wavelab

Speichere die fertige Datei als neue Datei unter anderem Namen, damit du notfalls einen Schritt zurück kannst.

Audio Laufzeit korrigieren mit anderer Audio Software

Audacity
Zum Strecken der Tonspur kann auch Audacity verwendet werden. Die Tonspur wird wie beschrieben mit VirtualDub als wav exportiert. Dann mit Audacity geöffnet und unter Effekte -> Tempo ändern (engl: Effect -> Change Tempo) kann die errechnete Prozentzahl eingetragen werden. Zur weiteren Verbesserung kann Rausch-Verminderung, Klick-Entferner und Normalisierung verwendet werden. (Danke, Martin)

Bitte Vorschläge einreichen an mich: sven@engon.de

Testlauf

Direkter Test in MPC:
File > Open file > Dub: Browse, dort die korrigierte Audiospur auswählen
Play > Audio: Diese externe Tonspur auswählen
Dann den Film abspielen. Der Audio-Offset muss auf 0 gesetzt sein.

Direkter Test in Virtualdub:
Virtualdub > Audio > Audio from other file...: deine korrigierte Audiodatei auswählen.
Testweise solltest du mit dem Play Button verschiedene Stellen deines Filmes anspielen, um zu überprüfen ob die korrigierte Audio-Spur nun mit dem Bild synchron läuft. Ist alles okay, kannst du nun das Video filtern und rendern.

Indirekter Test mit einem Videoplayer und Virtualdub:
Virtualdub > Audio > Audio from other file...: deine korrigierte Audiodatei auswählen.
Video: Direct stream copy
Datei als Avi unter neuem Namen speichern (das geht recht schnell, da das Video nicht neu berechnet wird)
Lade diese Datei in einen Videoplayer und überprüfe, ob die korrigierte Audio-Spur mit dem Bild synchron läuft.

Ist alles okay, kannst du nun das Bild nachbearbeiten und dabei das Video mit der korrigiernte Audio-Datei rendern.

Variante b) Synchronisation von Video und Audio durch Anpassen des Videostroms

Prinzipiell könnte auch die Laufzeit des Video-Strom korrigiert werden, indem Zwischenbilder gelöscht oder eingerechnet werden. Dies führt aber immer zu ruckeligen Bewegungen, weshalb davon abzusehen ist.

Daher habe ich diesen Abschnitt aus der Anleitung entfernt.

Synchronisationsfehler in Videos mit MP3-Ton

AVI-Dateien können den Ton auch als MP3 enthalten, aber oft entsteht dabei einen Zeitversatz zwischen Bild und Ton.

Die beste Synchronisation von Audio und Video hatte ich mit folgendem Workflow:
Audio als Wav-Datei erstellen. Video in Avidemux einlesen. Die Wav-Datei als externe Audio-Spur laden. In den Audio-Einstellungen MP3 als Zielformat einstellen mit der gewünschten festen (!) Bitrate (CBR). Neues Video speichern. Der Ton wird dabei in MP3 umgewandelt und mit den Videodaten verflochten.
Du darfst keine variable Bitrate wählen, denn dann gäbe es eine variable Bitrate pro Zeiteinheit, und der Ton könnte nicht mehr eindeutig den Bildern zugeordnet werden.
Vorsicht: Erzeuge MP3-Ton nur mit Avidemux. Verwende keine anderes Programm. Mit Wavelab und anderen Programmen habe ich MP3-Dateien mit falscher Laufzeit erhalten, selbst wenn diese den selben LAME Encoder verwendeten!