mkvmerge von aus FLV extrahierter h264/aac -> Nicht mehr synchron!

  • Hallo,

    ich hoffe, ihr könnt mir einen Tip zur Lösung nachstehend beschriebenen Problems geben:

    Ich habe mit FLV-Extract aus einem Film im FLV-Format Video- und Audiospur extrahiert, die ich in einen Matroska-Container überführen will, damit ich den Film auch mit einer Mediatank abspielen kann und die "Qualität" aus dem FLV erhalten bleibt bzw. nicht reencodet wird.

    Als Ergebnis spuckt FLV-Extract die Dateien film.264 und film.aac aus.

    GSpot gibt zu film.flv an:

    File Type: Flash Video (.FLV)
    Mime Type: video/x-flv
    Compatibility Warning:
    Unknown Flash FLV format
    Codec: ????
    Name: Flash Video Unknown Type
    Pics: 29.989
    Frames: 29.989

    GSpot gibt zu dem extrahierten film.264 an:

    MPEG Elementary Video << { 1 vid }
    Codec: H264
    Name: H.264/AVC

    GSpot gibt zu dem extrahieren film.aac an:

    File Type: Elementary AAC Audio, ADTS hdrs
    Mime Type: audio/mpeg
    MPEG-2 LC Profile
    44100Hz 98 kb/s tot , stereo (2/0)

    VLC-Player zeigt mir allerdings beim Abspielen der FLV-Datei eine Framerate von 29,917 an, also schon mal eine andere Framerate als GSpot (vgl.oben: 29,989).

    Wenn ich nun mit MKV-Merge die film.264 und film.aac mergen will, muß ich unter "Formatspezifische Optionen" die BPS angeben. Egal, ob ich dann dort 29,917 oder 29,989 angebe: Bei der erzeugten mkv-Filmdatei laufen anschließend Film und Ton zunehmend auseinander. Auch 30,00 habe ich probiert, ohne Erfolg.

    Bei 30,0 kommt der Ton bzw. die Worte später als die Lippenbewegungen des Schauspielers, was sich mit zunehmender Abspielzeit immer mehr verstärkt.

    Bei 29,989 kommt der Ton verzögert, also NACH den Lippenbewegungen der Schauspieler. Erwähneswert ist vielleicht noch, dass VLC-Player 29,989503 anzeigt und nicht die "glatt" eingegebenen 29,989.

    Gebe ich bei MKVMerge die o.a. 29,917 ein, läuft der Ton zeitlich früher als die Lippenbewegungen. Auch dieser Effekt verstärkt sich im Laufe der Abspielzeit immer mehr. VLC-Player zeigt unter Codecdetails beim Abspielen statt der 29,917 eine Framerate von 29,917726 an.

    Kann mir jemand von Euch Hinweise zur Lösung des Problems geben?
    Es spricht ja einiges dafür, dass es an der Framerate liegt und "nur" der richtige Wert zwischen 29,917 und 29,989 gefunden werden muß. Wie aber diesen Wert finden, wenn GSpot und Mediaplayer die o.a. Werte ausgeben?

    Ehrlich gesagt, scheint mir der Weg über eine manuelle "Intervallschachtelung" ziemlich aufwendig ;-).


    Danke im voraus und freundliche Grüße
    testit

  • Vermute stark, dass die flv Videomaterial mit variabler Framerate enthält (MediaInfo --Full sollte helfen um das zu checken) und Du vermutlich keine Timecode Liste hast um mkvmerge zu sagen, wie es den raw Stream richtig multiplexen soll.
    Falls dies der Fall ist, sollte man mit FLV-Extract die timeCodes auch extrahieren können um sie dann später mkvmerge beim Multiplexen zu füttern.
    Falls dies nicht der Fall ist wäre eine genaue Analyseausgabe von 'mediainfo --Full' interessant.

    Cu Selur

    Ps.: Falls Du natürlich Pech hast, kann das Mediatank-Teil mit vfr mkvs nicht umgehen und man müsste reencoden,..

  • Hallo Selur,

    Dein Hinweis auf das Programm Mediainfo brachte mich weiter, denn diese Software zeigte folgendes an:

    Modus der Bildwiederholungsrate : konstant
    FrameRate_Mode_Original : VFR
    Bildwiederholungsrate : 29.970
    Bildwiederholungsrate : 29,970 FPS

    Ein anschließenes Muxen mit mkvmerge und 29.97 bei der Framerate brachte das gewünschte Ergebnis!

    Ich habe bisher noch nie die von Die genannte TIMECODE-LISTE genutzt. Bei FLV-Extract kann man ja wählen, dass eine solche erzeugt wird. In welchen Fällen benötige ich die TIMECODE-LISTE? Macht die Auswahl derselben von mkvmerge aus immer noch Sinn, auch wenn es nun mit den 29.970 klappt?

    Komischerweise zeigt mir VLC 30,30 Framerate an, wenn ich bei mkvmerge 29,97 als Framerate eingebe und außerdem die Timecode-Liste importiere. Wie kommt das?

    Und letzte Frage:

    Offensichtlich handelt es sich ja um das NTSC-Verfahren!

    Empfiehlt es sich, dies in PAL umrechnen zu lassen?
    Oder lässt man solche Filme so wie sie sind?

    Ich frage mich, ob ich meinen Mediatank dann auf 60Hz umstellen muß?

    Danke und nette Grüße
    testit

  • Zitat

    Empfiehlt es sich, dies in PAL umrechnen zu lassen?


    Nur wenn es Probleme beim Playbacl gibt.

    Zitat

    Ich frage mich, ob ich meinen Mediatank dann auf 60Hz umstellen muß?


    Ich weiß nicht mal ob man das kann :)

    Eine genaue Analyseausgabe von 'mediainfo --Full' wäre interessant.

  • Hallo,

    ja, bei meinem Mediatank (eine Art Popcorn Hour 110), kann man solche Sachen einstellen.

    Ich muss jetzt nur noch herausfinden, wie ich eine SRT-Datei mit mkvmerge SO inkludieren kann, dass sie nicht zwangsläufig, sondern nur auf WUNSCH eingeblendet wird. Das gelingt mir beim VLC leider bisher nicht.

    Möglicherweise löst man so etwas standardmäßig mit LEEREN Zwangsuntertiteln, wie hier erläutert.


    Unten die gewünschte Ausgabe von Mediainfo.

    Gruß
    testit

  • Man könnte ja vielleicht auch nen ordentlicheren Player als den VLC verwenden,...Denke das hauptsächliche Problem ist dadurch entstanden, dass Du irgendeiner Anzeige des VLCs bzgl. der Framerate geglaubt hast. Videoplayer zeigen da aber öfter mal was nicht so korrektes an. ;)

    Timestamps musste nur extrahieren und beim Multiplexen nutzen, wenn 'Modus der Bildwiederholungsrate' VFR anzeigt und nicht wie bei DIR CFR. :)

    Cu Selur

  • Man könnte ja vielleicht auch nen ordentlicheren Player als den VLC verwenden,...Denke das hauptsächliche Problem ist dadurch entstanden, dass Du irgendeiner Anzeige des VLCs bzgl. der Framerate geglaubt hast. Videoplayer zeigen da aber öfter mal was nicht so korrektes an. ;)

    Mir ist softwareseitig kein "ordentlicherer" Player bekannt als der VLC!

    Außerdem war ich bis heute davon ausgegangen, dass zumindest GSpot "ordentlich" arbeitet, welches ja ebenfalls die falsche Framerate angezeigt hat.

    Danke Dir für den Hinweis bzgl. der Timecodes und VFR!

    Gruß
    testit

  • Außerdem war ich bis heute davon ausgegangen, dass zumindest GSpot "ordentlich" arbeitet, welches ja ebenfalls die falsche Framerate angezeigt hat.


    GSpot unterstützt die Analyse vieler Formate nur rudimentär. Außerdem ist die letzte Version immerhin 4 Jahre(!) alt. Besser (wie "Selur" schon schreibt) MediaInfo benutzen - das ist ein besserer Allrounder und wird zudem aktuell gehalten.

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

Jetzt mitmachen!

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