اسڪرين کي نيٽ ورڪ تي ڪيترن ئي ڊوائيسز ڏانهن اسٽريم ڪريو

اسڪرين کي نيٽ ورڪ تي ڪيترن ئي ڊوائيسز ڏانهن اسٽريم ڪريو

مون کي آفيس ۾ ڪيترن ئي اسڪرينن تي مانيٽرنگ سان گڏ ڊيش بورڊ ڏيکارڻ جي ضرورت هئي. اسان وٽ ڪيترائي پراڻا Raspberry Pi Model B+ ۽ هڪ هائپر وائزر آهن جن وٽ وسيلن جي تقريبن لامحدود مقدار آهي.

بظاهر Raspberry Pi Model B+ وٽ ايتري بي ترتيبي نه آهي ته برائوزر کي مسلسل هلندي رهي ۽ ان ۾ گرافڪس جي وڏي مقدار پيش ڪري ٿي، جنهن جي ڪري اهو ٿئي ٿو ته صفحو جزوي طور تي خراب ٿئي ٿو ۽ اڪثر ڪري حادثو ٿئي ٿو.

مون کي ھڪڙو سادو ۽ خوبصورت حل مليو، جيڪو مان توھان سان حصيداري ڪرڻ چاھيان ٿو.

جئين توهان کي خبر آهي، سڀني Raspberries وٽ ڪافي طاقتور وڊيو پروسيسر آهي، جيڪو هارڊويئر ويڊيو ڊيڪوڊنگ لاء بهترين آهي. تنهن ڪري اهو خيال آيو ته ڪنهن ٻئي هنڌ ڊيش بورڊ سان هڪ برائوزر لانچ ڪيو وڃي، ۽ هڪ تيار ٿيل اسٽريم کي رينڊ ٿيل تصوير سان راسبي ڏانهن منتقل ڪيو وڃي.

ان سان گڏ، هن کي آسان انتظام ڪرڻ گهرجي، ڇاڪاڻ ته هن صورت ۾ سڀ سيٽ اپ هڪ ورچوئل مشين تي ڪيو ويندو، جيڪو تازه ڪاري ۽ بيڪ اپ ڪرڻ آسان هوندو.

جلد ئي نه چيو ويو آهي.

سرور جو حصو

اسان تيار استعمال ڪنداسين Ubuntu لاءِ Cloud تصوير. انسٽاليشن جي ضرورت کان سواء، اهو سڀ ڪجهه شامل آهي جيڪو توهان کي جلدي هڪ مجازي مشين کي ترتيب ڏيڻ جي ضرورت آهي، ۽ Cloud-Init سپورٽ هڪ نيٽ ورڪ کي فوري طور تي سيٽ ڪرڻ ۾ مدد ڪري ٿي، ssh چابيون شامل ڪريو ۽ جلدي ان کي هلائڻ ۾.

اسان هڪ نئين مجازي مشين کي ترتيب ڏيو ۽ سڀ کان پهريان ان تي انسٽال ڪريو Xorg, نالو и فلوڪس باڪس:

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 ماڊل سان x11 گراب، ايڪس مان تصويرون پڪڙڻ لاءِ ۽ 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/، جواب ۾ توهان ڏسندا ته توهان جي ڊيسڪ ٽاپ جو مسلسل اپڊيٽ ٿيل اسڪرين شاٽ. زبردست! - اها ئي ضرورت هئي.

ڪلائنٽ جو حصو

هتي هر شي اڃا به آسان آهي، جيئن مون اڳ ۾ چيو آهي، اسان استعمال ڪنداسين Raspberry Pi Model B+.

سڀ کان پهريان، اچو ته ان کي انسٽال ڪريو آرڪ لينڪس اي آر ايم، ان لاءِ اسان پيروي ڪندا آهيون هدايتون سرڪاري ويب سائيٽ تي.

اسان کي پنهنجي وڊيو چپ لاءِ وڌيڪ ميموري مختص ڪرڻي پوندي، ان لاءِ اسان ان ۾ ترميم ڪنداسين /boot/config.txt

gpu_mem=128

اچو ته اسان جي نئين سسٽم کي بوٽ ڪريو ۽، pacman ڪيئرنگ کي شروع ڪرڻ لاء ياد رکو، انسٽال ڪريو او ايم ايڪس پليئر:

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

تبصرو شامل ڪريو