Tistrimja l-iskrin għal diversi apparati fuq in-netwerk

Tistrimja l-iskrin għal diversi apparati fuq in-netwerk

Kelli bżonn nuri dashboard b'monitoraġġ fuq diversi skrins fl-uffiċċju. Għandna diversi Raspberry Pi Mudell B + qodma u hypervisor b'ammont kważi illimitat ta 'riżorsi.

Apparentement il-Raspberry Pi Mudell B + m'għandux biżżejjed każwali biex iżomm il-browser jaħdem kontinwament u jirrendi ammont kbir ta 'grafika fih, u huwa għalhekk li jiġri li l-paġna hija parzjalment glitchy u ħafna drabi tiġġarraf.

Sibt soluzzjoni pjuttost sempliċi u eleganti, li nixtieq naqsam miegħek.

Kif tafu, il-lampun kollu għandu proċessur tal-vidjow pjuttost qawwi, li huwa eċċellenti għad-dekodifikazzjoni tal-vidjow tal-ħardwer. Allura ħarġet l-idea li tniedi browser b'dashboard x'imkien ieħor, u tittrasferixxi fluss lest b'immaġni mogħtija lill-lampun.

Barra minn hekk, dan għandu jkollu ġestjoni simplifikata, peress li f'dan il-każ is-setup kollu jsir fuq magna virtwali waħda, li tkun aktar faċli biex taġġorna u tagħmel backup.

Mhux kmieni qal milli jsir.

Parti tas-server

Aħna se nużaw il-lest Cloud Image għal Ubuntu. Mingħajr ma teħtieġ installazzjoni, fiha dak kollu li għandek bżonn biex tiskjera malajr magna virtwali, u Appoġġ Cloud-Init jgħin biex iwaqqaf netwerk istantanjament, iżżid ċwievet ssh u malajr iħaddem.

Aħna niskjeraw magna virtwali ġdida u l-ewwelnett ninstallawha fuqha Xorg, nom и flixkun:

apt-get update
apt-get install -y xserver-xorg nodm fluxbox
sed -i 's/^NODM_USER=.*/NODM_USER=ubuntu/' /etc/default/nodm

Se nużaw ukoll il-konfigurazzjoni għal Xorg, ġentilment mogħtija us Diego Ongaro, li żżid biss riżoluzzjoni ġdida 1920 × 1080, peress li l-monitors kollha tagħna se jużawha:

cat > /etc/X11/xorg.conf <<EOT
Section "Device"
    Identifier      "device"
    Driver          "vesa"
EndSection

Section "Screen"
    Identifier      "screen"
    Device          "device"
    Monitor         "monitor"
    DefaultDepth    16
    SubSection "Display"
        Modes       "1920x1080" "1280x1024" "1024x768" "800x600"
    EndSubSection
EndSection

Section "Monitor"
    Identifier      "monitor"
    HorizSync       20.0 - 50.0
    VertRefresh     40.0 - 80.0
    Option          "DPMS"
EndSection

Section "ServerLayout"
    Identifier      "layout"
    Screen          "screen"
EndSection
EOT

systemctl restart nodm

Issa se ninstallaw Firefox, inħaddmuh bħala servizz tas-sistema, allura ejja niktbu fajl tal-unità għalih f'daqqa:

apt-get install -y firefox xdotool

cat > /etc/systemd/system/firefox.service <<EOT
[Unit]
Description=Firefox
After=network.target

[Service]
Restart=always
User=ubuntu
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/ubuntu/.Xauthority"
ExecStart=/usr/bin/firefox -url 'http://example.org/mydashboard'
ExecStartPost=/usr/bin/xdotool search --sync --onlyvisible --class "Firefox" windowactivate key F11

[Install]
WantedBy=graphical.target
EOT

systemctl enable firefox
systemctl start firefox

Għandna bżonn Xdotool sabiex inniedu Firefox immedjatament fil-modalità ta 'skrin sħiħ.
Bl-użu tal-parametru -url Tista' tispeċifika kwalunkwe paġna sabiex tinfetaħ awtomatikament meta jibda l-browser.

