ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಬಹು ಸಾಧನಗಳಿಗೆ ಪರದೆಯನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಿ

ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಬಹು ಸಾಧನಗಳಿಗೆ ಪರದೆಯನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಿ

ಕಛೇರಿಯಲ್ಲಿನ ಹಲವಾರು ಪರದೆಗಳಲ್ಲಿ ಮಾನಿಟರಿಂಗ್ ಇರುವ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸುವ ಅಗತ್ಯತೆ ನನಗಿತ್ತು. ಹಲವಾರು ಹಳೆಯ ರಾಸ್ಪ್ಬೆರಿ ಪೈ ಮಾದರಿ B + ಮತ್ತು ಬಹುತೇಕ ಅನಿಯಮಿತ ಪ್ರಮಾಣದ ಸಂಪನ್ಮೂಲಗಳೊಂದಿಗೆ ಹೈಪರ್ವೈಸರ್ ಇವೆ.

ಸ್ಪಷ್ಟವಾಗಿ ರಾಸ್ಪ್ಬೆರಿ ಪೈ ಮಾದರಿ B+ ಬ್ರೌಸರ್ ಅನ್ನು ನಿರಂತರವಾಗಿ ಚಾಲನೆಯಲ್ಲಿಡಲು ಸಾಕಷ್ಟು ಯಾದೃಚ್ಛಿಕತೆಯನ್ನು ಹೊಂದಿಲ್ಲ ಮತ್ತು ಅದರಲ್ಲಿ ಬಹಳಷ್ಟು ಗ್ರಾಫಿಕ್ಸ್ ಅನ್ನು ರೆಂಡರಿಂಗ್ ಮಾಡುತ್ತದೆ, ಇದರಿಂದಾಗಿ ಪುಟವು ಭಾಗಶಃ ದೋಷಯುಕ್ತವಾಗಿದೆ ಮತ್ತು ಆಗಾಗ್ಗೆ ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತದೆ.

ಸಾಕಷ್ಟು ಸರಳ ಮತ್ತು ಸೊಗಸಾದ ಪರಿಹಾರವಿತ್ತು, ಅದನ್ನು ನಾನು ನಿಮ್ಮೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುತ್ತೇನೆ.

ನಿಮಗೆ ತಿಳಿದಿರುವಂತೆ, ಎಲ್ಲಾ ರಾಸ್ಪ್ಬೆರಿಗಳು ಸಾಕಷ್ಟು ಶಕ್ತಿಯುತವಾದ ವೀಡಿಯೊ ಪ್ರೊಸೆಸರ್ ಅನ್ನು ಹೊಂದಿವೆ, ಇದು ಹಾರ್ಡ್ವೇರ್ ವೀಡಿಯೊ ಡಿಕೋಡಿಂಗ್ಗೆ ಉತ್ತಮವಾಗಿದೆ. ಆದ್ದರಿಂದ ಬೇರೆಡೆ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌ನೊಂದಿಗೆ ಬ್ರೌಸರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಮತ್ತು ರೆಂಡರ್ ಮಾಡಿದ ಚಿತ್ರದೊಂದಿಗೆ ರೆಡಿಮೇಡ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ರಾಸ್ಪ್ಬೆರಿಗೆ ವರ್ಗಾಯಿಸಲು ಆಲೋಚನೆ ಬಂದಿತು.

ಜೊತೆಗೆ, ಇದು ಸರಳೀಕೃತ ನಿರ್ವಹಣೆಯನ್ನು ಹೊಂದಿರಬೇಕು, ಏಕೆಂದರೆ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಎಲ್ಲಾ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಒಂದು ವರ್ಚುವಲ್ ಗಣಕದಲ್ಲಿ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ, ಇದು ನವೀಕರಿಸಲು ಮತ್ತು ಬ್ಯಾಕಪ್ ಮಾಡಲು ಸುಲಭವಾಗಿದೆ.

ಬೇಗ ಹೇಳೋದು.

ಸರ್ವರ್ ಭಾಗ

ನಾವು ಸಿದ್ಧವಾಗಿ ಬಳಸುತ್ತೇವೆ ಉಬುಂಟುಗಾಗಿ ಮೇಘ ಚಿತ್ರ. ಯಾವುದೇ ಅನುಸ್ಥಾಪನೆಯ ಅಗತ್ಯವಿಲ್ಲ, ನೀವು ತ್ವರಿತವಾಗಿ ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ನಿಯೋಜಿಸಲು ಅಗತ್ಯವಿರುವ ಎಲ್ಲವನ್ನೂ ಇದು ಒಳಗೊಂಡಿದೆ, ಮತ್ತು CloudInit ಬೆಂಬಲ ತಕ್ಷಣವೇ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಹೊಂದಿಸಲು, ssh ಕೀಗಳನ್ನು ಸೇರಿಸಲು ಮತ್ತು ಅದನ್ನು ತ್ವರಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.

