MPEG-2 TS mit H264 in MP4 mit H264 wandeln (möglichst verlustfrei)

  • Hallo,


    ich habe von einem bekannten ein paar Video-Clips erhalten, welche mit einem digitalen Camcorder aufgenommen wurden. Lt. MediaInfo sind das MP2 Dateien mit einem H 264 Codec:


    File: /Users/myuser/Desktop/abc/00001.MTS
    Size: 54.4 MB
    Format: MPEG-2 transport stream format
    Programs count: 1
    Stream count: 3
    Duration: 00:00:36
    Bit rate: 12487 kb/s



    Stream 0
    Type: video
    Codec: h264
    Codec profile: High
    FourCC: HDMV
    Duration: 00:00:36
    Width: 1920
    Height: 1080
    Sample aspect ratio: 1:1
    Display aspect ratio: 16:9
    Pixel format: yuv420p
    Frame rate: 50 fps



    Stream 1
    Type: audio
    Codec: ac3
    FourCC: AC-3
    Duration: 00:00:36
    Bit rate: 256 kb/s
    Sample rate: 48000 Hz
    Sample format: s16
    Channel: 2



    Stream 2
    Type: subtitle
    Codec: pgssub


    Wie kann ich diese Dateien möglichst verlustfrei in ein MP4 H264 Format bringen? Das Problem ist, dass die MP2 Files nicht von jedem abspieler abgespielt werden können und ich eigentlich alle Videos im MP4 Format speichern möchte.


    Bin für jeden Tipp dankbar...


    Grüße


    mm85

  • Zitat

    Lt. MediaInfo sind das MP2 Dateien


    Soll wohl m2p heissen,denn das andere wäre mpeg1 layer 2 Audio.


    Probiers mal mit Hybrid,gibts auch in diesem Forum.


    Ich würde ev.statt AC3.......den Audioanteil in AAC codieren.
    Dann könnens auch alle Player abspielen.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Hey, es müsste eigentlich ganz einfach mit mp4box gehen:

    Code
    1. mp4box -add "input.ts" "output.mp4"


    Bei diesem Umcontainern treten keine Verluste auf. Für die Verwendung in iTunes kannst du gleich noch taggen.

    Code
    1. mp4box -add "input.ts" -itags album_artist="album artist":artist="artist name name":tracknum=2/11:genre="genre name":name="movie name":cover="cover file.png" "output.mp4"


    Das sieht mit mediainfo beispielsweise so aus (nur Header):

    Code
    1. Complete name : output.mp4Format : MPEG-4Format profile : Base MediaCodec ID : isomFile size : 13.8 MiBDuration : 3mn 37sOverall bit rate mode : VariableOverall bit rate : 532 KbpsMovie name : movie nameAlbum/Performer : album artistTrack name/Position : 2Track name/Total : 11Performer : artist name nameGenre : genre nameEncoded date : UTC 2014-11-30 23:43:10Tagged date : UTC 2014-11-30 23:43:10Cover : Yes


    mp4box iTunes tags

  • Na ja, das ist schon immer das Problem mit abgekürzten Abkürzungen gewesen: Die haben manchmal eine andere Bedeutung, erst recht wenn die als (8).3-Dateinamenserweiterung benutzt werden. Und wenn ein Programm dann noch von der Erweiterung auf das Format schließt, ist eh alles zu spät. Aber egal... Hier wurde ja noch der MediaInfo-Report mit angehängt:


    Format: MPEG-2 transport stream format


    Und das ist dann deutlich exakter als die vom Beitragsautor noch mal etwas zu optimistisch abgekürzte Variante.


    Wie bei der verlustfreien Videokomprimierung: Wenn man zu wenig Daten übrig lässt, wird es missverständlich. ;D – Viel kürzer als "MPEG-2 TS" sollte man es nicht bezeichnen. Schon bei "M2TS" würde man die Variante mit Timecodes (192 Bytes pro Block, Dateiendung häufig "*.m2ts" oder "*.mts") vermuten, im Gegensatz zur Variante ohne Timecodes (188 Bytes pro Block, eher üblich bei der Endung "*.ts").


    Zurück zum Inhalt...


    MPEG-4-Video mit Dolby Digital (AC3) im MP4-Kontainer ist mittlerweile schon sehr verbreitet. Man kann die Tonspur zwar noch in AAC umwandeln, dann wird es "noch kompatibler", aber viele Allround-Media-Player, die ansonsten Blu-ray-kompatibel sind, sollten auch MP4 mit AC3 verstehen. Letztendlich kommt es natürlich auf Modell und Firmware an.

  • Um AC-3 "gescheit" nach MP4 umzucontainern, muss ein Zwischenschritt mit ffmpeg eingeschoben werden. Lossy Encodes sind leider immer lossy (verlustbehaftet).

    Code
    1. ffmpeg -hide_banner -i "input.ts" -c:v copy -c:a libfdk_aac -b:a 128k "input.mp4"


    Anschliessend geht auch mp4box da bei:

    Code
    1. mp4box -add "input.mp4#1:lang=de" -add "input.mp4#2:lang=de" -itags album_artist="album artist":artist="artist name":tracknum=2/11:genre="genre name":name="movie name":cover="cover file.png" -ipod "output.mp4"


    Übrigens kann sogar iTunes mit AC-3 umgehen.

    Einmal editiert, zuletzt von Endoro () aus folgendem Grund: Syntax von mp4box mit ffmpeg Optionen anzureichern funktioniert nicht :(


  • so lange es nicht die erste Tonspur ist,...


    Warum meinst du das? Ich hab die Sitzung mal aufgezeichnet (OS X 10.10.1; iTunes 12.0.1.26):



    So wird aus einem Bunny- ein unverdächtiges Weihnachtsvideo :D

  • Vor etwa einem Jahr ging das mit iTunes noch nicht. Ich nutze iTunes wenig, weil Apple das gegen jede GUI-Guidelines so programmiert hat, dass der User möglichst nah am iTunes-Store angebunden wird (Vergleich der GUI Guidelines von Apple und Microsoft). Was Apple-TV betrifft, so wurde der derart "verkrüppelt", dass er weder von USB-Datenträgern noch von SMB-Freigaben lesen kann, nicht mal DLNA geht. Die einzige Möglichkeit, ad-hoc was auf den TV zu bringen ist das proprietäre AirPlay. Und da wird einfach der Mac- bzw. iOS-Bildschirminhalt samt Ton auf den Fernseher gebeamt. Das auf dem Mac laufende Video mag sein was es will (mkv, avi, ts usw.), es wird so immer richtig mit dargestellt. Das klappt übrigens ziemlich gut, seit der 3.Generation sogar in HD.