آپ کیمرے کا ایک پورٹ کھولتے ہیں، اس کی طرف ایک پلیئر کا رخ کرتے ہیں اور فرض کرتے ہیں کہ انٹرنیٹ کا مسئلہ حل ہو گیا۔ پھر کوئی فون اسے چلا نہیں سکتا، کوئی براؤزر اسے چلا نہیں سکتا، اور کیمرے کا انتظامی صفحہ عوامی کنارے سے صرف ایک غلط ٹائپ شدہ راستے کے فاصلے پر ہوتا ہے۔ آپ نے جو ترسیلی ماڈل چنا، RTSP یا HLS، وہ کوئی فائر وال قاعدہ لکھے جانے سے پہلے اس کا بیشتر حصہ طے کر دیتا ہے۔ VPN صرف نجی حصہ فراہم کرتا ہے۔

VPN ماخذ کا راستہ درست کرتا ہے، دیکھنے والے کا نہیں

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

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

RTSP ایک گفت و شنید ہے، ایک پورٹ نہیں

RTSP سیشن کنٹرول اٹھاتا ہے: کلائنٹ تفصیل طلب کرتا ہے، ایک یا زیادہ میڈیا ٹریک قائم کرتا ہے اور پھر چلاتا ہے۔ خود میڈیا کی ترسیل اسی ترتیب کے دوران طے ہوتی ہے، اسی لیے پروٹوکول کو ایک فارورڈ شدہ TCP پورٹ سے اچھی طرح بیان نہیں کیا جا سکتا۔ یہی گفت و شنید وہ حصہ ہے جو لوگ فائر وال قواعد کا موازنہ کرتے وقت نظر انداز کر دیتے ہیں۔

جنکشن پوائنٹس کے مطابق RTP الگ UDP پورٹس پر آ سکتا ہے یا کنٹرول کنکشن میں پیوست ہو سکتا ہے۔ ایسا ریلے جو صرف 554 آگے بھیجتا ہے اور فرض کرتا ہے کہ باقی کام کرے گا، عموماً ایسا سیشن بناتا ہے جو جڑتا ہے، ایک ٹریک کی اطلاع دیتا ہے اور پھر کچھ نہیں دکھاتا۔ اس کے لیے قواعد لکھنے سے پہلے جانچیں کہ آپ کا کیمرہ واقعی کون سی ترسیل پر اتفاق کرتا ہے۔ نجی طرف کیپچر ایک منٹ میں اس کا جواب دے دیتی ہے، اور اندازہ لگانا ایک شام کا نقصان ہے۔

چھوٹے، معلوم سامعین کے لیے جو موافق پلیئر رکھتے ہوں، جان بوجھ کر ترتیب دیا گیا RTSP ریلے درست جواب ہو سکتا ہے۔ محدود کریں کہ یہ کس ماخذ سے کھینچ سکتا ہے اور ریلے پر توثیق کا تقاضا کریں۔ اپنے آزمائے گئے پلیئر لکھ لیں، کیونکہ VLC میں چلنے والی RTSP اسٹریم براؤزر میں پھر بھی ناکام ہو سکتی ہے۔

HLS ایک پلے لسٹ کے علاوہ وسائل ہے

HLS دیکھنے والا پلے لسٹ حاصل کرتا ہے، پھر وہ میڈیا سیگمنٹس حاصل کرتا ہے جن کے نام وہ پلے لسٹ لیتی ہے۔ HLS تفصیل اسی وسائل کے ماڈل کی تعریف کرتی ہے، اور اہم عملی تفصیل یہ ہے کہ پلے لسٹیں دوسرے URLs کا حوالہ دیتی ہیں۔ نسبتی حوالے پلے لسٹ کے مقام کے حساب سے حل ہوتے ہیں، اس لیے راستے بدلنے والے پراکسی کو انہیں مستقل طور پر بدلنا ہوگا۔

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

اگر کیمرہ صرف RTSP بولتا ہے، تو کسی چیز کو ماخذ کو دیکھنے والے کے فارمیٹ میں بدلنا ہوگا۔ دوبارہ پیک کرنا اور ٹرانس کوڈنگ الگ کام ہیں: دوبارہ پیک کرنا کوڈیک کو برقرار رکھتا ہے، جبکہ ٹرانس کوڈنگ اسے مطابقت کے لیے دوبارہ انکوڈ کرتی ہے، اور صرف دوسرا ہی سنجیدہ CPU خرچ کرتا ہے۔ ان میں سے کوئی بھی صرف اس لیے ضروری نہیں ہو جاتا کہ راستے میں VPN ہے۔

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

توثیق اس کنارے پر رکھیں جسے آپ شائع کرتے ہیں

TLS، دیکھنے والوں کی توثیق اور رسائی کی لاگنگ عوامی داخلہ نقطے سے تعلق رکھتی ہیں، کیمرے سے نہیں۔ یہ کیمرے کی اسناد کو اسٹریم کی اسناد سے الگ رکھتا ہے۔ یہ آپ کو ایک جگہ بھی دیتا ہے جہاں سامعین کا کوئی رکن جانے پر رسائی منسوخ کر سکیں۔ ان کنٹرولز کو کیمرے پر رکھنے کا مطلب اس کے بجائے یہ ہے کہ سامعین کی ہر تبدیلی ایسے آلے پر انتظامی تبدیلی بن جاتی ہے جو کبھی عوامی طور پر قابل رسائی نہیں ہونا چاہیے۔

VPN اور کیمرے کی انتظامی اجازتیں اشاعت کے راستے سے الگ رکھیں۔ ایسا VPS جو اسٹریم کھینچنے کے لیے کیمرے کے ویب انٹرفیس تک پہنچ سکتا ہے، وہی مشین بھی نہیں ہونا چاہیے جو اس انٹرفیس کو بے نقاب کرے۔ سامعین کو کبھی کیمرے کا پتہ نہیں معلوم ہونا چاہیے۔

پھر ان دو سروں کی جانچ کریں جو آپ نے واقعی بنائے، بجائے یہ فرض کرنے کے کہ زنجیر کام کرتی ہے:

$ ffprobe -v error -rtsp_transport tcp rtsp://10.50.0.9:554/stream1
$ curl -sI https://stream.example.net/live/index.m3u8
HTTP/2 200
content-type: application/vnd.apple.mpegurl

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

آخر میں آپ کے پاس ایسی زنجیر ہوتی ہے جس کے ہر حلقے کا ایک مقصد ہے: نجی ماخذ، محدود انجسٹ، منتخب پیکنگ، مجاز دیکھنے والے کا داخلہ۔ ان حلقوں میں سے کوئی بھی اختیاری نہیں اور کوئی بھی پورٹ کھولنے سے پیدا نہیں ہوتا۔

متعلقہ مضامین