ನಾವು ಹೊಸ ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ನಿಯೋಜಿಸುತ್ತೇವೆ ಮತ್ತು ಮೊದಲನೆಯದಾಗಿ ಅದನ್ನು ಅದರಲ್ಲಿ ಸ್ಥಾಪಿಸುತ್ತೇವೆ ಕ್ಷೌರ, ನಮನ и ಫ್ಲಕ್ಸ್‌ಬಾಕ್ಸ್:

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

ನಾವು Xorg ಗಾಗಿ ಸಂರಚನೆಯನ್ನು ಸಹ ಬಳಸುತ್ತೇವೆ ಮಂಜೂರು ಮಾಡಿದೆ ನಮಗೆ ಡಿಯಾಗೋ ಒಂಗಾರೊ, ಹೊಸ ರೆಸಲ್ಯೂಶನ್ ಅನ್ನು ಮಾತ್ರ ಸೇರಿಸುತ್ತಿದ್ದಾರೆ 1920 × 1080, ನಮ್ಮ ಎಲ್ಲಾ ಮಾನಿಟರ್‌ಗಳು ಇದನ್ನು ಬಳಸುವುದರಿಂದ:

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

ಈಗ ನಾವು ಫೈರ್‌ಫಾಕ್ಸ್ ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇವೆ, ನಾವು ಅದನ್ನು ಸಿಸ್ಟಮ್ ಸೇವೆಯಾಗಿ ರನ್ ಮಾಡುತ್ತೇವೆ, ಆದ್ದರಿಂದ ಒಂದು ವಿಷಯಕ್ಕಾಗಿ ನಾವು ಅದಕ್ಕೆ ಯುನಿಟ್ ಫೈಲ್ ಅನ್ನು ಬರೆಯುತ್ತೇವೆ:

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

ಫೈರ್‌ಫಾಕ್ಸ್ ಅನ್ನು ತಕ್ಷಣವೇ ಪೂರ್ಣ ಪರದೆಯ ಮೋಡ್‌ನಲ್ಲಿ ರನ್ ಮಾಡಲು ನಮಗೆ Xdotool ಅಗತ್ಯವಿದೆ.
ನಿಯತಾಂಕವನ್ನು ಬಳಸುವುದು -url ನೀವು ಯಾವುದೇ ಪುಟವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು ಇದರಿಂದ ಬ್ರೌಸರ್ ಪ್ರಾರಂಭವಾದಾಗ ಅದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆರೆಯುತ್ತದೆ.

ಈ ಹಂತದಲ್ಲಿ, ನಮ್ಮ ಕಿಯೋಸ್ಕ್ ಸಿದ್ಧವಾಗಿದೆ, ಆದರೆ ಈಗ ನಾವು ಇತರ ಮಾನಿಟರ್‌ಗಳು ಮತ್ತು ಸಾಧನಗಳಿಗೆ ನೆಟ್‌ವರ್ಕ್ ಮೂಲಕ ಚಿತ್ರವನ್ನು ರಫ್ತು ಮಾಡಬೇಕಾಗಿದೆ. ಇದನ್ನು ಮಾಡಲು, ನಾವು ಸಾಧ್ಯತೆಗಳನ್ನು ಬಳಸುತ್ತೇವೆ ಚಲನೆ ಜೆಪಿಇಜಿ, ಹೆಚ್ಚಿನ ವೆಬ್‌ಕ್ಯಾಮ್‌ಗಳಿಂದ ವೀಡಿಯೊವನ್ನು ಸ್ಟ್ರೀಮಿಂಗ್ ಮಾಡಲು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸುವ ಸ್ವರೂಪ.

ಇದಕ್ಕಾಗಿ ನಮಗೆ ಎರಡು ವಿಷಯಗಳು ಬೇಕಾಗುತ್ತವೆ: FFmpeg ಮಾಡ್ಯೂಲ್ನೊಂದಿಗೆ x11 ಗ್ರಾಬ್, X ನಿಂದ ಚಿತ್ರಗಳನ್ನು ಸೆರೆಹಿಡಿಯಲು ಮತ್ತು ಸ್ಟ್ರೀಮ್ಐ, ಇದು ನಮ್ಮ ಗ್ರಾಹಕರಿಗೆ ವಿತರಿಸುತ್ತದೆ:

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

ನಮ್ಮ ಚಿತ್ರಕ್ಕೆ ವೇಗದ ನವೀಕರಣ ಅಗತ್ಯವಿಲ್ಲದ ಕಾರಣ, ನಾನು ರಿಫ್ರೆಶ್ ದರವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ್ದೇನೆ: ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ 1 ಫ್ರೇಮ್ (ಪ್ಯಾರಾಮೀಟರ್ -r 1) ಮತ್ತು ಕಂಪ್ರೆಷನ್ ಗುಣಮಟ್ಟ: 5 (ಪ್ಯಾರಾಮೀಟರ್ -q:v 5)

