Tanneks site of Life

'baun, schrauben, wiegen und schmieden Platinen, Kabelsalat, programmieren Maschinen..

Videoencoding - Audio/Video Delay: Probleme und Loesungen


Beim Encodieren von Videos ist meist das groesste Problem, dass die Audiospur nicht zum Bild passt. Entweder:

   1. ist die Audiospur von Anfang verschoben (das gute alte "A/V-delay")
   2. oder die Audiospur wird im immer verschobener (manchmal ein NTSC=>PAL problem)


Der erste Teil kommt sehr haeufig beim DVD-rippensicherheitskopieerzeugen vor. Grund ist das missachten der VOB-Datei in der der Startzeitpunkt (als Program Time Stamp - PTS)  der Video- und der Audiospur steht. Um nun den Offset aus der VOB-Datei zu bekommen, kann man sich eines Programms wie: DVD2AVI bedienen. Das parst die VOB-Datei in der getBit.c:
code = Get_Byte();
AudioPTS = (code & 0x0e) << 29;
AudioPTS |= (Get_Short() & 0xfffe) << 14;
AudioPTS |= (Get_Short()>>1) & 0x7fff;

fuers Audio; Und aehnliches auch fuers Video. Danach wird mit:
 (AudioPTS-VideoPTS)/90 


die Differenz der beiden gebildet und durch die 90Hz der PTS timestamp
units geteilt. Und fertig ist das Offset des Audios in ms. Diese
Differenz muss man nun nach dem encodieren vom Video und vom Audio beim
zusammen-muxxen angeben. Fertig.

Beim 2. Fall ist es leider nicht so leicht im Vorfeld sowas zu erkennen (ausser
man hat tatsaechlich eine amerikanische NTSC DVD und will diese in ein
PAL-Video encodieren; Fuer diesen Fall bieten aber sogut wie alle
GUI-DVD-ripper eine "NTSC=>PAL"-checkbox).

Da es
eigentlich immer aergerlich ist, wenn man nach n Stunden encoding
Fehler entdeckt, ist es sehr ratsam vorher ein Sample zu erstellen.
Wenn man das auf 1min begrenzt, kann man sogar sehr leicht die zu
erreichende Dateigroesse abschaetzen. Ausserdem sieht man, ob die
encodier-optionen den gewuenschten Effekt erzielen. Eine
A/V-verschieben (1.Fall) kann man dabei auch erkennen. Aber den 2.Fall
hoert man mit dem blossen Auge meisst nicht (1% Abweichung sind bei 1min Spielzeit ca. eine halbe Sekunde - Bei 90min Spielzeit ca. 1Minute)!

Dafuer kann man aber ein Programm (wie von mir schon oefters Erwaehnt) wie Avidemux nutzten. Einfach das Sample laden und dann auf den "Eigenschaften"-Button (rot umkreist) klicken:

Zu
sehen bekommt man jetzt verschiedene Information - darunter auch die
Laenge der Videospur und die der Audio. Aus dem Quotienten der
Videospur zur Differenz der beiden Spuren kann man ueber einfachsten
Dreisatz die Laenge der Audiospur bei einer laengeren Videospur
abschaetzen und somit auch sehen wie gross die Verzoegerung seien wird.

Wenn
man keine Lust auf neu-encodieren hat: Denn nehme man ein Audioeditor
seiner Wahl (z.B.: BeSweep ) und passt eben die Laenge der Audiospur
die der Videospur an. Danach wieder muxen. Fertig.

Und das naechste Mal erklaere Ich, was ein Video/Subs - Delay ist und wie man sowas behebt B-)


Trackbacks

Trackback-URL für diesen EintragTrackback URL

Kommentare

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA