mpeg2 + direct stream copy

  • Falsche Zeitangabe aber richtiges Abspielen hört sich nach Problemen beim Muxen an.


    Das war auch mein erster Gedanke. Aber die falsche Zeit ist bereits nach dem Demuxen in der Video-Datei, also bevor sie mit Cuttermaran geschnitten und mit dem Ton wieder zusammengeführt wurde.
    Also wenn noch jemand Ideen hat oder Ähnliches kennt immer raus damit!


    LG, Thomas

  • Definitiv NEIN!
    Der Beitrag um den es geht ist 24min lang. Er soll aus einer 45min Aufzeichung herausgeschnitten werden. Das Original Mpeg2-File läuft auch wirklich 45min. Dies wird auch im Media-Player so angezeigt. Das Video-File nach dem Demuxen lüft ebenfalls 45min, angezeigt wird aber nur 20:38 min.


    Thomas

  • >Das Video-File nach dem Demuxen lüft ebenfalls 45min, angezeigt wird aber nur 20:38 min.


    Nochmal: DAS IST 'NORMAL', da WMP und Konsorten das nicht richtig machen. Nach dem Muxen kann es wieder 'richtig' angezeigt werden, ist aber wie schon weiter oben bemerkt 'Muxer' abhängig. Bei elementaren Streams können WMP und Konsorten die Lauflänge nur für CBR Streams richtig angeben.
    Die Bestimmung der Lauflänge ist bei elementaren (VBR) Streams 'schwierig' (sie steht nirgends in der Datei) und eigentlich nur korrekt, wenn man die einzelnen Bilder 'zählt' und durch die Framerate dividiert. Px und Cuttermaran machen genau das. Ein anderer häufig verwendeter 'Trick' besteht darin, die Zeitangaben aus dem ersten und letzten GOP Header auszulesen und diese Differenz als Lauflänge anzugeben. Mache ich z.B. in GfD so, die Methode funktioniert bei gesäuberten Streams (aus Px oder Cuttermaran) gut, ist aber nicht 'unfehlbar', da es durchaus erlaubt ist, die mitten in der mpg Datei 'zurückzusetzen' - viele Sender tun das auch, wird aber von Px und/oder Cuttermaran korrigiert.
    Nach dem Muxen kann man die Lauflänge aus dem Audioteil verwenden (Audio ist CBR), oder die SCR Zeitmarker verwenden (die werden vom Muxer gesetzt). Welche Methode WMP und Konsorten hier verwenden weiß ich allerdings auch nicht. Erfahrungstatsache ist jedenfalls:
    1. Bei elementaren Streams zeigen WMP und Konsorten immer 'Mist'
    2. Bei gemuxten Dateien hängt es vom Muxer ab, ob es korrekt angezeigt wird, oder nicht. Was aber nicht heißt, dass bei 'falscher' Anzeige die Datei 'fehlerhaft' ist.

  • Ich verstehe langsam, also Danke für deine ausführliche Erklärung!


    Da die falsche Zeit bei mir auch in der Zieldatei nach dem Schneiden und Muxen mit Cuttermaran auftaucht, liegt das "Übel" wohl in den Standardeinstellungen von Cuttermaran. Gibt es da entsprechende Parameter oder Schalter, die noch manuell gestezt werden müssen?


    Thomas

  • Solange Video in einem System- oder Program-Stream gemultiplext ist, gibt es meist regelmäßig Zusatzinformationen, die beim Synchronisieren mit anderen Streams, beim Hineinspringen und beim Bestimmen der Länge helfen.


    Elementar-Streams haben diese Zusatzinformationen nicht mehr. Sie haben aber am Anfang einen Eintrag, der teilweise die durchschnittliche, teilweise die maximale Bitrate nennt. Dieser Eintrag ist dann die Berechnungsgrundlage für Mediaplayer, die Spieldauer zu bestimmen.


    Leider werten die Player diesen Eintrag oft falsch, z.B. halten sie diesen Wert für Durchschnitt, auch wenn er in Wirklichkeit die Maximum-Einstellung im Encoder darstellt. Die einfache Rechnung "Spieldauer = Dateigröße / Bitratenwert" würde nur stimmen, wenn der eingetragene Wert den Durchschnitt angibt -- gibt er das Maximum an, kommt eine zu kurze Spieldauer heraus.


    Wenn ich mich recht erinnere, könnte ReStream diesen Wert neu berechnen. Aber es gibt eventuell Programme, die wiederum am liebsten den Maximalwert an dieser Stelle hätten... Man sollte dann lieber auf die im Mediaplayer falsch angezeigte Spieldauer pfeifen und darauf vertrauen, dass nach dem Authoring zu einer neuen DVD die Werte wieder stimmen.

  • tach auch !

    Wenn ich recht erinnere gibt es auch eine Funktion Zeitindex neu berechnen und schreiben
    Bei ProjectX und/oder Cuttermaran.

    Muß ich mal nachschauen. Denn bei mir tritt das Phänomen auch auf.
    Umgewandelt in XVID stimmen die angezeigten Zeiten wieder, also stört es mich nicht.

  • Wie schön dass ich nicht der einzige bin.


    Mein Grundgedanke war (und ist es eigentlich immer noch) das Herausschneiden verlustlos mit 'direct stream copy' zu tun, da bei einem Neukodieren immer Verluste auftreten und aus meiner Sicht nichts gegen Mpeg2 spricht.
    Die Funktion 'Zeitindex neu berechnen' werde ich auf jeden Fall noch mal suchen und austesten. Ansonsten kann ich auch mit der falsch angezeigte Laufzeit leben - ich weiß ja, dass die wirkliche Laufzeit richtig ist und warum der Fehler auftritt.


    Nun verabschiede ich mich ins Wochenende und wünsche euch ein schönes solches.


    Thomas


  • tach auch !

    Beim Streamenwird genau gar nichts am Bild gemacht, bei PX und Cuttermaran auch nicht.
    Es wird nur "umgespult" und einiges neu in die Header geschrieben.
    Eben Direct Stream copy.

    Einzig an Schnittstellen berechnet Cuttermaran auf Wunsch eine GOP neu.