Artefakte bei Scenenwechsel (H264 /MPEG4 AVC)

  • Ich kodiere einen DVD Stream (fehlerfrei) in eine MPEG 4 Codec (H264 /MPEG4 AVC) mit 3000 kB Durchschnitt.

    Wenn im Film ein Scenenwechsel erfolgt, also das neue Bild sich nicht mehr aus dem Vorhergehenden Rekonstruieren lässt, dann sehe ich sehr häufig Artefakte für ein paar Sekunden, solange bis alle Pixel im Bild sich einmal geändert haben, oder eine neues kompletten Frame auftaucht.

    Kodieren tue ich mit xmedia recode.

    Gibt es eine Einstellung mit der man diesen Fehler verhindern kann?

  • :welcome:

    Eigentlich ganz einfach: Keinesfalls den Modus "1 Durchlauf, konstante Bitrate" verwenden! Nur dieser Modus verhindert notwendige Schwankungen der Bitrate bei Szenenwechseln.

    Wer auf eine bestimte Zielgröße kommen will, sollte "2 Durchläufe" verwenden; wem die Endgröße nicht so wichtig ist, weil er die Kopien z.B. auf Festplatten aufbewahrt statt auf CD/DVD, der sollte den Modus "1 Durchlauf, konstante Qualität" (CRF) verwenden.

  • In xmedia recode heißt das "durchschnittliche Bitrate" und ich stelle für DVD Auflösung immer 3000 kbps ein.

    Den Fehler sehe ich aber trotzdem. Konstante Bitrate habe ich noch nie verwendet.

  • Tja, sind diese Artefakte vielleicht schon in der Quelle vorhanden?

    Ansonsten kenne ich XMedia Recode nicht gut genug, um auszuschließen, dass man es leicht falsch bedienen könnte oder dass es vielleicht ungünstige Standardwerte haben könnte. Sicherlich kann es Programme geben, die den x264-Encoder nicht optimal nutzen, wodurch dann ungünstige Schwankungen entstehen könnten. Hier müsste man Einblick in die gesamte Kommandozeile des x264-Encoders haben. Die müsste mit MediaInfo aus der Kopie auslesbar sein ("--full"-Modus, oder "Erweiterter Modus" im Debug-Menü).

  • Tja, sind diese Artefakte vielleicht schon in der Quelle vorhanden?


    Ansonsten kenne ich XMedia Recode nicht gut genug, um auszuschließen, dass man es leicht falsch bedienen könnte oder dass es vielleicht ungünstige Standardwerte haben könnte. Sicherlich kann es Programme geben, die den x264-Encoder nicht optimal nutzen, wodurch dann ungünstige Schwankungen entstehen könnten. Hier müsste man Einblick in die gesamte Kommandozeile des x264-Encoders haben. Die müsste mit MediaInfo aus der Kopie auslesbar sein ("--full"-Modus, oder "Erweiterter Modus" im Debug-Menü).


    Das mag natürlich sein.
    Ich kenne leider keine andere Oberfläche um einen Codec anzusteuern.

    Mein Eindruck ist, das beim kodieren die Szenenwechsel nicht immer richtig erkannt werden und dann an der Stelle ein vollständiger Frame fehlt. Mit einem inkrementellen Frame kommen natürlich nur noch Artefakte zustande, da das neue mit dem vorherigen nichts mehr gemeinsam hat.

  • Dafür kann es eigentlich nach meiner Einschätzung nur zwei Gründe geben:

    a) Für den zweiten Durchlauf wurden Statistiken aus dem ersten Durchlauf eines anderen Films verwendet. Sicher bei so automatisierten Tools wie diesem eher unwahrscheinlich.

    b) Die Bitraten-Steuerung war gezwungen, die maximale Bitrate und damit auch deren Schwankung zu reduzieren, z.B. weil sonst der Decodierpuffer (VBV) des im Konverter eingestellten Abspielgerätes das Video voraussichtlich nicht mehr verarbeiten könnte.

    Könntest du vielleicht dem Rätselraten mal ein Ende machen und nachschauen, ob MediaInfo in deiner Kopie eine x264-Kommandozeile findet?


  • Könntest du vielleicht dem Rätselraten mal ein Ende machen und nachschauen, ob MediaInfo in deiner Kopie eine x264-Kommandozeile findet?

    Das hier gibt mir mediainfo raus:

    Was du allerdings mit 'x264-Kommandozeile' meinst ist mir nicht klar.

  • Was du aber mit 'Kommandozeile' meinst ist mir nicht klar.

    Na das hier:

    Zitat

    Encoding settings : cabac=1 / ref=2 / deblock=1:0:0 / analyse=0x1:0x131 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=6 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=0 / b_adapt=1 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=24000 / vbv_bufsize=24000 / nal_hrd=none / ip_ratio=1.40 / aq=1:1.00

    Ich hatte eben eventuell folgenden Parameter in Verdacht, alles zu stark zu begrenzen:

    vbv_maxrate=24000 / vbv_bufsize=24000

    Für welchen Player soll es denn kompatibel werden?
    __

    P.S.: Warum geraten eigentlich alle so in Panik, wenn mal ein Beitrag nicht automatisch freigeschaltet wurde, dass sie sofort noch mal posten? Zeigt das Forum nicht deutlich genug an, dass ein Moderator erst eine Freischaltung vornehmen muss?

  • XMedia Recode bietet soweit ich weiß die CRF Encodierung gar nicht erst an. (wozu ich aber auch nur raten kann. 1 Pass ist suboptimal, 2pass doppelte Encodierzeit für schwankende Qualität zwischen verschiedenen Videos, weil Bitratenaufzwang.

    So wie Ligh schon sagt, sofern du keine fixe Dateiendgröße ausschöpfen musst/willst (CD/DVD etc), würde ich stark zu CRF raten.

    3 Ref-Frames wären etwas besser als 2. Mehr Kompressionspotential. me umh, statt me hex und subme 8 statt subme 7 wird der 3000er Bitrate ebenfalls gut tun (Hat zwar mit deinem Problem nichts zu tun, aber einfach als Nebeninfo.

Jetzt mitmachen!

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