Siz kameraning bitta portini ochasiz, unga pleyer yo'naltirasiz va internet muammosi hal bo'ldi deb hisoblaysiz. Keyin telefon uni ijro eta olmaydi, brauzer ham ijro eta olmaydi, kamera boshqaruv sahifasi esa ommaviy chekkadan faqat bitta xato terilgan yo'l narida turadi. Siz tanlagan yetkazib berish modeli, RTSP yoki HLS, biron-bir tarmoq devori qoidasi yozilishidan oldin buning katta qismini hal qiladi. VPN faqat xususiy qismni taqdim etadi.

VPN manba yo'lini tuzatadi, tomoshabin yo'lini emas

Tunnel orqali kameraning LAN tarmog'iga ulangan VPS kameraga uning xususiy manzili bo'yicha yetib borishi mumkin, va bu haqiqatan foydali. Bu kamera o'zining kiruvchi portiga muhtoj emasligini va uy routeri yopiq qolishini bildiradi. Lekin bu sizga tomoshabin qaysi tilda gaplashishini aytmaydi. Ish stoli pleyeri, brauzer, telefon va aqlli televizor turli protokollarni qo'llab-quvvatlaydi, har birining TLS, autentifikatsiya va kodeklarga oid o'z kutilmalari bor.

Mana tashlab yuborishga arziydigan taxmin: nashr qilish manbani yetib boriladigan qilish demakdir. Nashr qilish aslida belgilangan auditoriyaga mediani iste'mol qilishning qo'llab-quvvatlanadigan usulini berish demakdir. Nashr etilgan oqimda format, auditoriya va hisob ma'lumotlari bor; yetib boriladigan kamerada ularning hech biri yo'q. Yetib borishlik — tunnel hal qiladigan qism, tomoshabinning kirish nuqtasi esa siz hali loyihalashingiz kerak bo'lgan qismdir.

RTSP — muzokara, bitta port emas

RTSP sessiya boshqaruvini olib yuradi: mijoz tavsif so'raydi, bir yoki bir nechta media yo'lini o'rnatadi, so'ng ijro etadi. Medianing o'zini tashish shu o'rnatish davomida kelishiladi, shuning uchun protokolni bitta yo'naltirilgan TCP port bilan yaxshi tavsiflab bo'lmaydi. Aynan shu muzokara odamlar tarmoq devori qoidalarini solishtirganda o'tkazib yuboradigan qismdir.

Oxirgi nuqtalarga qarab RTP alohida UDP portlariga kelishi yoki boshqaruv ulanishiga to'qilishi mumkin. Faqat 554 ni uzatadigan va qolgani ishlaydi deb hisoblaydigan rele odatda ulanadigan, bitta yo'l haqida xabar beradigan, keyin hech narsa ko'rsatmaydigan sessiya hosil qiladi. Qoidalar yozishdan oldin kamerangiz aslida qaysi transport bo'yicha kelishayotganini tekshiring. Xususiy tomonda bir marta yozib olish bu savolga bir daqiqada javob beradi, taxmin qilish esa bir oqshomga tushadi.

Mos pleyerlarga ega kichik, ma'lum auditoriya uchun ataylab sozlangan RTSP rele to'g'ri javob bo'lishi mumkin. U qaysi manbadan tortishi mumkinligini cheklang va releda autentifikatsiyani talab qiling. Sinab ko'rgan pleyerlaringizni yozib qo'ying, chunki VLC da ishlaydigan RTSP oqimi brauzerda baribir ishlamasligi mumkin.

HLS — ijro ro'yxati va resurslar

HLS tomoshabini ijro ro'yxatini oladi, so'ng shu ro'yxat nomlagan media segmentlarini oladi. HLS spetsifikatsiyasi ana shu resurs modelini belgilaydi, muhim operatsion tafsilot esa ijro ro'yxatlari boshqa URL larga havola qilishidir. Nisbiy havolalar ro'yxatning joylashuviga qarab hal qilinadi, shuning uchun yo'llarni qayta yozadigan proksi ularni izchil qayta yozishi kerak.

Agar kamera allaqachon foydali HLS taqdim etsa, ommaviy frontend o'sha ro'yxat va segment so'rovlarini tunnel orqali uzatishi mumkin. Ilova yaratadigan kalitlar, qayta yo'naltirishlar va URL larga e'tibor bering. Xususiy hostga ishora qiluvchi har qanday mutlaq URL, LAN tashqarisidagi tomoshabin unga ergashgan lahzada buziladi. Nisbiy yo'llar proksi qayta yozishidan omon qoladigan yo'llardir, shuning uchun yaratilgan chiqishni nazorat qiladigan har qanday joyda ularga ustuvorlik bering.

Agar kamera faqat RTSP gapirsa, nima bo'lsa ham manbani tomoshabin formatiga aylantirish kerak. Qayta qadoqlash va transkodlash turli ishlar: qayta qadoqlash kodekni saqlaydi, transkodlash esa moslik uchun uni qayta kodlaydi, faqat ikkinchisi jiddiy CPU sarflaydi. Ikkalasi ham faqat yo'lda VPN borligi uchun zarur bo'lib qolmaydi.

Yuklash liniyasini tarqatish qayerda sodir bo'lishiga qarab rejalashtiring. Ommaviy media xizmatini oziqlantiruvchi bitta xususiy qabul, o'z oqimini tunnel orqali tortadigan har bir tomoshabindan butunlay boshqacha ishlaydi. Ikkinchi naqsh odatda to'yingan uy ulanishi va tasodifan ishlamayotgandek ko'rinadigan kamera bilan tugaydi.

Autentifikatsiyani siz nashr qiladigan chekkaga qo'ying

TLS, tomoshabinlarni autentifikatsiya qilish va kirishni jurnalga yozish ommaviy kirish nuqtasiga tegishli, kameraga emas. Bu kameraning hisob ma'lumotlarini oqimning hisob ma'lumotlaridan ajratib turadi. Shuningdek, auditoriya a'zosi ketganda kirishni bekor qilish uchun bitta joy beradi. O'sha nazoratlarni kameraga qo'yish esa, aksincha, har bir auditoriya o'zgarishi hech qachon ommaviy yetib boriladigan bo'lmasligi kerak bo'lgan qurilmada ma'muriy o'zgarishga aylanishini bildiradi.

VPN va kameraning ma'muriy ruxsatlarini nashr yo'lidan alohida saqlang. Oqim tortish uchun kameraning veb interfeysiga yetib bora oladigan VPS o'sha interfeysni ochib beruvchi mashina ham bo'lmasligi kerak. Auditoriya kamera manzilini hech qachon bilmasligi kerak.

So'ng zanjir ishlaydi deb hisoblash o'rniga haqiqatan qurgan ikki uchingizni tekshiring:

$ 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

Xususiy manbani muvaffaqiyatli tekshirish va ommaviy chekkada ijro ro'yxatini muvaffaqiyatli olish loyihalashning turli yarmini isbotlaydi. Ularni alohida sinab ko'ring. Auditoriyangiz ishlatadigan bir xil turdagi mijozdan ijro etish butun zanjirni qamrab oladigan yagona sinovdir.

Oxirida har bir halqada maqsad bo'lgan zanjirga ega bo'lasiz: xususiy manba, cheklangan qabul, tanlangan qadoqlash, ruxsat berilgan tomoshabin kirishi. Bu halqalarning hech biri ixtiyoriy emas va hech biri port ochish orqali yaratilmaydi.

O'xshash maqolalar