Hallo,
hier die Zusammenfassung, wie von Eriman angeregt:
Der Übersichtlichkeit wegen sind die Punkte meist thematisch und nicht chronologisch geordnet
Was wollte ich machen?
- Star Trek (kabel1) über DVB-S aufnehmen -> mpg (andere Formate werden von der Hauppauge-Softw. nicht unterstützt)
- mit ProjectX demuxxen und korrigieren (mit Lossless Conversion Single to Stereo) -> mpv/mp2
- mit MPEG2Schnitt Werbung rausschneiden -> mpv/mp2
- Zu XViD komprimieren (auf verschiedenste Arten, s.u.) -> avi + Ton (egal in welchem Format)
Problem:
Nach dem Codieren in XViD war der Ton bei vielen Folgen asynchron, die ersten Minuten war noch Nix zu merken, aber der Ton lief immer mehr dem Bild hinterher (Man sieht, die Lippen bewegen sich und später hört man dann, was gesagt wird). Am Ende werden dann ein paar Frames vom Anfang wiederholt (im Folgenden "Füllframes" genannt), also etwa (wenn die Folgen 60000 Frames hat und 8 wiederholt werden):
1, 2, 3,..., 59999, 60000, 1, 2, 3, 4, 5, 6, 7, 8
Verblüffend war für mich:
1. Die mpeg-Dateien waren synchron: Swohl die Kombination aus mpv/mp2, als auch mit bbMPEG/TMPGEnc gemuxxte Versionen waren synchron.
2. Wenn ich mein (oder das von GK) AviSynth-Skript in VDM geladen und das Ende nach "Füllframes" durchsucht habe, war alles wies sein sollte.
Zuerst hatte ich folgenden Arbeitsablauf zum Rendern:
- mit DVD2AVI/DGIndex ein d2v-File erstellen
- in GordianKnot 28.8 / 32.2 laden und rendern (eine genauere Beschreibung der Einstellungen bringt hier Nichts, da es daran nicht lag, auch nicht an B-Frames oder Packed Bitstream)
Lösungsansätze (alle ohne Erfolg):
1. GK als Fehlerquelle ausschließen:
1a) GK32.2 zusätzlich zu 28.8 probiert (insbes. wg. Umstieg auf DGIndex)
1b) avs in GK erstellt und dann direkt in VirtualDubMod 1.5.10.1 geladen.
1c) andere VDub/VDubMod probiert.
2. VDMod als Fehlerquelle ausschließen: Dafür wollte ich AVS2AVI verwenden, das ist aber Unfug, weil im AVS2AVI-Code Teile von VDubMod verwendet werden.
So danach war ich der Ansicht, daß es nur noch am Codec liegen kann, weil ich alles andere ja ausgeschlossen hatte, insbes. ist DGdecode ja eine Neufassung von mpeg2dec-Versionen, die gerade keine Frames mehr verlieren soll.
3. Das Ganze mal mit HuffYUV komprimiert. Interessant, weil dieser Codec jeden Frame für sich (ohne Referenzen auf andere Frames) komprimiert. Das Problem bestand auch hier, den Codec konnte ich damit also auch ausschließen -> Da sehe ich: Es gibt hier keinen Verzweifelt-Smiley
4. Files remuxxed mit bbMPEG/TMPGEnc und entweder direkt in DGIndex oder nochmal durch ProjectX.
Dann kamen wir dem Problem langsam näher, ab hier funktionierte auch mal ein bischen was::
5. Statt DGdecode DirectShowSource im avs verwendet um die Datei zu laden: Viele Programm-Abstürze/Hänger, weil ich mehrere MPEG2-Codecs im System habe. Zusammenfassend kann man aber sagen, daß es einmal mit einem grünen Balken am Rand SYNCHRON funktioniert hat, aber daß die ganze Sache auf meinem System nicht stabil genug lief...
Damit war DGIndex als Fehlerquelle ausgemacht, aber ich konnte sie noch nicht beseitigen, weil die Alternative nicht funktionierte...
...bis zu Selurs Idee:
Nics MPEGDecoder: http://nic.dnsalias.com/MPEGDecoder/MPEGDecoder_YV12.zip
Damit ging plötzlich alles (bis aufs Deinterlace - damit werd ich wohl mal einen neuen Thread in der Avisynth-Abteilung aufmachen)
Ich hab hier mal ein Beispielskript angehängt:
LoadPlugin("C:\Programme\AviSynthPlugins\MPEGDecoder_YV12\MPEGDecoder.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\decomb.dll")
mpegSource("V:\StarTrekTNG\StarTrekTNG_1x11.mpv")
FieldDeinterlace(blend=false)
crop(16,2,694,572)
LanczosResize(640,480)
Die Veränderungen zum GK-Skript sind:
- Nics MPEGDecoder_YV12 statt dgdecode -> mpegSource statt mpeg2source
- DeInterlace vor Crop
OK, das wars, damit funktionierts bei mir!
Vielen Dank an alle, die mir geholfen haben, insbesondere an Selur, der mir noch Alternativen aufgezeigt hat als ich schon aufgegeben hatte
Und letzte Frage:
Kann man diesen Thread evtl. zu "DVB- und HDTV-Capturing" verschieben? Da gehört er ja eigentlich hin, weil vermutlich Defekte innerhalb der Frames DGdecode zu diesem Fehlverhalten bewegt haben...
Trekkie2