په شبکه کې ډیری وسیلو ته سکرین جریان کړئ

په شبکه کې ډیری وسیلو ته سکرین جریان کړئ

ما اړتیا درلوده چې په دفتر کې په څو سکرینونو کې د څارنې سره ډشبورډ ښکاره کړم. ډیری زاړه Raspberry Pi ماډل B + او یو هایپروایسر شتون لري چې نږدې غیر محدود سرچینې لري.

په ښکاره ډول د Raspberry Pi ماډل B+ دومره تصادفي نه لري چې براوزر په دوامداره توګه پرمخ بوځي او په دې کې ډیری ګرافیکونه وړاندې کړي، د دې له امله دا پیښیږي چې پاڼه په جزوي ډول خرابه وي او ډیری وختونه خرابیږي.

یو خورا ساده او په زړه پوری حل و ، کوم چې زه غواړم تاسو سره شریک کړم.

لکه څنګه چې تاسو پوهیږئ، ټول راسبیري یو خورا پیاوړی ویډیو پروسیسر لري، کوم چې د هارډویر ویډیو کوډ کولو لپاره خورا ښه دی. نو دا مفکوره راپورته شوه چې د ډشبورډ سره یو براوزر په بل ځای کې پیل کړئ ، او راسبیري ته د چمتو شوي عکس سره چمتو شوی جریان لیږدئ.

برسیره پردې، دا باید ساده مدیریت ولري، ځکه چې پدې حالت کې به ټول ترتیبات په یو مجازی ماشین کې ترسره شي، کوم چې تازه کول او بیک اپ کول اسانه دي.

د هغه نه زر نه کیږی.

د سرور برخه

موږ چمتو کاروو د اوبنټو لپاره د کلاوډ عکس. هیڅ نصب ته اړتیا نلري، پدې کې هر هغه څه شامل دي چې تاسو ورته اړتیا لرئ ژر تر ژره د مجازی ماشین ځای په ځای کړئ، او د CloudInit ملاتړ په سمدستي توګه د شبکې تنظیم کولو کې مرسته کوي، د ssh کیلي اضافه کړئ او په چټکۍ سره یې په عمل کې واچوئ.

موږ یو نوی مجازی ماشین ځای په ځای کوو او لومړی یې په دې کې نصب کوو Xorg, nodm и فلوکس بوکس:

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 تاسو کولی شئ هره پاڼه مشخص کړئ ترڅو دا په اتوماتيک ډول خلاص شي کله چې براوزر پیل شي.

پدې مرحله کې ، زموږ کیوسک چمتو دی ، مګر اوس موږ اړتیا لرو چې عکس د شبکې له لارې نورو څارونکو او وسیلو ته صادر کړو. د دې کولو لپاره، موږ به د امکاناتو څخه کار واخلو حرکت JPEG، یو فارمیټ چې په عام ډول د ډیری ویب کیمونو څخه د ویډیو خپرولو لپاره کارول کیږي.

د دې لپاره موږ دوه شیانو ته اړتیا لرو: FFmpeg د ماډل سره x11grabد x's او څخه د عکسونو اخیستلو لپاره streamEye، کوم چې به یې زموږ پیرودونکو ته توزیع کړي:

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 + وکاروو.

لومړی، راځئ چې دا نصب کړو د آرک لینکس آرم، د دې لپاره موږ تعقیب کوو لارښوونې په رسمي سایټ کې.

موږ به د خپل ویډیو چپ لپاره نور حافظه تخصیص ته هم اړتیا ولرو، د دې لپاره به موږ ترمیم کړو /boot/config.txt

gpu_mem=128

راځئ چې خپل نوی سیسټم بوټ کړو او د Pacman کیرینګ پیل کول مه هیروئ، نصب کړئ OMXPlayer:

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/ موږ له خپل سرور څخه یو آر ایل لیږدوو.

دا ټول، زموږ د سرور څخه یو انځور باید سمدلاسه په تړل شوي سکرین کې ښکاره شي. د کومې ستونزې په صورت کې، جریان به په اوتومات ډول بیا پیل شي او پیرودونکي به ورسره وصل شي.

د بونس په توګه، تاسو کولی شئ پایله لرونکی انځور په دفتر کې په ټولو کمپیوټرونو کې د سکرین سیور په توګه نصب کړئ. د دې لپاره تاسو اړتیا لرئ 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

Add a comment