Displaylink monitorok

6 db Samsung U70-es monitort kötöttünk rá egy gépre, a feladat az lenne, hogy 6 különböző (800x480-as felbontású) videót játsszon le párhuzamosan, mindegyik monitoron különbözőt.

A probléma az, hogy akadozik a lejátszás, nagyon sok a framedrop (kb 2-3 FPS lehet az átlag). A 6 mplayer egyenként 2-3% CPU time-ot használ, az X 12%-ot. Ha csak 3-4 monitor van bekötve, akkor folyamatosnak tűnik a lejátszás. Ha a videók felbontását 400x240-esre vesszük (minden képernyő közepén jelenik meg csak a videó), teljesen folyamatos a lejátszás.

Paraméterek:

  • monitorok felbontása: 800x480, bekötése: 6 USB csatlakozó van a gépen, erre a 6 monitor, külön tápegység adja az 5V-ot nekik, más monitor nincs a gépre kötve
  • gép: négymagos, sok memória van benne
  • Linux 2.6.35, udlfb-0.2.3 (innen), xf-video-udlfb (innen), Linux disztribúció: NixOS
  • mplayer indítása: nice -10 mplayer -display :0.N -ao null -nosound -vo x11 -framedrop -screenh 480 -screenw 800 -nodouble FILE, ahol N a display sorszáma
  • xorg.conf:
    
    Section "Device"
        Identifier      "DisplayLinkDevice1"
        driver          "displaylink"
        Option  "fbdev" "/dev/fb0"
    EndSection
    Section "Monitor"
        Identifier      "DisplayLinkMonitor1"
    EndSection  
    Section "Screen"
        Identifier      "DisplayLinkScreen1"
        Device          "DisplayLinkDevice1"
        Monitor         "DisplayLinkMonitor1"
        SubSection "Display"
            Depth   24
            Modes   "800x480"
        EndSubSection
    EndSection
    
    (... hasonlóan mindegyik monitorra, majd:)
    
    Section "ServerLayout"
        Identifier     "Configured-Layout"
        Screen      1       "DisplayLinkScreen1" 0 0
        Screen      2       "DisplayLinkScreen2" LeftOf "DisplayLinkScreen1"
        Screen      3       "DisplayLinkScreen3" LeftOf "DisplayLinkScreen2"
        Screen      4       "DisplayLinkScreen4" LeftOf "DisplayLinkScreen3"
        Screen      5       "DisplayLinkScreen5" LeftOf "DisplayLinkScreen4"
        Screen      6       "DisplayLinkScreen6" LeftOf "DisplayLinkScreen5"
        Option         "Xinerama" "off"
    EndSection
    

Kipróbáltuk X nélkül, mplayer -vo fbdev:/dev/fbN módon is, a 2.6.32 és 2.6.35 kernel és az udlfb legalább 4 különböző verziójának mindenféle kombinációjával, nagyon sokszor csontra fagyott a gép, és lejátszást egyik esetben sem sikerült produkálni, csak villan egyet a képernyő, amikor elindítjuk a lejátszást, és az utolsó frame megjelenik és ott marad a képen, amikor leállítjuk a lejátszást.

Az mplayer -vo x11-es verzió esetében pedig, ha nem egymás után közvetlenül, hanem pl. 5 másodperc késleltetéssel indítjuk el a videókat, sokkal rosszabb a helyzet, hosszú időkre lefagynak a képek, néha elfeketülnek a képernyők stb.

Ha bárkinek van bármi ötlete, javaslata, tapasztalata, nagyon szívesen és köszönettel vesszük!

+kérdés: hogyan lehet beállítani parancssorból, hogy az mplayer OSD menüje jelenjen meg (amit billentyűzetről az o nyomogatásával érünk el)? Mplayer manualban nem találom.

Hozzászólások

Próbálkoztatok PCI-os USB kártyával ? (3 monitor az alaplapra, 3 a kártyára)

-vo xv megy?
Nekem régről úgy rémlik, hogy az xv sokkal kisebb terhelést okozott adott gépen, mint az x11.

Más: nem lehet, hogy a disk gyenge alatta? ha 6 különböző stream megy akkor az okozhat kis IO terhelést (iowait mennyi, iotop mit mutat).
Nem lehet ramdisk-kel játszani? Ha kicsi lejátszandó videók mennek loop-ban akkor ezzel a disk io-t ki lehetne hagyni, ha tényleg sok a mem a gépben. Vagy io scheduler csere is használhat, ha az io a probléma.

Illetve ki kellene próbálni, hogy ha 5 mplayer vo null-ra dolgozik és csak 1 megy monitorra, akkor szaggat-e. Mert tapasztalatom szerint az USB is tudja ölni a gépet.

Illetve NixOS az mi? Még életemben nem hallottam róla, lehet, hogy egy másik disztró simán vinné.

mplayer fordítva, csomagból, honnan van?