F'dan l-istadju, il-gabbana tagħna hija lesta, iżda issa għandna bżonn nesportaw l-immaġni fuq in-netwerk għal monitors u apparati oħra. Biex nagħmlu dan se nieħdu vantaġġ mill-opportunitajiet Mozzjoni JPEG, format li jintuża aktar spiss għall-istrimjar tal-vidjo mill-biċċa l-kbira tal-kameras tal-web.

Biex nagħmlu dan għandna bżonn żewġ affarijiet: FFmpeg bil-modulu x11grab, biex taqbad immaġini minn X u streamEye, li se jqassamha lill-klijenti tagħna:

apt-get install -y make gcc ffmpeg 

cd /tmp/
wget https://github.com/ccrisan/streameye/archive/master.tar.gz
tar xvf master.tar.gz 
cd streameye-master/
make
make install

cat > /etc/systemd/system/streameye.service <<EOT
[Unit]
Description=streamEye
After=network.target

[Service]
Restart=always
User=ubuntu
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/ubuntu/.Xauthority"
ExecStart=/bin/sh -c 'ffmpeg -f x11grab -s 1920x1080 -i :0 -r 1 -f mjpeg -q:v 5 - 2>/dev/null | streameye'

[Install]
WantedBy=graphical.target
EOT

systemctl enable streameye
systemctl start streameye

Peress li l-immaġni tagħna ma teħtieġx aġġornament mgħaġġel, speċifikajt ir-rata ta 'aġġornament: 1 frame kull sekonda (parametru -r 1) u l-kwalità tal-kompressjoni: 5 (parametru -q:v 5)

Issa ejja nippruvaw immorru http://your-vm:8080/, Bi tweġiba se tara screenshot aġġornata kontinwament tad-desktop tiegħek. Kbir! - dak kien meħtieġ.

In-naħa tal-klijent

Hawnhekk kollox huwa saħansitra aktar sempliċi, kif diġà għedt, se nużaw Raspberry Pi Model B +.

L-ewwelnett, ejja ninstallaw fuqha ArchLinux ARM, għal dan aħna nsegwu istruzzjonijiet fuq is-sit uffiċjali

Ikollna wkoll bżonn nallokaw aktar memorja għaċ-ċippa tal-vidjo tagħna, għal dan aħna se neditjaw fiha /boot/config.txt

gpu_mem=128

Ejja nibdew is-sistema l-ġdida tagħna u, waqt li niftakru li inizjalizzaw iċ-ċwievet pacman, installa OMXPlayer:

pacman -Sy omxplayer

Dak li ta’ min jinnota huwa li OMXPlayer jista’ jaħdem mingħajr X’s, għalhekk kulma għandna bżonn huwa li niktbu fajl ta’ unità għalih u nħaddmu:

cat > /etc/systemd/system/omxplayer.service <<EOT
[Unit]
Description=OMXPlayer
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/omxplayer -r --live -b http://your-vm:8080/ --aspect-mode full

[Install]
WantedBy=multi-user.target
EOT

systemctl enable omxplayer
systemctl start omxplayer

Bħala parametru -b http://your-vm:8080/ qed ngħaddu l-URL mis-server tagħna.

Dak kollu, stampa mis-server tagħna għandha tidher immedjatament fuq l-iskrin konness. Jekk jinqalgħu xi problemi, in-nixxiegħa terġa' tinbeda awtomatikament u l-klijenti jerġgħu jgħaqqdu miegħu.

Bħala bonus, tista 'tinstalla l-immaġni li tirriżulta bħala screensaver fuq il-kompjuters kollha fl-uffiċċju. Għal dan ser ikollok bżonn MPV и XScreenSaver:

mode:  one
selected: 0
programs:              
     "Monitoring Screen"  mpv --really-quiet --no-audio --fs       
      --loop=inf --no-stop-screensaver       
      --wid=$XSCREENSAVER_WINDOW        
      http://your-vm:8080/      n
    maze -root        n
    electricsheep --root 1       n

Issa l-kollegi tiegħek se jkunu kuntenti ħafna :)

Sors: www.habr.com

Żid kumment