Versatz zwischen Video und Audio beseitigen bzw. korrigieren

Verschiebungen zwischen Video und Audio sind eine unangenehme und teilweise zeitaufwendige Angelegenheit. Grundsätzlich sollte man versuchen das Problem immer bei der Ursache zu bekämpfen, also DVB-Dateien mit ProjektX oder PVAStrumento demuxen, dabei werden Fehler und Asynchonität soweit wie möglich korrigiert, und für eine möglichst fehlerfreie Aufnahme sorgen. Dateien von DVDs sollten eigentlich keinen Versatz aufweisen. Sind Video und Audio erst einmal demuxt ist der zeitliche Bezug verloren. Ausgenommen das Video und Audio zur selben Zeit anfangen und die gleiche Länge haben (sollten). An dieser Stelle möchte ich einige Lösungsvorschläge mit dem Programm Mpeg2Schnitt vorstellen für den Fall das die Dateien demuxt sind, einen Versatz aufweisen und die Orginaldateien schon gelöscht sind.

Der erste Fall: Video und Audio haben einen konstanten Versatz über den gesamten Film.

Dieser Fall stellt kein großes Problem dar. Einfach den nötigen Audiooffset für jede Audiodatei ermitteln und eintragen. Im Audiooffsetfenster wird immer der Versatz für die Audiodatei eingetragen die gerade im Abspielfenster angezeigt und demzufolge abgespielt wird. Negative Werte bedeuten das die Audiodatei nach vorn verschoben, also früher abgespielt wird.
Den Audioversatz kann man nur durch Versuche ermitteln. Am besten man sucht sich dazu eine Stelle an der Video und Audio eindeutig zuzuordnen sind (Tür schlägt zu, Schuß o.ä.).

Der zweite Fall: Video und Audio haben einen sich gleichmäßig ändernden Versatz. Die Audiodatei ist also kürzer oder länger als die Videodatei.

In diesem Fall hat man zwei Möglichkeiten. Entweder man streckt oder staucht die Audiodatei auf die Länge das Videos, das ist natürlich mit einer Neukodierung der Audiodatei verbunden, oder man verwendet die Methode das dritten Falls. Dabei müssen dann in mehr oder weniger regelmäßigen Abständen Schnittpunkte gesetzt werden.

Der dritte Fall: Der Versatz zwischen Video und Audio ändert sich scheinbar zufällig. Das kann z.B. passieren wenn beim demuxen fehlerhafte Bilder weggelassen werden und der Ton nicht angepasst wird. Genauso ist es möglich das Audioframes verloren gehen und die Bilder nicht angepasst werden.

Und so sieht der Beispielfilm aus:
Angenommen der Film hat 3 verschieden Versatzbereiche. Am Anfang ist der Audioversatz positiv (der Ton kommt 24 Bilder, 960 ms, zu spät). Irgendwo vor dem ersten Teil sind also 24 Bilder verloren gegangen, der Ton ist aber vorhanden. Danach folgt ein Teil mit negativem Versatz (der Ton kommt 240 ms zu früh), hier fehlen also 1200 ms Ton (960 ms + 240 ms, da der Versatz des vorherigen Abschnittes ja erst kompensiert werden muß). Am Ende ist wieder ein Teil mit positivem Versatz. Es fehlen 15 Bilder, eine komplette GOP wurde verworfen. Der Versatz ist bewußt sehr groß gewählt denn Übertreibung macht ja bekanntlich anschaulich.

Zu den orangefarbenen Bereichen fehlt das entsprechende Gegenstück (Video oder Audio).

Zuerst soll der Ton dem Video angepasst werden.

Die Video- und Audiodateien werden in die Dateienliste geladen (Video/Audio öffnen). Der Versatz für den ersten Teil das Films wird durch probieren ermittelt (positive Zahl) und für jede Audiodatei in das Audiooffsetfenster eingetragen. In unserem Beispiel sind das also -960 ms. Danach wird ein Schnitt in der Schnittliste erzeugt. Der In-Schnitt kommt ganz an den Anfang des Films und der Out-Schnitt an die Stelle an der der Ton gerade noch synchron ist. Günstig ist eine Stelle an der eine Unterbrechung oder ein Ruckler des Tons kaum zu hören ist. Der Bildtype (I-, P- oder B-Frame) spielt dabei keine Rolle. Ist es ein B-Frame wird der Out-Schnit des Schnittes in der Schnittliste rot dargestellt.

