HD h.264 TS in mp4 Container packen

Begonnen von TOMillr, August 09, 2010, 23:00:54

« vorheriges - nächstes »

TOMillr

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)

Allgemein
ID                               : 801
Vollständiger Name               : C:\Users\Thomas Miller\Desktop\EWS\ews.ts
Format                           : MPEG-TS
Dateigröße                       : 14,9 GiB
Dauer                            : 3h 9min
Gesamte Bitrate                  : 11,2 Mbps

Video
ID                               : 2362 (0x93A)
Menü-ID                          : 10000 (0x2710)
Format                           : AVC
Format/Info                      : Advanced Video Codec
Format-Profil                    : Main@L4.0
Format-Einstellungen für CABAC   : Ja
Format-Einstellungen für ReFrame : 4 frames
Dauer                            : 3h 9min
Bitrate                          : 10,2 Mbps
Breite                           : 1 440 Pixel
Höhe                             : 1 080 Pixel
Bildseitenverhältnis             : 16:9
Bildwiederholungsrate            : 25,000 FPS
ColorSpace                       : YUV
ChromaSubsampling                : 4:2:0
BitDepth/String                  : 8 bits
Scantyp                          : Interlaced
Scanreihenfolge                  : oberes Feld zuerst
Bits/(Pixel*Frame)               : 0.262
Stream-Größe                     : 13,5 GiB (91%)
colour_primaries                 : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
transfer_characteristics         : BT.709-5, BT.1361
matrix_coefficients              : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

Audio #1
ID                               : 2363 (0x93B)
Menü-ID                          : 10000 (0x2710)
Format                           : AC-3
Format/Info                      : Audio Coding 3
Format_Settings_ModeExtension    : CM (complete main)
Dauer                            : 3h 9min
Bitraten-Modus                   : konstant
Bitrate                          : 256 Kbps
Kanäle                           : 2 Kanäle
Kanal-Positionen                 : Front: L R
Samplingrate                     : 48,0 KHz
BitDepth/String                  : 16 bits
Video Verzögerung                : -335ms
Stream-Größe                     : 348 MiB (2%)
Sprache                          : Englisch

Audio #2
ID                               : 2369 (0x941)
Menü-ID                          : 10000 (0x2710)
Format                           : MPEG Audio
Format-Version                   : Version 1
Format-Profil                    : Layer 2
Dauer                            : 3h 9min
Bitraten-Modus                   : konstant
Bitrate                          : 192 Kbps
Kanäle                           : 2 Kanäle
Samplingrate                     : 48,0 KHz
Video Verzögerung                : -408ms
Stream-Größe                     : 261 MiB (2%)
Sprache, nähere Info             : Clean effects

Menü
ID                               : 288 (0x120)
Menü-ID                          : 10000 (0x2710)
Dauer                            : 3h 9min
Liste                            : 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.

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


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

Allgemein
Vollständiger Name               : C:\Users\Thomas Miller\Desktop\EWS\ews.demuxed.264
Format                           : AVC
Format/Info                      : Advanced Video Codec
Dateigröße                       : 12,0 GiB

Video
Format                           : AVC
Format/Info                      : Advanced Video Codec
Format-Profil                    : Main@L4.0
Format-Einstellungen für CABAC   : Ja
Format-Einstellungen für ReFrame : 4 frames
Breite                           : 1 440 Pixel
Höhe                             : 1 080 Pixel
Bildseitenverhältnis             : 16:9
Bildwiederholungsrate            : 25,000 FPS
ColorSpace                       : YUV
ChromaSubsampling                : 4:2:0
BitDepth/String                  : 8 bits
Scantyp                          : Interlaced
Scanreihenfolge                  : oberes Feld zuerst
colour_primaries                 : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
transfer_characteristics         : BT.709-5, BT.1361
matrix_coefficients              : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177


-> Demuxed Audio (AC3 Ausschnitt - 10MB)

Allgemein
Vollständiger Name               : C:\Users\Thomas Miller\Desktop\EWS\ews PID 93b 2_0ch 48KHz 256Kbps DELAY -91ms.ac3
Format                           : AC-3
Format/Info                      : Audio Coding 3
Dateigröße                       : 311 MiB
Dauer                            : 2h 49min
Gesamte Bitrate                  : 256 Kbps

