[gelöst] schlechte Qualität bei Screenshot mit GRAB

  • Hallo zusammen,
    ich habe mir meine Hintergründe für das DVD-Menü bislang über burn selbst erstellt. Seit dem Umstieg von einer FF-Karte auf ein Budget-System mit Ausgabe über softhddevice und Nvidia GeForce 210 ist die Qualität der Screenshots sehr schlecht. Auf meinen Systemen habe ich dann Screenshots mit folgendem Befehl erstellt und diese verglichen:

    Code
    svdrpsend.sh GRAB /tmp/screenshot.jpg


    Auf dem HD-Client (Nvidia GT520) ist die Qualität geringfügig besser, aber immer noch nicht zu gebrauchen. Auf den beiden SD-Clients, die noch eine FF-Karte haben ist die Qualität super. Als Anlage habe ich einen Screenshot vom Server beigefügt.


    Gibt es eine Möglichkeit, Screenshots auf dem Server in gewohnt guter Qualität zu erzeugen?


    Viele Grüße skippy

  • Also mit einer entsprechend hohen Qualitätsstufe hatte ich da nie Probleme...

    Code
    svdrpsend GRAB test.jpeg 100


    Aber man sollte den Wiki-Artikel mal korrigieren, dass der Standard-Wert nicht 100 sondern 0 ist... http://www.vdr-wiki.de/wiki/index.php/SVDRP#GRAB

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • So einfach kann das Leben sein :]


    Funktioniert prima, ich danke euch für die schnelle Hilfe.


    Viele Grüße skippy

  • Also mit einer entsprechend hohen Qualitätsstufe hatte ich da nie Probleme...

    Code
    svdrpsend GRAB test.jpeg 100


    Aber man sollte den Wiki-Artikel mal korrigieren, dass der Standard-Wert nicht 100 sondern 0 ist... http://www.vdr-wiki.de/wiki/index.php/SVDRP#GRAB


    Der Default ist 100.
    Möglicherweise hat das softhddevice die Behandlung des Default-Parameters -1 für "Quality" nicht richtig implementiert.


    Klaus

  • Wenn dann macht es "RgbToJpeg" falsch, das rufe ich einfach auf.
    Und ja das macht für Quality < 0 Quality = 0.


    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

  • Hallo!


    Wobei 100, wenn das am Ende so bei der JPEG-Library landet, kein sinnvoller Wert ist.
    Aus der FAQ:
    Except for experimental purposes, never go above about Q 95; using Q 100
    will produce a file two or three times as large as Q 95, but of hardly any
    better quality. Q 100 is a mathematical limit rather than a useful setting.

    Ciao,
    Eike

  • Wenn dann macht es "RgbToJpeg" falsch, das rufe ich einfach auf.
    Und ja das macht für Quality < 0 Quality = 0.


    RgbToJpeg() verhält sich so, wie beschrieben:


    uchar *RgbToJpeg(uchar *Mem, int Width, int Height, int &Size, int Quality = 100);
    ///< Converts the given Memory to a JPEG image and returns a pointer
    ///< to the resulting image. Mem must point to a data block of exactly
    ///< (Width * Height) triplets of RGB image data bytes. Upon return, Size
    ///< will hold the number of bytes of the resulting JPEG data.
    ///< Quality can be in the range 0..100 and controls the quality of the
    ///< resulting image, where 100 is "best".
    The caller takes ownership of
    ///< the result and has to delete it once it is no longer needed.
    ///< The result may be NULL in case of an error.


    Ein Wert von -1 ist an dieser Stelle nicht vorgesehen.


    Siehe auch

    Code
    uchar *cDvbSdFfDevice::GrabImage(int &Size, bool Jpeg, int Quality, int SizeX, int SizeY)
    ...
                                 if (Quality < 0)
                                    Quality = 100;


    Klaus


  • Tja, das hätte man vielleicht wissen sollen, wie das damals eingebaut wurde.


    Vielleicht ist das mit den verschiedenen Qualitätsstufen ja auch ein alter Hut und man sollte das künftig für obsolet erklären und immer "beste Qualität" annehmen. Dann könnte RgbToJpeg() einfach 95 nehmen.


    Würde es überhaupt jemand vermissen, wenn es keine "schlechte" Qualität mehr gäbe?


    Klaus


  • Würde es überhaupt jemand vermissen, wenn es keine "schlechte" Qualität mehr gäbe?
    Klaus


    "Handauslöser" wird es kaum stören. Fairerweise wird man Full-HD shoots fürs web auch skalieren und dann kann man die Qualität auch auf 50 - 80 % stellen.

  • Würde es überhaupt jemand vermissen, wenn es keine "schlechte" Qualität mehr gäbe?


    Schlechter machen geht doch immer, also wäre festnageln auf 95 perfekt.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

Jetzt mitmachen!

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