HD H.264 TS in MP4-Container umpacken

  • Versuche jetzt seit einigen Tagen vergeblich meine HD Aufnahmen in ein anderes Format zu bringen: Möchte einen h.264 Stream in einen mp4 Container packen, bekomme aber am Ende immer nur eine nicht korrekt laufende Datei dabei heraus (Bild zuckelt bei VLC oder wird im WMP gar nicht abgespielt).

    Hier mal mein Workflow:

    Habe einen mit einem Edision Receiver aufgezeichneten HD .ts Stream. Da der Edison (wie auch z.B. die Comag Teile) die Aufnahmen in 1GB große Dateien gesplittet auf der Festplatte ablegt, habe ich den TS zunächst mit dem Tool dvrmerge zusammengefügt.

    -> Quellmaterial (TS Ausschnitt - 10MB)

    Code
    AllgemeinID                               : 801Vollständiger Name               : C:\Users\Thomas Miller\Desktop\EWS\ews.tsFormat                           : MPEG-TSDateigröße                       : 14,9 GiBDauer                            : 3h 9minGesamte Bitrate                  : 11,2 MbpsVideoID                               : 2362 (0x93A)Menü-ID                          : 10000 (0x2710)Format                           : AVCFormat/Info                      : Advanced Video CodecFormat-Profil                    : Main@L4.0Format-Einstellungen für CABAC   : JaFormat-Einstellungen für ReFrame : 4 framesDauer                            : 3h 9minBitrate                          : 10,2 MbpsBreite                           : 1 440 PixelHöhe                             : 1 080 PixelBildseitenverhältnis             : 16:9Bildwiederholungsrate            : 25,000 FPSColorSpace                       : YUVChromaSubsampling                : 4:2:0BitDepth/String                  : 8 bitsScantyp                          : InterlacedScanreihenfolge                  : oberes Feld zuerstBits/(Pixel*Frame)               : 0.262Stream-Größe                     : 13,5 GiB (91%)colour_primaries                 : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177transfer_characteristics         : BT.709-5, BT.1361matrix_coefficients              : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177Audio #1ID                               : 2363 (0x93B)Menü-ID                          : 10000 (0x2710)Format                           : AC-3Format/Info                      : Audio Coding 3Format_Settings_ModeExtension    : CM (complete main)Dauer                            : 3h 9minBitraten-Modus                   : konstantBitrate                          : 256 KbpsKanäle                           : 2 KanäleKanal-Positionen                 : Front: L RSamplingrate                     : 48,0 KHzBitDepth/String                  : 16 bitsVideo Verzögerung                : -335msStream-Größe                     : 348 MiB (2%)Sprache                          : EnglischAudio #2ID                               : 2369 (0x941)Menü-ID                          : 10000 (0x2710)Format                           : MPEG AudioFormat-Version                   : Version 1Format-Profil                    : Layer 2Dauer                            : 3h 9minBitraten-Modus                   : konstantBitrate                          : 192 KbpsKanäle                           : 2 KanäleSamplingrate                     : 48,0 KHzVideo Verzögerung                : -408msStream-Größe                     : 261 MiB (2%)Sprache, nähere Info             : Clean effectsMenüID                               : 288 (0x120)Menü-ID                          : 10000 (0x2710)Dauer                            : 3h 9minListe                            : 2362 (0x93A) (AVC) / 2363 (0x93B) (AC-3, Englisch) / 2369 (0x941) (MPEG Audio)Sprache                          :  / Englisch

    Den Transportstream habe ich dann mit dgavcdec in seine Bestandteile demuxed und dabei u.a. eine h.264 Raw-Datei sowie einen AC3 Audiostream erhalten.

    Code
    Stream Type: Transport [188]Profile: MainLevel: 4Frame Size: 1440x1080SAR: 4:3Display Size: 1920x1080Frame Rate: 25.000000 fpsColorimetry: BT.709 [1]Frame Structure: Fields (TFF)Frame Type: not yetCoded Number: 254772Playback Number: 254772Frame Repeats: 0Field Repeats: 0Bitrate: 9.894Bitrate (Avg): 9.851Bitrate (Max): 12.045Audio Stream: 93b: AC3 2/0 48 256Audio Stream: 941: MPEG2 L2 2ch 48 192Elapsed: 0:19:46Remain: 0:01:01FPS: Info: Finished!

    -> Demuxed Video (h.264 Ausschnitt - 10MB)

    Code
    AllgemeinVollständiger Name               : C:\Users\Thomas Miller\Desktop\EWS\ews.demuxed.264Format                           : AVCFormat/Info                      : Advanced Video CodecDateigröße                       : 12,0 GiBVideoFormat                           : AVCFormat/Info                      : Advanced Video CodecFormat-Profil                    : Main@L4.0Format-Einstellungen für CABAC   : JaFormat-Einstellungen für ReFrame : 4 framesBreite                           : 1 440 PixelHöhe                             : 1 080 PixelBildseitenverhältnis             : 16:9Bildwiederholungsrate            : 25,000 FPSColorSpace                       : YUVChromaSubsampling                : 4:2:0BitDepth/String                  : 8 bitsScantyp                          : InterlacedScanreihenfolge                  : oberes Feld zuerstcolour_primaries                 : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177transfer_characteristics         : BT.709-5, BT.1361matrix_coefficients              : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

    -> Demuxed Audio (AC3 Ausschnitt - 10MB)

    Code
    AllgemeinVollständiger Name               : C:\Users\Thomas Miller\Desktop\EWS\ews PID 93b 2_0ch 48KHz 256Kbps DELAY -91ms.ac3Format                           : AC-3Format/Info                      : Audio Coding 3Dateigröße                       : 311 MiBDauer                            : 2h 49minGesamte Bitrate                  : 256 KbpsAudioFormat                           : AC-3Format/Info                      : Audio Coding 3Format_Settings_ModeExtension    : CM (complete main)Dauer                            : 2h 49minBitraten-Modus                   : konstantBitrate                          : 256 KbpsKanäle                           : 2 KanäleKanal-Positionen                 : Front: L RSamplingrate                     : 48,0 KHzBitDepth/String                  : 16 bitsStream-Größe                     : 311 MiB (100%)

    Anschließend habe ich dann die h.264 und AC3 Spuren mit den Standardeinstellungen über Yamb (mp4box) versucht in einen mp4 Container zu packen.

    -> Zieldatei (mp4 Ausschnitt - 10MB)

    Neben TS Doctor (aus der aktuellen c't) habe ich es alternativ auch schon mit anderen Programmen (Super, tsmuxer, mp4muxer) versucht - und bekomme doch immer eine nicht richtig laufende Datei dabei heraus, die weder unter Windows 7 noch unter MacOS korrekt und flüssig abgespielt wird.

  • Mal versucht anstatt dvrmerge eher tsMuxeR zu verwenden zum Zusammenfügen, so wie ich das sehe haben die meisten Tools (ausgehend vom Inputsample) Probleme damit den Inputtransportstream richtig zu analysieren und zu handhaben.
    (remuxen sollte dann auch gehen,..)

    Alternativ:
    Den mit dvrmerge zusammengefügten Transportstream mit gdsMux (kommt mit dem Haali Media Splitter) öffnen, unten eine Datei mit .mp4 Endung als Ausgabe angeben und speichern. (klappt bei mir mit dem Inputsample ohne Probleme)

    Cu Selur

  • Leider hast du da wo die Zieldatei verlinkt sein soll nochmal die Quelle verlinkt.


    Ups, danke für den Hinweis. Werde zu Hause mal nachsehen, ob ich den korrekten Link noch im Browser-Cache finde.


    Alternativ:
    Den mit dvrmerge zusammengefügten Transportstream mit gdsMux (kommt mit dem Haali Media Splitter) öffnen, unten eine Datei mit .mp4 Endung als Ausgabe angeben und speichern. (klappt bei mir mit dem Inputsample ohne Probleme)


    Danke, werde mir das Tool mal anschauen. Wie sieht es denn dann mit dem Audio Delay aus? Muss ich da für die Audiospur einen entsprechenden Wert eintragen oder kümmert sich das Programm automatisch um die Synchonisierung?

    Und etwas anderes: Kann ich über das "Attachement" Feature eigentlich auch ein Filmcover mit in den .mp4 Container einbinden?

  • k.A. Welches "Attachement" Feature Du genau meinst, aber der mp4 Container unterstützt das anhängen von Bildern, ob ein Player sie anzeigt liegt natürlich am Player. :)
    Ob die Attachment Option von gdsmux dafür verwendet werden kann weiß ich ehrlich gesagt nicht -> einfach mal antesten. (remuxen geht ja flott)

    AudioDelay solltest Du bei gdsmux nicht anpassen müssen. Falls Du die .ts Files mit etwas anderem nach .mp4 remuxed kommt es auf das Tool an. :)

    Cu Selur

  • Hatte nun endlich mal Zeit das oben empfohlene Tool "gdsMux" ausprobiert und damit tatsächlich eine mp4 Datei herausbekommen die ich mit VLC unter Windows 7 abspielen konnte. Leider dauert der Start der rund 8GB großen Datei doch deutlich länger als der gleiche Film in der TS Quelle. Ist das korrekt so?

    Eigentlich wollte ich mit dgsplit auch von der neuen mp4 Datei ein kurzes Beispiel hochladen, aber die gesplittete Datei konnte ich dann leider nicht abspielen. Kann man mp4 Dateien nicht einfach (wie ts oder mkv) zerschnippeln?

    Kann ich mit gdsMux eigentlich auch eine externe Audiospur hinzufügen? Möchte nämlich eigentlich die AC3 Spur in AAC umwandeln...

    EDIT: Habe jetzt versucht, den TS einfach vor dem konvertieren nach MP4 mit dgsplit in 4GB Teile zu splitten. Leider läuft hinterher aber nur noch die erste Datei, während die anderen schwarz und ohne Ton abgespielt werden.

    Edited once, last by TOMillr (September 13, 2010 at 12:32 PM).

  • mp4 Dateien kann man wie transportstreams und mkv files mit dafür vorgesehenen tools splitten.
    (z.B. mit Yamb, welches eine graphische Oberfläche für mp4box ist)

    Quote

    Kann ich mit gdsMux eigentlich auch eine externe Audiospur hinzufügen?


    Ja, man kann mit gdsmux oder yamb auch externe audiostreams hinzumuxen.

    Quote

    Habe jetzt versucht, den TS einfach vor dem konvertieren nach MP4 mit dgsplit in 4GB Teile zu splitten. Leider läuft hinterher aber nur noch die erste Datei, während die anderen schwarz und ohne Ton abgespielt werden.


    DGSplit ist ein binary splitter, d.h. er teilt einfach nach einer bestimmten Größe ohne auf die darunterliegende Struktur zu achten, was gerade bei Mediendaten aber enorm sinnig ist. (man sollte i.d.R. nur an Keyframes schneiden, wenn man nicht reencoden will)

    Cu Selur

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!