mencoder & mpeg2-NTSC-source & inverse Telecine -> x264-rip = FAIL

  • Hi,
    ich versuche zur Zeit, Videomaterial einer NTSC-DVD mit x264 in h264 zu transcoden, dabei verwende ich mencoder.
    Mplayer gibt beim Abspielen des Originalvideos aus:

    Code
    demux_mpg: 24000/1001fps progressiver NTSC-Inhalt erkannt, wechsele Framerate.


    Mencoder stürzt beim Encoden auch nicht ab, nur wenn ich das von mencoder erstellte x264-file mit mplayer betrachten möchte, kommt immer folgender Fehler:

    Code
    MPlayer SVN-r29796-4.3.4 (C) 2000-2009 MPlayer TeamSpiele eurotrip.264.H264-ES-Dateiformat erkannt!FPS seems to be: 23.976025==========================================================================Öffne Videodecoder: [ffmpeg] FFmpeg's libavcodec codec familyAusgewählter Videocodec: [ffh264] vfm: ffmpeg (FFmpeg H.264)==========================================================================Audio: kein Ton!Starte Wiedergabe...[h264 @ 0xab2f40]illegal num_reorder_frames -1[h264 @ 0xab2f40]sps_id out of range[h264 @ 0xab2f40]non-existing PPS 0 referenced[h264 @ 0xab2f40]decode_slice_header error[h264 @ 0xab2f40]no frame!Error while decoding frame![h264 @ 0xab2f40]non-existing PPS 0 referenced[h264 @ 0xab2f40]decode_slice_header error[h264 @ 0xab2f40]no frame!Error while decoding frame![h264 @ 0xab2f40]non-existing PPS 0 referenced[h264 @ 0xab2f40]decode_slice_header error[h264 @ 0xab2f40]no frame!Error while decoding frame![h264 @ 0xab2f40]B picture before any references, skipping[h264 @ 0xab2f40]decode_slice_header error[h264 @ 0xab2f40]no frame!Error while decoding frame![h264 @ 0xab2f40]B picture before any references, skipping[h264 @ 0xab2f40]decode_slice_header error[h264 @ 0xab2f40]no frame!Error while decoding frame![h264 @ 0xab2f40]B picture before any references, skipping[h264 @ 0xab2f40]decode_slice_header error[h264 @ 0xab2f40]no frame!Error while decoding frame!usw...

    Ich habe auch schon verschiedene Verfahren probiert, folgendes funktioniert schon mal nicht:

    Code
    mencoder -dvd-device ~/DigitalVideoUtils/DVDFab/FullDisc/Eurotrip/ -vf pullup,softskip,crop=720:448:0:14 -of rawvideo -o eurotrip.264 -profile h264 -ofps 24000/1001 dvd://21 -nosound


    Auch wenn ich den pullup-Filter, den softskip-Filter und ofps 2400/1001 weglasse, wird das Ergebnis nicht gespielt.

    Meine mencoder.conf sieht so aus:

    Code
    [h264]
    profile-desc="H264-Encoding"
    ovc=x264=yes
    x264encopts=crf=18:subq=9:trellis=2:partitions=all:8x8dct:me=umh:frameref=7:bframes=16:mixed_refs:trellis=2:b_pyramid=strict:weight_b:threads=6:deblock=0,-1
    
    
    [h264-interlaced]
    profile-desc="H264-Interlaced-Encoding"
    profile=h264
    x264encopts=interlaced


    Ich hab natürlich keine Ahnung, was ich falsch mache. Was es mit den Fehlermeldungen auf sich hat, weiß ich auch nicht. Ich hoffe, hier kann mir jemand weiterhelfen.

  • Schon mal drüber nachgedacht nicht einfach nen elemantary stream zu stellen sondern ein .mp4 File ?


    Ich mach das immer hinterher mit mkvmerge (GUI), weil ich die Untertitel sowieso mit Suprip gesondert behandeln muss.
    Kann das Problem etwa an dem plain-h264-videofile liegen, wenn ja, warum?

  • Weil mplayer mit raw Streams nicht klar kommt.
    Was sich mir auch nicht erschließt ist warum Du b_pyramid=strict wählst dann aber weder ein Profile&Level noch vbv Informationen angibst,...

    Hey, jetzt wo du sagst, dass mplayer sowas nicht mag, fiel mir ein, dass ffmpeg ja auch einen Player namens ffplay bietet, dieser spielt das File ab. Das Problem ist also gelöst.

    Profile & Level wählt x264 selber:

    Code
    x264 [info]: profile High, level 3.1


    Aber was ist eine vbv-information?

    Diese b_pyramid erzeugt bei mir eh ein warning:

    Code
    x264 [warning]: b-pyramid + mb-tree is not supported


    Allerdings steht hier, dass diese harmlos sei.

  • Warnungen sind ja auch keine Fehler. Man muss nur verstehen, was in dem Fall passiert (z.B. dass die B-Pyramide-Funktion bei der Verwendung von MBTree halt einfach deaktiviert wird - nicht dass man sich hinterher wundert, dass sie nicht verwendet wurde, wenn man das Ergebnis noch mal analysiert).
    __

    VBV ist der Decodierpuffer, in dem mehrere vorherige Bilder aufbewahrt werden, die für die Rekonstruktion von (v.a. B-) Frames wichtig sind, die eventuell Bezüge zu mehreren vorher decodierten Frames haben. Hardware-Player haben nur einen begrenzten Speicher, deshalb kann es wichtig sein, dessen typische Größe (laut Spezifikation des jeweiligen Standards) einzustellen. Dann sorgt der Encoder dafür, dass diese Grenze nicht überschritten wird, um zu garantieren, dass das Ergebnis nicht nur auf einem PC mit ### MB RAM abspielbar ist.

  • Solange b-pyramid aufgrund von mbtree ohnehin deaktiviert wird, ist es auch egal, ob man es einschränkt... ;)

    Aber für BluRay-Player-Kompatibilität ist das Deaktivieren von MBTree eventuell auch ratsam, oder?!

  • OK, ich habe jetzt b-pyramid deaktiviert und mbtree=1 gesetzt, jetzt kommt keine Warnung mehr.
    Meine DVD-Rips spiele ich nur auf PCs, meistens mit mplayer, von daher scheint dieser vfv für mich keine Rolle zu spielen.

    Ein Problem habe ich noch, beim encodieren der NTCS-DVD mit -vf pullup,softskip kommt ein paar mal folgende Meldung:

    Code
    1 doppelte(r) Frame(s)!


    Nun wird die Videospur mit der Tonspur mit der Zeit immer asynchroner, kann es sein, dass der pullup-Filter Telecine nicht immer erkennt und diese doppelten Frames das Video strecken, wenn es mit 24p abgespielt wird?
    Welchen Filter kann ich alternativ verwenden?

  • mit " -noskip" sollte das doppelte Frames nicht kommen,..
    kannst Dir ja mal angucken wie die Command Lines aussehen die ich in Hybrid verwende.

    Cu Selur

    Mittlerweile hab ich es hinbekommen, und zwar komplett ohne pullup-filter, kamen zwar dauernd doppelte Frames, aber jetzt ist alles synchron bei 24000/1001 fps.
    Ich verstehe es zwar nicht, aber immerhin funktionierts.
    Mit noskip und pullup-filter wurde es seltsamerweise auch immer asynchroner.

  • Warum nicht einfach Audio und Video gleichzeitig Encodieren dafür wurde Mencoder doch entwickelt, dann sollte man normalerweise auch keine Probleme mit der Syncronytät bekommen. je nach Kommandline eventuell beim De/Multiplexen.
    Das ist doch gerade das gute an Mencoder sonnst konnte man auch was anderes benutzen :)
    Die UT könnte man auch mit Mencoder rippen.

    Unter Windows könnte man einfach eine Beatch Drag & Drop zum erstellen einer MKV mit oder ohne UT erstellen.
    Unter Linux kann man das sicherlich auch alles relativ einfach automatisieren :)

    @echo off
    IF NOT EXIST %~dpn1.avi goto :noavi

    IF NOT EXIST %~dpn1.idx goto :noidx
    IF NOT EXIST %~dpn1.sub goto :noidx
    echo ------------------------
    echo %1
    echo %~dpn1.idx
    echo %~dpn1.sub
    echo ------------------------
    echo.
    mkvmerge.exe -o "%~dpn1-ut.mkv" %1 %~dpn1.idx
    goto end

    :noidx
    echo ------------------------
    echo %1
    echo ------------------------
    echo.
    mkvmerge.exe -o "%~dpn1-.mkv" %1
    goto end

    :noavi
    echo. Keine AVI gefunden

    :end

  • "Rippen" heißt bei uns einfach nur "von der Scheibe auf die Platte bringen".

    Eine Umwandlung der grafischen DVD-Untertitel in SRT-Textskripte erfordert OCR (optische Zeichen-Erkennung) - ich gehe davon aus, dass Mencoder das nicht anbietet, weil die Trainingsphase vom Anwender gesteuert werden müsste, und der Mencoder kein Eingreifen während der Konvertierung vorsieht. Er könnte lediglich die grafischen Untertitel (evtl. im SUP-Format?) extrahieren (demultiplexen).

Participate now!

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