Hallo,
ich hab jetzt schon viel dazu gelesen, irgendwie wird's aber nicht klar. Ich fang jetzt mal so an:
Warum braucht AAC-LE in MKVs ein delay (mkvmerge setzt automatisch 20ms), AC3, DTS (mkvmerge setzt 0ms) aber zB nicht?
- obwohl AC3/DTS auch MDCT-Algorithmen verwendet (wie fast alle) und somit _auch_ ein sog. priming des decoders braucht.
Insb. schneidet eac3to ein vorhandenes delay eines Audiostreams weg (=PTS Differenz zwischen Video+Audio), aber beim neuen Multiplexen in mkvmerge als:
DTS: wird kein delay hinzugefügt, eine DTS-priming-Zeit wird also fehlerhafterweise(?) ignoriert.
AC3: wird kein delay hinzugefügt, eine AC3-priming-Zeit wird also fehlerhafterweise(?) ignoriert.
MP3: wird kein delay hinzugefügt, eine MP3-priming-Zeit wird also fehlerhafterweise(?) ignoriert.
AAC: wird aber ein delay hinzugefügt.
Diese En/DEcoder-Verzögerungen sind unterschiedlich und leider oft im Bereich, dass man es kaum merkt. Manchmal ist's aber doch störend - bei seamless-play ist eine exakte Synch sowieso erforderlich.
Am TV kommen noch zusätzliche Video-Verzögerungen dazu, weil da irgendwelche Aufbereiter arbeiten und dann murkst man selber noch am HDMI-delay rum, aber *immer* passt's nie.
Jetzt gibt's einige Verwirrungen meinerseits, wg ENcoder und DEcoder-delay:
1. welcher ENcoder hat welches delay? Insb. wieviel leer-frames/ms werden eingefügt, die dann auch beim decoding wieder verschluckt werden?
2. Welcher DEcoder hat welches delay? Insb. tritt dies nur am PC auf oder auch bei hardware-decoder (AV-receiver)?
3. Kann man bei Kontainerformaten generell eine Synchronität erwarten? Immerhin hat man video und audio, aber warum bekommt AAC +20ms, AC3 aber nicht?
Etwas zum Nachlesen zum MP3-delay:
http://mp3decoders.mp3-tech.org/decoders_lame.html
http://lame.sourceforge.net/tech-FAQ.txt
aber naja, diejenigen wissen schon, wo die Quellen sind.
Hat da jemand Durchblick? Wie (wo was warum) man das synchron bekommt?
Grüße...