01 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -960 ms
Bild 1a Dateienliste
01 01 -- 00:00:00:00 -- 00:00:59:11


Bild 1b Schnittliste

Nun wird die gleiche Videodatei und ihre Audiodatei(en) noch einmal in der Dateienliste geöffnet. Wieder wird der Audioversatzt, diesmal aber für den mittleren Teil, ermittelt (240 ms) und in das Audiooffsetfenster für jede Audiodatei des zweiten Hauptknotens in der Dateienliste eingetragen. Danach erstellen wir wieder einen Schnitt in der Schnittliste. Der In-Schnitt muß genau ein Bild nach dem Out-Schnitt des vorherigen Schnittes liegen. Dadurch passen die Bilder der Schnitte zusammen (beide Schnitte sind aus der gleichen Datei) und werden grün eingefärbt. An dieser Stelle muß nichts neu berechnet werden. Der Out-Schnitt liegt wieder an der Stelle an der es gerade noch synchron ist.

01 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2   -960 ms
02 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -240 ms
Bild 2a Dateienliste
01 01 -- 00:00:00:00 -- 00:00:59:11
02 02 -- 00:00:59:12 -- 00:02:10:11




Bild 2b Schnittliste

Für den dritten Schnitt müssen nun wieder die Video mit den dazugehörigen Audiodateien in die Dateienliste geladen werden und der Audioversatz für jede Audiodatei ermittelt und eingestellt werden. Der In-Schnitt des dritten Schnittes muß wieder nahtlos an den Out-Schnitt des zweiten Schnittes anschließen.

01 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -960 ms
02 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -240 ms
03 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -360 ms
Bild 3a Dateienliste
01 01 -- 00:00:00:00 -- 00:00:59:11
02 02 -- 00:00:59:12 -- 00:02:10:11
03 03 -- 00:02:10:12 -- 00:02:42:01






Bild 3b Schnittliste

In der Schnittliste existieren jetzt 3 Schnitte von denen jeder auf einen Hauptknoten im Dateienliste verweist. Für jeden Hauptknoten können die Offsetwerte für die Audiodateien seperat eingestellt und auch nach der Erzeugung des Schnittes noch geändert werden. Durch einen einfachen Klick auf den Schnitt in der Schnittliste wird der dazugehörige Dateiknoten angezeigt. Ein Doppelklick auf den Schnitt bringt die dazugehörigen Dateien, und damit auch den Audiooffset, zur Anzeige.

Nun stellen wir aber fest das zwischen dem ersten und dem zweiten Schnitt der Ton ca. eine Sekunde wiederholt wird (logisch, wir haben den Ton des ersten Schnittes nach vorn und den Ton des zweiten Schnittes nach hinten verschoben). Diese Sekunde Ton fehlt einfach und soll durch Stille erstetzt werden. Dazu fügen wir wieder die Videodatei in die Dateienliste ein, diesmal ohne Audiodatei(en) (die Audiodateien einfach aus der Dateienliste löschen). Der dazugehörige Schnitt wird vor dem zweiten Schnitt eingefügt und hat die Länge des Fehlenden Tons (1200 ms, 00:00:01.05). Der dritte Schnitt wird am Anfang entsprechend gekürzt. Die Schnitte sollen nahtlos aneinander passen.

01 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -960 ms
02 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -240 ms
03 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -360 ms
04 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio ->
Bild 4a
01 01 -- 00:00:00:00 -- 00:00:59:11
04 04 -- 00:00:59:12 -- 00:01:00:16
02 02 -- 00:01:00:17 -- 00:02:10:11
03 03 -- 00:02:10:12 -- 00:02:42:01








Bild 4b Schnittliste

