50i h264 Stream von FakeInterlace/PAFF befreien.

  • Hi!
    Ich finde leider ÜBERHAUPT nichts dazu, vielleicht verwende ich die falsche Terminologie, aber gibt es eine Möglichkeit, die Fake-Interlaced Flags aus einem h264 Bitstream zu entfernen, also aus einem 50i BluRay-konformen Stream einen Slowdown auf 23,976/24p zu machen ohne neu kodieren zu müssen?

    1000 Dank im Voraus!

  • Das "Fake Interlacing" sorgt lediglich dafür, dass der Stream bei 1080 Zeilen Höhe und 25 fps als kompatibel zu Blu-ray akzeptiert wird, eigentlich ist er aber überall progressiv encodiert. Ich sehe keinen Grund, warum man daran etwas ändern wollte. Und für eine Verlangsamung von 25 fps auf 24 fps gibt es erst recht keinen Grund, progressive 25 fps können sowohl Fernseher als auch PCs an sich problemlos darstellen.

  • Es gibt durchaus einen Grund: Wenn man so einen Stream dann wieder als BluRay muxt (egal ob BluRay oder MKV) und lediglich die FPS auf z.B. 24 setzt und danach abspielt, glaubt der Decoder, dass er es sich um 48i handelt und spielt es auch so ab, und der Fernseher schaltet nicht auf 24p um. Gleiches via Kodi, auch gut sichtbar in MPC-HD (Ctrl-J > 48i).

  • Und warum von 25 auf 24?


    Es gibt deutsche BDs, die mit einem 25fps Master erstellt werden, aber klar Kinofilme sind, und die Tonhöhe entsprechend komisch klingt. Ton neu kodieren und die Framerate anpassen ist ja keine große Kunst, aber so ein 50i Video auf 24p zu bringen ohne Recoding ... schwierig. h264info probier ich gerade, txmuxer kann das allerdings nicht.

  • Es gibt durchaus einen Grund: Wenn man so einen Stream dann wieder als BluRay muxt (egal ob BluRay oder MKV) und lediglich die FPS auf z.B. 24 setzt und danach abspielt, glaubt der Decoder, dass er es sich um 48i handelt und spielt es auch so ab, und der Fernseher schaltet nicht auf 24p um. Gleiches via Kodi, auch gut sichtbar in MPC-HD (Ctrl-J > 48i).


    Mein MPC-HC/LAV/madvr erkennt das, was man üblicherweise als "fake interlaced" bezeichnet, als progressiv.

    Ist die Frage, was genau Du vorliegen hast:
    A) Stream als PAFF markiert, allerdings jeder Frame progressiv encodiert. ("fake interlaced")
    B) Stream als PAFF markiert, allerdings mindestens ein Frame interlaced encodiert

    A und B jeweils unabhängig davon, ob der eigentliche Inhalt progressiv oder interlaced ist.

    A wird bei mir wie gesagt korrekt erkannt, womit Änderungen an den Interlacing-Flags eigentlich überflüssig sind. FPS kann man wie gewohnt über z.B. mkvmerge ändern. Theoretisch könnte man das vermutlich verlustfrei zu einem "echt" progressiven Stream wandeln, aber dazu wüßte ich so auch keine Software.
    B kann man eh nicht verlustfrei zu "echt" progressiv wandeln

  • Ok, die Varianten A) sind B) sind mir klar. Kann man das auch irgendwie auslesen, wie das kodiert ist? Optisch sehe ich kein Interlacing, aber das muss ja nix heißen.

    EDIT: Nach einigen Tests scheint es wohl echt B zu sein. MKVMerge macht beim Ändern der Framerate 48I daraus, tsmuxer wird 24I (!), und ändert man in tsmuxer irgendeinen Parameter SEI/VUI zerschießt es den ganzen Stream und das Decoding funkt. nur mehr mit Hakern. Ok, Pech gehabt. Danke!

    Einmal editiert, zuletzt von resonator79 (10. Mai 2017 um 20:41)

  • ffprobe -show_entries frame=interlaced_frame -of default=noprint_wrappers=1 -select_streams v:0 "input.264" > "log.txt"
    Das dann durchsuchen nach "1".

    Falls PAFF und
    - kein interlaced_frame=1 : A
    - ein oder mehr interlaced_frame=1 : B

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!