نیٹ ورک پر متعدد آلات پر اسکرین کو سٹریم کریں۔

نیٹ ورک پر متعدد آلات پر اسکرین کو سٹریم کریں۔

مجھے دفتر میں کئی اسکرینوں پر مانیٹرنگ کے ساتھ ڈیش بورڈ ڈسپلے کرنے کی ضرورت تھی۔ بہت سے پرانے Raspberry Pi Model B+ اور ایک ہائپر وائزر ہیں جن کے پاس تقریباً لامحدود وسائل ہیں۔

بظاہر Raspberry Pi Model B+ میں اتنی بے ترتیبیت نہیں ہے کہ براؤزر کو مسلسل چلائے اور اس میں بہت سارے گرافکس پیش کر سکیں، جس کی وجہ سے ایسا ہوتا ہے کہ صفحہ جزوی طور پر چھوٹا ہوتا ہے اور اکثر کریش ہو جاتا ہے۔

کافی آسان اور خوبصورت حل تھا، جسے میں آپ کے ساتھ شیئر کرنا چاہتا ہوں۔

جیسا کہ آپ جانتے ہیں، تمام Raspberries میں کافی طاقتور ویڈیو پروسیسر ہوتا ہے، جو کہ ہارڈویئر ویڈیو ڈی کوڈنگ کے لیے بہترین ہے۔ لہذا خیال آیا کہ ڈیش بورڈ کے ساتھ ایک براؤزر کہیں اور لانچ کیا جائے، اور رینڈر شدہ تصویر کے ساتھ ایک ریڈی میڈ اسٹریم کو رسبری میں منتقل کیا جائے۔

اس کے علاوہ، اس کا انتظام آسان ہونا چاہیے، کیونکہ اس معاملے میں تمام کنفیگریشن ایک ورچوئل مشین پر کی جائے گی، جس کو اپ ڈیٹ کرنا اور بیک اپ کرنا آسان ہے۔

جلد از جلد نہیں کہا.

سرور کا حصہ۔

ہم تیار استعمال کرتے ہیں اوبنٹو کے لیے کلاؤڈ امیج. کسی تنصیب کی ضرورت نہیں، اس میں وہ سب کچھ ہوتا ہے جس کی آپ کو ورچوئل مشین کو فوری طور پر تعینات کرنے کی ضرورت ہوتی ہے، اور 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 کے لیے کنفیگریشن بھی استعمال کریں گے۔ عطا کیا us Diego Ongaro، صرف ایک نئی قرارداد کا اضافہ کر رہا ہے۔ 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's اور سے تصاویر لینے کے لیے اسٹریم آئی، جو اسے ہمارے کلائنٹس میں تقسیم کرے گا:

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 -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/ ہم اپنے سرور سے یو آر ایل پاس کر رہے ہیں۔

بس، ہمارے سرور سے ایک تصویر فوری طور پر منسلک اسکرین پر ظاہر ہونا چاہئے. کسی بھی مسائل کی صورت میں، سلسلہ خود بخود دوبارہ شروع ہو جائے گا اور کلائنٹس اس سے دوبارہ جڑ جائیں گے۔

بونس کے طور پر، آپ آفس کے تمام کمپیوٹرز پر اسکرین سیور کے طور پر نتیجے میں آنے والی تصویر کو انسٹال کر سکتے ہیں۔ اس کے لیے آپ کو ضرورت ہوگی۔ یمپیوی и ایکس اسکرین سیور:

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

نیا تبصرہ شامل کریں