ಈಗ ನಾವು ಹೋಗಲು ಪ್ರಯತ್ನಿಸೋಣ http://your-vm:8080/, ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿ ನೀವು ಡೆಸ್ಕ್‌ಟಾಪ್‌ನ ನಿರಂತರವಾಗಿ ನವೀಕರಿಸಿದ ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ಅನ್ನು ನೋಡುತ್ತೀರಿ. ಗ್ರೇಟ್! - ಏನು ಬೇಕಿತ್ತು.

ಗ್ರಾಹಕರ ಕಡೆ

ಇಲ್ಲಿ ಇನ್ನೂ ಸುಲಭವಾಗಿದೆ, ನಾನು ಹೇಳಿದಂತೆ, ನಾವು ರಾಸ್ಪ್ಬೆರಿ ಪೈ ಮಾದರಿ B + ಅನ್ನು ಬಳಸುತ್ತೇವೆ.

ಮೊದಲನೆಯದಾಗಿ, ಅದನ್ನು ಸ್ಥಾಪಿಸೋಣ ಆರ್ಚ್ ಲಿನಕ್ಸ್ ARM, ಇದಕ್ಕಾಗಿ ನಾವು ಅನುಸರಿಸುತ್ತೇವೆ ಸೂಚನೆಗಳು ಅಧಿಕೃತ ಸೈಟ್ನಲ್ಲಿ.

ನಮ್ಮ ವೀಡಿಯೊ ಚಿಪ್‌ಗಾಗಿ ನಾವು ಹೆಚ್ಚಿನ ಮೆಮೊರಿಯನ್ನು ನಿಯೋಜಿಸಬೇಕಾಗುತ್ತದೆ, ಇದಕ್ಕಾಗಿ ನಾವು ಸಂಪಾದಿಸುತ್ತೇವೆ /boot/config.txt

gpu_mem=128

ನಮ್ಮ ಹೊಸ ಸಿಸ್ಟಮ್ ಅನ್ನು ಬೂಟ್ ಮಾಡೋಣ ಮತ್ತು ಪ್ಯಾಕ್‌ಮ್ಯಾನ್ ಕೀರಿಂಗ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಮರೆಯಬೇಡಿ, ಸ್ಥಾಪಿಸಿ OMX ಪ್ಲೇಯರ್:

pacman -Sy omxplayer

ಗಮನಾರ್ಹವಾಗಿ, OMXPlayer x ಇಲ್ಲದೆ ಕೆಲಸ ಮಾಡಬಹುದು, ಆದ್ದರಿಂದ ನಮಗೆ ಬೇಕಾಗಿರುವುದು ಅದಕ್ಕೆ ಯೂನಿಟ್ ಫೈಲ್ ಅನ್ನು ಬರೆಯುವುದು ಮತ್ತು ರನ್ ಮಾಡುವುದು:

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 http://your-vm:8080/ ನಾವು ನಮ್ಮ ಸರ್ವರ್‌ನಿಂದ url ಅನ್ನು ರವಾನಿಸುತ್ತಿದ್ದೇವೆ.

ಅಷ್ಟೆ, ನಮ್ಮ ಸರ್ವರ್‌ನಿಂದ ಚಿತ್ರವು ಸಂಪರ್ಕಿತ ಪರದೆಯಲ್ಲಿ ತಕ್ಷಣ ಗೋಚರಿಸಬೇಕು. ಯಾವುದೇ ಸಮಸ್ಯೆಗಳಿದ್ದಲ್ಲಿ, ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಗ್ರಾಹಕರು ಅದಕ್ಕೆ ಮರುಸಂಪರ್ಕಿಸುತ್ತಾರೆ.

ಬೋನಸ್ ಆಗಿ, ಕಛೇರಿಯಲ್ಲಿರುವ ಎಲ್ಲಾ ಕಂಪ್ಯೂಟರ್‌ಗಳಲ್ಲಿ ನೀವು ಪರಿಣಾಮವಾಗಿ ಚಿತ್ರವನ್ನು ಸ್ಕ್ರೀನ್‌ಸೇವರ್ ಆಗಿ ಸ್ಥಾಪಿಸಬಹುದು. ಇದಕ್ಕಾಗಿ ನಿಮಗೆ ಅಗತ್ಯವಿರುತ್ತದೆ MPV и ಎಕ್ಸ್‌ಸ್ಕ್ರೀನ್‌ಸೇವರ್:

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

ಈಗ ನಿಮ್ಮ ಸಹೋದ್ಯೋಗಿಗಳು ತುಂಬಾ ಸಂತೋಷವಾಗಿರುತ್ತಾರೆ 🙂

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