Magbubukas ka ng isang port ng camera, ituturo ang isang player dito, at ipagpapalagay na ayos na ang problema sa internet. Pagkatapos ay hindi ito ma-play ng isang telepono, hindi ito ma-play ng isang browser, at ang administration page ng camera ay isang maling na-type na landas lamang ang layo mula sa pampublikong gilid. Ang modelong paghahatid na pinili mo, RTSP o HLS, ang nagpapasya sa halos lahat ng iyon bago pa man isulat ang anumang tuntunin ng firewall. Ang VPN ay nagbibigay lamang ng pribadong bahagi.

Inaayos ng VPN ang landas ng pinagmulan, hindi ang landas ng manonood

Ang VPS na nakakabit sa LAN ng camera sa pamamagitan ng tunnel ay maaaring makarating sa camera sa pribadong address nito, at talagang kapaki-pakinabang iyon. Ibig sabihin, hindi kailangan ng camera ng sariling inbound port at nananatiling sarado ang router sa bahay. Hindi nito sinasabi kung anong wika ang sasalitain ng isang manonood. Ang desktop player, browser, telepono at smart TV ay sumusuporta sa magkakaibang protocol, at bawat isa ay may sariling inaasahan tungkol sa TLS, authentication at codec.

Narito ang palagay na dapat itapon: ang paglalathala ay nangangahulugang gawing maabot ang pinagmulan. Ang paglalathala ay talagang nangangahulugang bigyan ang tinukoy na audience ng suportadong paraan upang ubusin ang media. Ang nailathalang stream ay may format, audience at credential; ang maabot na camera ay wala ni isa sa mga iyon. Ang pagiging maabot ay ang bahaging nilulutas ng tunnel, at ang pasukan ng manonood ang bahaging kailangan mo pang idisenyo.

Ang RTSP ay isang negosasyon, hindi isang port

Nagdadala ang RTSP ng session control: humihingi ang kliyente ng paglalarawan, nagse-set up ng isa o higit pang media track, at pagkatapos ay nagpapatugtog. Ang transportasyon ng media mismo ay pinag-uusapan sa panahon ng setup na iyon, kaya hindi ito maayos na nailalarawan ng isang forwarded TCP port. Ang negosasyong iyon ang bahaging hindi napapansin ng mga tao kapag inihahambing ang mga tuntunin ng firewall.

Depende sa mga endpoint, maaaring dumating ang RTP sa magkakahiwalay na UDP port o ma-interleave sa control connection. Ang relay na nagpapasa lamang ng 554 at ipinagpapalagay na gagana ang iba ay kadalasang gumagawa ng session na kumokonekta, nag-uulat ng isang track at pagkatapos ay walang ipinapakita. Suriin ang transportasyong aktuwal na pinag-uusapan ng iyong camera bago magsulat ng mga tuntunin para dito. Ang isang capture sa pribadong panig ay sumasagot nito sa isang minuto, at ang paghula ay nagkakahalaga ng isang gabi.

Para sa maliit, kilalang audience na may tugmang mga player, ang sadyang naka-configure na RTSP relay ay maaaring ang tamang sagot. Limitahan kung saang pinagmulan ito maaaring humatak at hilingin ang authentication sa relay. Isulat ang mga player na sinubukan mo, dahil ang RTSP stream na gumagana sa VLC ay maaaring mabigo pa rin sa isang browser.

Ang HLS ay isang playlist at mga resource

Ang manonood ng HLS ay kumukuha ng playlist, pagkatapos ay kumukuha ng mga media segment na pinangalanan ng playlist na iyon. Ang espesipikasyon ng HLS ang tumutukoy sa modelong iyon ng resource, at ang mahalagang detalye sa operasyon ay ang mga playlist ay tumutukoy sa iba pang URL. Ang mga relatibong sanggunian ay nireresolba laban sa lokasyon ng playlist, kaya ang proxy na nagre-rewrite ng mga landas ay dapat na patuloy na mag-rewrite sa mga ito.

Kung naghahain na ang camera ng magagamit na HLS, maaaring ipasa ng pampublikong frontend ang mga kahilingan sa playlist at segment sa pamamagitan ng tunnel. Pagmasdan ang mga key, redirect at URL na nililikha ng application. Anumang absolute URL na tumuturo sa pribadong host ay masisira sa sandaling sundan ito ng manonood sa labas ng LAN. Ang mga relatibong landas ang nakakaligtas sa rewrite ng proxy, kaya piliin ang mga ito saanman kontrolado mo ang nilikhang output.

Kung RTSP lamang ang sinasalita ng camera, may isang bagay na dapat mag-convert ng pinagmulan sa format ng manonood. Ang repackaging at transcoding ay magkaibang gawain: pinapanatili ng repackaging ang codec, samantalang muling nag-e-encode ang transcoding para sa pagiging tugma, at ang pangalawa lamang ang kumakain ng seryosong CPU. Ni isa sa kanila ay hindi nagiging kailangan dahil lamang may VPN sa landas.

Planuhin ang uplink batay sa kung saan nangyayari ang distribusyon. Ang isang pribadong ingest na nagpapakain sa pampublikong serbisyo ng media ay ibang-iba ang pag-uugali kaysa sa bawat manonood na humahatak ng sariling stream sa tunnel. Ang pangalawang pattern ay kadalasang nauuwi sa puspos na koneksyon sa bahay at camera na tila random na nabigo.

Ilagay ang authentication sa gilid na inilalathala mo

Ang TLS, authentication ng manonood at pag-log ng access ay nabibilang sa pampublikong pasukan, hindi sa camera. Pinapanatili nitong hiwalay ang credential ng camera sa credential ng stream. Binibigyan ka rin nito ng isang lugar upang bawiin ang access kapag umaalis ang isang miyembro ng audience. Ang paglalagay ng mga kontrol na iyon sa camera ay nangangahulugang sa halip, ang bawat pagbabago ng audience ay nagiging administratibong pagbabago sa isang device na hindi dapat maging maabot ng publiko.

Panatilihing hiwalay ang VPN at ang mga administratibong pahintulot ng camera mula sa landas ng paglalathala. Ang VPS na makakaabot sa web interface ng camera upang humatak ng stream ay hindi rin dapat ang makinang naglalantad sa interface na iyon. Hindi dapat malaman ng audience ang address ng camera.

Pagkatapos ay i-verify ang dalawang dulo na aktuwal mong itinayo sa halip na ipagpalagay na gumagana ang chain:

$ 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

Ang matagumpay na pag-probe sa pribadong pinagmulan at matagumpay na pagkuha ng playlist sa pampublikong gilid ay nagpapatunay ng magkaibang kalahati ng disenyo. Subukan ang mga ito nang hiwalay. Ang pag-playback mula sa parehong uri ng client na ginagamit ng iyong audience ang tanging pagsubok na sumasakop sa buong chain.

Ang napupunta sa iyo ay isang chain na may layunin sa bawat kawing: pribadong pinagmulan, limitadong ingest, piniling packaging, awtorisadong pasukan ng manonood. Wala sa mga kawing na iyon ang opsyonal, at wala sa kanila ang nalilikha sa pamamagitan ng pagbukas ng port.

Kaugnay na mga artikulo