Wichtig ist das im Dialog Optionen -> Video/Audioschnitt -> Audioschnitt die entsprechenden "Stillen Audioframes" eingetragen sind.

Zwischen dem ersten und dem dritten Schnitt ist ca. eine Sekunde ohne Ton und zwischen dem dritten und dem vierten Schnitt wurden 600 ms (15 Bilder) Ton entfernt.

Jetzt soll das Video dem Ton angepasst werden.

Die Dateiknoten 01 bis 03 mit den eingestellten Audioffsets können wieder benutzt werden. Der Dateiknoten 04 wird nicht mehr benötigt und auch der zweite Schnitt kann gelöscht werden. Der erste Schnitt wird am Ende bis zu einem erlaubtem Bild (I- oder P-Frame) gekürzt. Für den zweiten Schnitt in der Schnittliste muß am Anfang ein I-Frame gesucht werden. Um den Übergang zwischen dem ersten Videoteil und dem zweiten Videoteil zu verbessern habe ich beim Testfilm noch einige Bilder mehr weggelassen (Bild 5b). Zur Kontrolle des Überganges kann die Vorschau benutzt werden.

01 01 -- 00:00:00:00 -- 00:00:59:10
02 02 -- 00:01:00:24 -- 00:02:10:11
03 03 -- 00:02:10:12 -- 00:02:42:01


Bild 5a Schnittliste
01 01 -- 00:00:00:00 -- 00:00:58:20
02 02 -- 00:01:00:24 -- 00:02:10:11
03 03 -- 00:02:10:12 -- 00:02:42:01


Bild 5b Schnittliste

Etwas aufwendiger wird es zwischen dem zweiten und dem dritten Teil des Testvideos. Da hier 15 Bilder fehlen, der Ton aber durchgängig erhalten bleiben soll, muß hier ein neues Videoteil eingefügt werden. Dieses Video erstellen wir aus dem letzten Bild vor den fehlenden Bildern. Dazu kann man z.B. Avisynth und den TMpgenc, aber auch alle möglichen anderen Programme verwenden. Die neue Videodatei, die die gleichen Eigenschaften wie die orginale Videodatei haben muß, wird in der Dateienliste geöffnet und die orginalen Audiodatei(en) hinzugefügt. Damit der Ton in der richtigen Folge abgespielt wird muß noch der richtige Offset angegeben werden. Der Offset muß mit negativem Vorzeichen angegeben werden damit die Audiodatei nach von verschoben wird. Im Beispiel ist das also die Zeit des letzten Bildes (-00:02:10.11, 130440 ms) plus ein Bild (-40 ms) + ein eventuell vorhandener Versatz (240 ms). Daraus ergibt sich -00:02:10.11 + -00:00:00.01 + 00:00:00.06 = -00:02:10.06 (-130440 ms + -40 ms + 240 ms = -130240 ms). Der Audioversatz kann im Audiooffsetfenster in der Form -00:02:10.06 oder -130240 eingegeben werden. Ob der Audiooffset richtig ist kann wieder mit der Vorschau kontrolliert werden.

01 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -960 ms
02 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -240 ms
03 Testfilm Offset
Video -> H:\Test\Testfilm Offset.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -360 ms
04 Testfilm Offset Standbild
Video -> H:\Test\Testfilm Offset Standbild.mpv
Audio -> H:\Test\Testfilm Offset.mp2  -130240 ms
Bild 6a Dateienliste
01 01 -- 00:00:00:00 -- 00:00:58:20
02 02 -- 00:01:00:24 -- 00:02:10:11
04 04 -- 00:00:00:00 -- 00:00:00:14
03 03 -- 00:02:10:12 -- 00:02:42:01








Bild 6b Schnittliste

Zwischen dem ersten und dem zweiten Schnitt wurden 1200 ms (30 Bilder) Video entfernt und zwischen den zweiten und vierten Schnitt ein Videoteil aus 15 Standbildern (600 ms) eingefügt.

Beide Varianten, Audio an Video anpassen und Video an Audio anpassen, können natürlich in einem Projekt auch gemischt werden.

Verweise: