[softhddevice] MPEG Artefakte nach Umschalten mit ffmpeg 2.6.x (Und täglich grüßt das Murmeltier)

  • Moin,


    Es gab mal wieder eine neue stabile ffmpeg Version.


    Beim Umschalten von SDTV Kanälen sieht man nun mehr Artefakte.
    ffmpeg gibt nun fehlerhafte Frames zurück. Im Schnitt um die 14.


    Die Frage ist nun: Will man diese sehen?


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Das ist mir auch schon aufgefallen. Kann es sein, dass dadurch das Umschalten gefühlt schneller vonstatten geht, da man eben schon die halb-kaputten P-Frames sieht und ffmpeg nicht auf ein neues I-Frame wartet?
    Abgesehen davon, dass ich kaum noch SD schaue, stört mich das neuerlich Verhalten nicht wirklich. Ich finde es möglicherweise gar vorteilhaft, wegen des gefühlt schnelleren Umschaltens.

  • Mir wäre ein Umschalten ohne Artefakte lieber.


    Wie das bei solchen Fragen eigentlich immer ist: vermutlich sollte es konfigurierbar sein (wenn es geht). :)


    Lars.

  • Leider bietet gentoo 2.5.4 nicht mehr an. Zum Glück hab ich mir den ebuild davon lokal gesichert


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Das ist mir auch schon aufgefallen. Kann es sein, dass dadurch das Umschalten gefühlt schneller vonstatten geht, da man eben schon die halb-kaputten P-Frames sieht und ffmpeg nicht auf ein neues I-Frame wartet?
    Abgesehen davon, dass ich kaum noch SD schaue, stört mich das neuerlich Verhalten nicht wirklich. Ich finde es möglicherweise gar vorteilhaft, wegen des gefühlt schnelleren Umschaltens.


    Ich meine auch, daß das Umschalten schneller geht, so bin ich auf die Ursache gestossen.
    Bin aber noch am Suchen ob nicht irgendwo ein Fehler ist und so mehr kaputte Frames entstehen.


    Zitat


    Wie das bei solchen Fragen eigentlich immer ist: vermutlich sollte es konfigurierbar sein (wenn es geht). :)


    Ein Patch zum Verhindern ist schon fertig. Konfigurierbar machen ist, ist Arbeit.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Moin,


    also ich habe die Artefakte auf meinem Dev Rechner mit aktuellem Gentoo auch...und ich bin mir sicher, die will wirklich keiner sehen. Die sind ganz schön hässlich ;)


    Ciao Louis

  • Ich habe seit ca. 2 Wochen bei mir 2.6.2 und muss sagen das mir das bis jetzt noch nicht aufgefallen ist, werde das aber mal beobachten.
    Vorher war ich noch bei 1.2.X glaub ich. Und ich bin mit der neuen Version auch zufrieden, bin auch der Meinung das es gefühlt schneller geht.


    Grüße
    Martin

  • GIT enthält nun einen Workaround.


    Aus irgendeinen Grund ändern die Volld* von Gentoo die Version von libavcodec.
    Aber die Änderungen sollten keine Auswirkung mit älteren ffmpeg Versionen haben.


    libav ist nicht getestet.


    Mit der Kommanzeilen Option "-w use-possible-defect-frames" kann man den Workaround ausschalten.


    Wer schnelleres Umschalten mit Defekten will, kann es auch deaktivieren (-w verwenden).
    Sollte dieses Problem in ffmpeg bestehen bleiben, dann kann ich es immer noch ins Setup verschieben.


    Mich würde aber immer noch intressieren ist Umschaltgeschwindigkeit gleich geblieben?


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Also unter "Umschaltgeschwindigkeit" verstehe ich die Zeit, zwischen dem Tastendruck (z.B. <ch+>) auf der Fernbedienung, bis zum stabilen Bild und Ton und das hat sich seit min. einem Jahr nicht verändert.


    Wenn Artefakte, oder ein Blacksreen beim Umschalten kommt, dann kommt es einem halt so vor, als ob das Umschalten länger dauen würde.


    Wenn das genau messen wollte, müsste man wohl im Ausgabedevice eine "Stoppuhr" einbauen, die den "Umschaltbefehl" erkennt und dann misst, wie lange es dauert, bis keine "missed frames" mehr kommen.

  • Macht es einen Unterschied, wenn die Option zum Clearen des decoder buffers aktiviert ist, evtl. In Verbindung mit Schwarzbild beim Umschalten?
    Beim klassischen Umschaltverhalten, wo das alte Bild noch einen Moment nachläuft, ehe das neue Bild kommt, habe ich mich eigentlich immer schon gewundert, wieso das ohne Artefakte ging.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD


  • Wenn das genau messen wollte, müsste man wohl im Ausgabedevice eine "Stoppuhr" einbauen, die den "Umschaltbefehl" erkennt und dann misst, wie lange es dauert, bis keine "missed frames" mehr kommen.


    Ist drin. Mit -DDEBUG kommt die Meldung "video/vdpau: synced after xxx frames yyy ms".
    Ohne Debug lkommt "video/vdpau: synced after yyy frames".
    Das misst wann Bild und Ton im Sync sind.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Macht es einen Unterschied, wenn die Option zum Clearen des decoder buffers aktiviert ist, evtl. In Verbindung mit Schwarzbild beim Umschalten?


    Das macht nur gefühlte Unterschiede. Wenn du mit der Stopuhr misst, sollte zum gleichen Zeitpunkt alles im Sync sein.


    Zitat


    Beim klassischen Umschaltverhalten, wo das alte Bild noch einen Moment nachläuft, ehe das neue Bild kommt, habe ich mich eigentlich immer schon gewundert, wieso das ohne Artefakte ging.


    Früher hat ffmpeg diese kaputten Frames nicht zurückgeben. Ich habe versucht mit Fehlerflags usw. zuspielen, aber die machten keinen Unterschied. Ich habe schon immer was ich bekommen habe ausgeben.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • [...] Mich würde aber immer noch intressieren ist Umschaltgeschwindigkeit gleich geblieben?


    Johns


    Hier mal ein paar Umschaltzeiten: (SD --> SD)



    ffmpeg:

    Code
    vdr01_64 ~ # eix -cI media-video/ffmpeg
    [I] media-video/ffmpeg (2.6.2@18.04.2015): Complete solution to record, convert and stream audio and video. Includes libavcodec
    vdr01_64 ~ #


    Softhddevice:

    Code
    vdr01_64 softhddevice-git # git log |head -n6
    commit f0d31ad33cf08d39186e08914bbcfa7853126c4c
    Author: Johns <johns98@gmx.net>
    Date:   Wed Apr 22 12:35:42 2015 +0200
    
    
        Fixed typing error.
    
    
    vdr01_64 softhddevice-git #
  • Die sind aber extrem lang. Ich denke es liegt am CAM.


    Ich habe hier 1/2 - 1s (30 bis 60).


    Und wie war es mit ffmpeg 2.5.x ?


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • An das CAM habe ich jetzt garnicht gedacht... ^^


    Hier mal ein paar Beispiele mit SD FTA:



    Wie es mit ffmpeg 2.5.x war, kann ich gar nicht mehr sagen, da ich extrem selten SD schaue und meistens auch kein FTA. ;)

  • Ich gebe ja die synced aus. Die Zeit des Umschaltens wird nur mit Debug erfasst und zieht sich über ein paar Stellen.
    Im Prinzip ist mit "Clear on channel switch" der Wert gleichbedeutend.


    Also soltte Frames * 20ms = Zeit sein.


    Reicht das nicht?


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Nun ja, es wird halt so oft nach den "Umschaltzeiten" gefragt und da wäre es halt schön, bzw. einfach, wenn es gleich im Klartext angezeigt würde.


    Ich möchte mich jetzt nicht allzu weit aus dem Fenster lehnen, aber ich gehe mal davon aus, dass die Meisten hier mit Millisekunden eher etwas anfangen können, als mit Frames. ;)

  • Ich wollte gerade einmal testen, ob ich das Gefühl empirisch bestätigen kann. Allerdings gibt es jetzt bei mir mit ffmpeg 2.6.3 keine Artifakte mehr - also sowohl mit, als auch ohne Workaround. In der Zwischenzeit wurde bei Arch aber auch an den config flags gedreht, wobei das laut commit message nur die Vorgabewerte betraf: https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/ffmpeg&id=09be7451cd235d0e7e8ef22f6d745eeeae4414cf.


    Kann jemand das Verhalten mit ffmpeg>2.6.2 bestätigen?

  • Leider keine Zeit zum Testen. Aber man kann ja das schnelle Umschalten im Setup einschalten.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

Jetzt mitmachen!

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