Video wird nach Konvertierung asynchron?

  • Ich konvertiere zur leichteren Archivierung diverse Fansubs von XviD nach AVC.
    An sich kein Problem, ich nutze dafür normalerweise AE_Standard CQ 24 und Vorbis Q-1.
    Aber ich hab grad zwei Dateien mit LC-AAC und XviD. Nach AVC und Vorbis konvertiert sind Subs und Audio total asynchron.
    Mit anderen Worten, das Video ist das Problem. Wenn ich Vorbis mit dem originalem XviD Stream muxe, passt alles. Nehme ich den AVC-Stream ist es asynchron.

    Ich hab nur wenig Lust, das jetzt auszukorrigieren. Kann mir mal jemand erklären, was da eigentlich passiert?

    Danke.

    Nachtrag: Die ersten 50s ist das Video mit dem Rest noch synchron. Direkt nach dem Kurzintro ists dann asynchron.

  • Moin Deinorius,

    ich denke, daß liegt eventuell an der Tonfrequenz. Eine scheint 48 kHz zu haben und die andere 44,1 . Zumindest wäre sowas typisch für Asynchronität. Zumal die ersten 50s noch synchron laufen.

    Gruß,
    7ven

  • Und wieso bleibt das Video synchron, wenn ich den originalen XviD Stream muxe?
    Aber vielleicht hast du ja recht, die Untertitel sollte ich erstmal nicht beachten. Was kann ich dagegen tun?

    Mal so nebenbei, wenn ich das Video demuxe, hat es eine Länge von 30:42 statt 30:02 min. Ein Anzeichen für vfr?
    Komprimiert und gemuxt ergibt es aber dennoch die selbe Asynchronität.

    Ich müsste beim Komprimieren des Videos doch auf irgendwas achten können, damit es synchron bleibt.

  • XVid mit variabler Framerate?

    Aber Framerate ist eine gute Idee: Was sagen denn verschiedene Tools zur Framerate: VD, GSpot, AviMuxGUI,...

    [edit]
    Womit muxxt Du? Wmoit demuxxt Du?
    Beschreibe mal, genau den Arbeitsablauf, inkl. Programme...

    Grüße!
    Trekkie2

  • 1. Tip: Wieso nimmst Du DirectShowSource und nicht Avisource?
    2. Was sagt Avisynth mittels info() über die Framerate?
    3. Was hat Dein mkv für ne angezeigte Framerate?

    Grüße!
    Trekkie2

  • zu 3: Ach, ich dachte, Du hättest oben die fps der Quelle angegeben - nu blick ich nicht ganz durch, welche Framerate Du wo angegeben hast, aber ich geh mal davono aus, dass Du VOR und NACH dem Encoden geprüft hast und immer 23.976 rauskamen.

    Also sind irgendwo Frames verloren gegenangen. Laut dem, was Du zu 1. schreibst, gehen diese Frames unmittelbar beim Encoden verloren:
    Vorher 30:42 @ 23.976fps
    Hinterher: 30:02 @ 23.976fps
    Habe ich das alles richtig verstanden? Dann solltest Du an dieser Stelle den Fehler weiter eingrenzen.

    Was steht sonst noch im Skript, kannst Du das mal bitte komplett hier posten?
    Zur Sicherheit: Wie viele Frames hat das Video vor und nach dem Encoden (möglichst auch wieder mit VD und GSpot gegenprüfen)?

    P.S.:
    Würde mir hier ja gerne mal meGUI ansehen, aber es behauptet, ich hätte nen alten Dot.Net-Framework installiert, obwohl ich den Neuesten von Microsoft geladen habe...
    Aber ich tippe eher mal nicht auf die GUI...

    Grüße!
    Trekkie2

  • Also nach der Shell Extension hat die Quelle eine Framerate von 23,976 fps. Die komprimierten Dateien hingegen 23,976044 fps. Das sind Abweichungen, die bei anderen Quellen keine Probleme machen.

    Das irgendwo Frames verloren gegangen sind, kann ich mir nicht wirklich vorstellen. Aber du hast mich darauf aufmerksam gemacht, auch bei den Frames nachzuschauen. Tatsächlich hat die Quelle als .avi 44710 Frames, während die Quelle im .mkv nur 43205 Frames hat. Ich betone, dass ich hier nur von der Quelle rede. oO
    Die komprimierte Datei hat dann 43204 Frames.

    Im Skript hab ich nur den Sourcebefehl.

    MeGUI braucht .NET 2.0. Sicher, dass du diese Version hast? Aber MeGUI ists sicher eh net.

  • Kurzer Nachtrag:
    Wenn ich das Video als .avi komprimiere bleibt die Länge gleich bei 30:42 min, also 44170 Frames. Hilft aber bei der Synchronität auch nicht weiter.

    Video in .mkv: 43205 Frames
    Video in .avi: 44710 Frames

    Wie soll ich das denn bitte verstehen. Wäre es vfr müssten entweder gleich viele Frames drin sein oder weniger in .avi. Die Länge im .avi Container wäre auch kürzer, aber nicht länger.
    Was ist das bitte? ???

    Edit: Wenn in der .mkv Datei dennoch eine Timecodes.txt drin ist, wie kann ich die demuxen. mkvextract zeigt nicht an, ob eine timecode.txt enthalten ist. Bei der Shell Extension steht auch nix. Probehalber hab ich das bei einer anderen Datei überprüft.

  • Wie viele Frames hat Dein Avisynth-Skript (in VD geladen)?

    Wie war das: info() blendet auch die Framenummer mit ein, oder? Kontrollier das auch mal noch, indem Du (mit info() im Skript) zum letzten Frame gehst.

    Grüße!
    Trekkie2

  • Hm, ich kenne mich mit mkv nicht aus, aber kannst Du bitte nochmal ganz stur (um alle Fehlerquellen auszuschließen):

    -Ursprungsfile demuxxen (-> avi)
    -avs mit avisource basteln
    -encoden (->avi)
    -muxxen (->mkv)

    Und bitte nach jedem Schritt die Anzahl der Frames kontrollieren!

    Grüße!
    Trekkie2

  • Nun, da ich das schon gemacht hab, nur mal die Checklist:

    - Hab ich.
    - Hab ich.
    - Nur bei diesem Schritt wird gleich in den .mkv Container komprimiert, da ich mit der CLI komprimiere. Da gibts entweder RAW (kann mkvmerge nicht bearbeiten), .mp4 oder .mkv.
    - Entsprechend wird hier dann mit den anderen Tracks wieder gemuxt.

    Edit: Nur um noch sicher zu sein. Mit diesem Weg, hat das Video 41770 Frames. Wenn ich über Directshowsource komprimiere, sind 43205 Frames.

  • Wie jetzt? Bei diesem Weg kommt nochmal was anderes raus?

    Hm, womit werden die Files denn decodiert? Hast Du mal Gspot befragt, ob evtl. ein ungeeignter/seltsamer/defekter Decoder verwendet wird?

    Grüße!
    Trekkie2

  • Hast du einen aktuellen Haali Media Splitter?

    Kannst du mal mit MPC checken, was zum Splitten der mkv für ein Directshowfilter verwendet wird, denn es scheint so, als ob dieser Frames verschluckt.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Als Decoder nutze ich eh CoreAVC. ;) Haali Media Splitter ist eh aktuell.

    Ich hab das Problem schon gelöst.
    Als ich bei der HP von Haali nachgeschaut hab, ist mir sein Prog mkv2vfr.exe aufgefallen. Diese Anzeichen bei der Datei sahen für mich schon immer wie nach vfr aus, also hab ichs grade eben probiert. .avi und die timecode.txt extrahiert. Die vorher schon komprimierte AVC.mkv damit und den anderen Tracks gemuxt und voila. Alles synchron. :D

    Es handelt sich wirklich um ein vfr Video. Das löst zugleich mein Problem mit einer anderen Datei... ^^


    ...und bringt wieder ein Neues. Ich hab anscheinend wieder so ne Datei mit einem vfr Videostream. Wäre ja jetzt kein Problem, aber leider ist es schon AVC-Stream. mkv2vfr.exe kann mir hier nicht helfen. Damit kann ich nur .avi und die .txt extrahieren. Aber RAW AVC Streams stehen leider nicht im Programm.
    Soll ich den Stream vielleicht sogar in ein .avi konvertieren?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!