ffdshow: MJPEG-Encoder oder -Decoder buggy!?

  • Da der in ffdshow integriert MJPEG-Encoder gerade so vor der Wegrationalisierung gerettet werden konnte und im Stereoforum auf einen Bug des Encoder hingewiesen wurde, wollte ich nochmal hier bei den Experten nachfragen - da sich mir das Bug-Verhalten nicht so ganz erschließt...


    Folgendes wurde als Ausgangssituation beschrieben:
    Wenn man einen RGB24-Clip an den ffdshow-MJPEG-Encoder verfüttert, dann spuckt der ffdshow-MJPEG-Decoder bei der Decodierung ein Ergebniss mit (größtenteils) verschobenem Kontrastumfang aus (einzig ein schmaler Streifen am rechten Bildrand hat den korrekten Kontrastumfang).

    Also habe ich ein Testbild per AviSynth-Script als RGB24-Videoclip in VirtualDub mit ffdshow (Tryout Rev. 3815) encodet. Folgendes Ergebnis kam dabei heraus:


    Quellvideo (RGB24):

    [Blockierte Grafik: http://justpic.info/images2/d526/RGB24.png]


    Mit ffdshow in MJPEG komprimiertes Video ("ffdshow VfW" als Decoder/RGB32-Ausgabe an):

    [Blockierte Grafik: http://justpic.info/images2/74e1/MJPEG_ffdshow_RGB32.png]


    Wie man sieht: das beschriebene Problem tritt auf. Schalte ich aber die RGB32-Ausgabe im ffdshow-VfW-Decoder aus, sieht das Ergebnis korrekt aus:


    Mit ffdshow in MJPEG komprimiertes Video ("ffdshow VfW" als Decoder/RGB32-Ausgabe aus):

    [Blockierte Grafik: http://justpic.info/images2/1494/MJPEG_ffdshow_noRGB32.png]


    Ebenfalls korrekt ist die Ausgabe in VirtualDub, wenn dessen interner MJPEG-Decoder verwendet wird (was wahrscheinlich darin begründet liegt, dass der das Bild ebenfalls im YUV-Farbraum ausgibt - wie ffdshow mit deaktiviertem RGB-Output):


    Mit ffdshow in MJPEG komprimiertes Video (interner MJPEG-Decoder von VirtualDub):

    [Blockierte Grafik: http://justpic.info/images2/c695/MJPEG_int.png]


    Aber was ist jetzt daraus zu schlussfolgern :hm: ??? Macht der ffdshow-Encoder Fehler bei der RGB/YUV-Farbraumkonvertierung? Macht der ffdshow-Decoder Fehler bei der YUV/RGB-Farbraumkonvertierung (Stichwort: Input-Levels)? Machen beide Fehler? Oder mache ich einen Fehler? Und warum wirkt sich der Fehler nicht auf das komplette Bild aus?

    Hat jemand irgendwelche Kenntnisse zu dieser Problematik und kann genaueres dazu sagen?

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

Jetzt mitmachen!

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