Audio
Format                           : AC-3
Format/Info                      : Audio Coding 3
Format_Settings_ModeExtension    : CM (complete main)
Dauer                            : 2h 49min
Bitraten-Modus                   : konstant
Bitrate                          : 256 Kbps
Kanäle                           : 2 Kanäle
Kanal-Positionen                 : Front: L R
Samplingrate                     : 48,0 KHz
BitDepth/String                  : 16 bits
Stream-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)

Allgemein
Vollständiger Name               : C:\Users\Thomas Miller\Desktop\EWS\ews.mp4
Format                           : MPEG-4
Format-Profil                    : Base Media
Codec-ID                         : isom
Dateigröße                       : 11,4 GiB
Dauer                            : 5h 39min
Gesamte Bitrate                  : 4 822 Kbps
Kodierungs-Datum                 : UTC 2010-08-08 11:47:29
Tagging-Datum                    : UTC 2010-08-08 11:47:29
Kodierendes Programm             : Yamb 2.1.0.0 [http://yamb.unite-video.com]

Video
ID                               : 1
Format                           : AVC
Format/Info                      : Advanced Video Codec
Format-Profil                    : Main@L4.0
Format-Einstellungen für CABAC   : Ja
Format-Einstellungen für ReFrame : 4 frames
Codec-ID                         : avc1
Codec-ID/Info                    : Advanced Video Coding
Dauer                            : 5h 39min
Bitraten-Modus                   : variabel
Bitrate                          : 4 693 Kbps
maximale Bitrate                 : 7 608 Kbps
Breite                           : 1 440 Pixel
Höhe                             : 1 080 Pixel
Bildseitenverhältnis             : 16:9
Modus der Bildwiederholungsrate  : konstant
Bildwiederholungsrate            : 25,000 FPS
ColorSpace                       : YUV
ChromaSubsampling                : 4:2:0
BitDepth/String                  : 8 bits
Scantyp                          : Interlaced
Scanreihenfolge                  : oberes Feld zuerst
Bits/(Pixel*Frame)               : 0.121
Stream-Größe                     : 11,1 GiB (97%)
Titel                            : Imported with GPAC 0.4.6-DEV (internal rev. 5)
Kodierungs-Datum                 : UTC 2010-08-08 11:47:29
Tagging-Datum                    : UTC 2010-08-08 12:02:48
colour_primaries                 : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
transfer_characteristics         : BT.709-5, BT.1361
matrix_coefficients              : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

Audio
ID                               : 2
Format                           : AC-3
Format/Info                      : Audio Coding 3
Format_Settings_ModeExtension    : CM (complete main)
Codec-ID                         : ac-3
Dauer                            : 2h 49min
Bitraten-Modus                   : konstant
Bitrate                          : 256 Kbps
Kanäle                           : 2 Kanäle
Kanal-Positionen                 : Front: L R
Samplingrate                     : 48,0 KHz
BitDepth/String                  : 16 bits
Stream-Größe                     : 311 MiB (3%)
Titel                            : Imported with GPAC 0.4.6-DEV (internal rev. 5)
Kodierungs-Datum                 : UTC 2010-08-08 12:01:18
Tagging-Datum                    : UTC 2010-08-08 12:02:48


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.

Cypheros

Hi,

erstmal ist der Workfow so nicht optimal.

Zuerst die Daten mit dem File-Merger im TS-Doctor zusammenfügen, da die DVR-Tools von ALI totaler Mist sind (Artefakte/Störungen an den Schnittstellen).
Dann die Datei mit dem TS-Doctor Fixen, ggfs. auch schon Schneiden! (Der TS-Doctor geht von allen Tools am rücksichtsvollsten mit dem Stream um. Es werden so wenig Dinge wie möglich geändert)

Dann Testen! Sollte mit VLC oder Mediaplayer Classic abspielbar sein!

Dann weiterverarbeiten. Der TS-Doctor kann auch mp4-Dateien erzeigen, wenn das Haali-Splitter-Paket, dass beim TS-Doctor dabei ist, installiert wurde (TS-Format-Converter-Funktion). Vollkommen ohne demuxen/remuxen, etc.!



Gruß
Cypheros

TOMillr

Zitat von: Cypheros am August 09, 2010, 23:56:44
Zuerst die Daten mit dem File-Merger im TS-Doctor zusammenfügen, da die DVR-Tools von ALI totaler Mist sind (Artefakte/Störungen an den Schnittstellen).
Dann die Datei mit dem TS-Doctor Fixen, ggfs. auch schon Schneiden! (Der TS-Doctor geht von allen Tools am rücksichtsvollsten mit dem Stream um. Es werden so wenig Dinge wie möglich geändert)

Dann Testen! Sollte mit VLC oder Mediaplayer Classic abspielbar sein!

Dann weiterverarbeiten. Der TS-Doctor kann auch mp4-Dateien erzeigen, wenn das Haali-Splitter-Paket, dass beim TS-Doctor dabei ist, installiert wurde (TS-Format-Converter-Funktion). Vollkommen ohne demuxen/remuxen, etc.!
Die Variante habe ich ebenfalls schon ausprobiert. Ich bekomme nach dem zusammenfügen, bereinigen und schneiden auch eine problemlos laufende TS Datei ausgegeben, die selbst mit dem Windows Media Player korrekt laufen.

Das Wandeln in einen mp4 Container läuft dann aber leider nicht wie beschrieben. Mir ist z.B. aufgefallen, dass sich (laut MediaInfo) bei der fertigen mp4 Datei die fps plötzlich von den ursprünglich 25fps zu progressiven 50fps verdoppelt haben oder die Laufzeit des Films nahezu verdoppelt hat.

TOMillr

Mal ein Update: Habe die itv HD Aufnahme mit ac3 Spur (von einem Comag Clone aus dem Hause Edision) mit TS Doctor zusammengefügt, Werbung rausgeschnitten, fixen lassen und dann eine neue .ts Datei ausgeben lassen. Das resultierende File kann ich dann auch problemlos mit VLC abspielen.

Das Umwandeln funktioniert dann aber weder in mkv noch in mp4 (Bild springt) mit den TS Doctor-Boardmitteln und installiertem Haalir Splitter.

Wie kann ich die bereinigte und geschnittene ts Datei dann vielleicht doch noch in einen funktionsfähigen mp4 Container packen? Erst in eine h.264 und ac3 Datei zerlegen und dann wieder zusammenbauen?

Cypheros

OK, schau mir nochmal gezielt die MKV und MP4-Wandlung an im Bezug auf FPS.

Sind denn bei allen Aufnahmen, die Du in MKV oder MP4 gewandelt hast die gleichen Probleme?


TOMillr

Ja, habe es mit mehreren Dateien (alles Aufnahmen aus England mit einem Edision Piccolo) versucht und bei allen kommt es zu Problemen, sobald ich die Datei zu .mp4 Wandeln lasse. Neben den fps ist dann auch die Laufzeit total falsch angegeben und fast doppelt so lang.

TOMillr

Habe es jetzt mal mit der neuen Version und meinen alten Rohdaten probiert - leider habe ich aber weiterhin Probleme:

Habe den HD TS mit h.264/ac3 über die interne Funktion testweise in einen mkv Container gemuxed. Die resultierende Datei kann ich dann auch mit VLC abspielen, nur leider ist irgendwas mit den Informationen für die anamorphen Kodierung passiert. Die Videospur ist angegeben mit einer Auflösung von 1440 x 1080, der ursprüngliche Film in einem 2.35 : 1 Verhältnis gedreht worden. Wenn ich jetzt aber im VLC oder Quicktime Player das Video im Vollbild anzeigen lassen, bekomme ich links und rechts vom Bild schwarze Balken angezeigt (zusätzlich zu denen oben und unten). Die Geschichte mit den falschen FPS scheint aber hingegen behoben zu sein. :-)

Außerdem ist es mir noch nicht gelungen, einen normalen sd TS direkt über die interne Funktion in einen mp4 Container umkodieren zu lassen. Funktioniert die Option also nur, wenn das Ausgangsmaterial bereits in h.264 vorliegt?


TOMillr

#7
Habe für diese Stelle noch einen Feature-Request: Ich habe bei irgendeinem Tool (StaxRip?) die Option gesehen, dass man zusätzlich eine Stereo AAC Tonspur mit in dem MP4 Container packen lassen konnte. Da nicht alle Geräte (z.B. eine Xbox 360) mit einer AC3 Tonspur im MP4 Container etwas anfangen können, wäre man mit so einer zusätzlichen Tonspur auf der sicheren Seite. Auch eine automatische 4GB Split Funktion wäre wirklich eine Erleichterung.


www.cypheros.de