Ffrydio sgrin i ddyfeisiau lluosog dros y rhwydwaith

Ffrydio sgrin i ddyfeisiau lluosog dros y rhwydwaith

Roedd angen i mi arddangos dangosfwrdd gyda monitro ar sawl sgrin yn y swyddfa. Mae yna nifer o hen Raspberry Pi Model B + a hypervisor gyda swm bron yn ddiderfyn o adnoddau.

Mae'n debyg nad oes gan y Raspberry Pi Model B + ddigon o hap i gadw'r porwr yn rhedeg yn gyson ac yn rendro llawer o graffeg ynddo, ac oherwydd hynny mae'n digwydd bod y dudalen yn rhannol yn bygi ac yn aml yn damweiniau.

Roedd yna ateb eithaf syml a chain, yr wyf am ei rannu gyda chi.

Fel y gwyddoch, mae gan bob Mafon brosesydd fideo eithaf pwerus, sy'n wych ar gyfer datgodio fideo caledwedd. Felly daeth y syniad i fyny i lansio porwr gyda dangosfwrdd yn rhywle arall, a throsglwyddo ffrwd parod gyda llun wedi'i rendro i'r mafon.

Hefyd, dylai hyn fod wedi symleiddio rheolaeth, oherwydd yn yr achos hwn bydd yr holl gyfluniad yn cael ei berfformio ar un peiriant rhithwir, sy'n haws ei ddiweddaru a'i wneud wrth gefn.

Nid cynt wedi dweud na gwneud.

Rhan gweinydd

Rydym yn defnyddio parod Delwedd Cwmwl ar gyfer Ubuntu. Gan nad oes angen gosod, mae'n cynnwys popeth sydd ei angen arnoch i ddefnyddio peiriant rhithwir yn gyflym, a Cefnogaeth CloudInit yn helpu i sefydlu rhwydwaith ar unwaith, ychwanegu allweddi ssh a'i roi ar waith yn gyflym.

Rydym yn defnyddio peiriant rhithwir newydd ac yn gyntaf oll yn ei osod arno Xorg, nodm ΠΈ blwch fflwcs:

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

Byddwn hefyd yn defnyddio'r ffurfwedd ar gyfer Xorg, yn garedig a ganiateir ni Diego Ongaro, gan ychwanegu dim ond penderfyniad newydd 1920 Γ— 1080, gan y bydd ein holl fonitorau yn ei ddefnyddio:

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

Nawr byddwn yn gosod Firefox, byddwn yn ei redeg fel gwasanaeth system, felly am un peth byddwn yn ysgrifennu ffeil uned ar ei gyfer:

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

Mae angen Xdotool er mwyn rhedeg firefox ar unwaith yn y modd sgrin lawn.
Gan ddefnyddio'r paramedr -url gallwch chi nodi unrhyw dudalen fel ei bod yn agor yn awtomatig pan fydd y porwr yn cychwyn.

Ar y cam hwn, mae ein ciosg yn barod, ond nawr mae angen i ni allforio'r ddelwedd dros y rhwydwaith i fonitorau a dyfeisiau eraill. I wneud hyn, byddwn yn defnyddio'r posibiliadau Cynnig JPEG, fformat a ddefnyddir yn fwy cyffredin ar gyfer ffrydio fideo o'r mwyafrif o we-gamerΓ’u.

Ar gyfer hyn mae angen dau beth arnom: FFmpeg gyda modiwl x11afael, ar gyfer tynnu lluniau o x's a ffrwdEye, a fydd yn ei ddosbarthu i'n cleientiaid:

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

Gan nad oes angen diweddariad cyflym ar ein llun, nodais y gyfradd adnewyddu: 1 ffrΓ’m yr eiliad (paramedr -r 1) ac ansawdd cywasgu: 5 (paramedr -q:v 5)

Nawr gadewch i ni geisio mynd i http://your-vm:8080/, mewn ymateb fe welwch sgrinlun o'r bwrdd gwaith sy'n cael ei ddiweddaru'n gyson. Gwych! - beth oedd ei angen.

Ochr y cleient

Mae'n dal yn haws yma, fel y dywedais, byddwn yn defnyddio'r Raspberry Pi Model B +.

Yn gyntaf oll, gadewch i ni ei osod ArchLinux ARM, am hyn yr ydym yn dilyn cyfarwyddiadau ar y wefan swyddogol.

Bydd angen i ni hefyd neilltuo mwy o gof ar gyfer ein sglodyn fideo, ar gyfer hyn byddwn yn golygu /boot/config.txt

gpu_mem=128

Gadewch i ni gychwyn ein system newydd a pheidiwch ag anghofio cychwyn cylch allweddi pacman, gosodwch OMXPlayer:

pacman -Sy omxplayer

Yn rhyfeddol, gall OMXPlayer weithio heb x, felly y cyfan sydd ei angen arnom yw ysgrifennu ffeil uned ar ei gyfer a rhedeg:

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

Fel paramedr -b http://your-vm:8080/ rydym yn pasio'r url o'n gweinydd.

Dyna i gyd, dylai llun o'n gweinydd ymddangos ar unwaith ar y sgrin gysylltiedig. Yn achos unrhyw broblemau, bydd y ffrwd yn cael ei ailgychwyn yn awtomatig a bydd cleientiaid yn ailgysylltu ag ef.

Fel bonws, gallwch osod y llun canlyniadol fel arbedwr sgrin ar bob cyfrifiadur yn y swyddfa. Ar gyfer hyn bydd angen MPV ΠΈ Arbedwr Sgrin:

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

Nawr bydd eich cydweithwyr yn hapus iawn πŸ™‚

Ffynhonnell: hab.com

Ychwanegu sylw