E Kamera-Stream publizéieren: RTSP an HLS sinn net deeselwechte Rand
RTSP-Sessiounssteierung an HLS-Liwwerung brauchen ënnerschiddlech ëffentlech Ränner, och wann allebéid déiselwecht Kamera iwwer eng VPN erreechen. Wielt d'éischt de Kuckenden-Modell.
Dir oppent ee Port vun der Kamera, riicht e Spiller drop a gitt dovun aus, datt d'Internetprobleem geléist ass. Duerno kann en Telefon se net spillen, e Browser kann se net spillen, an d'Administratiounssäit vun der Kamera ass just ee falsch getippte Wee vum ëffentleche Rand ewech. D'Liwwermodell, dat Dir gewielt hutt, RTSP oder HLS, entscheet de gréissten Deel dovun, ier iergendeng Firewallregel geschriwwe gëtt. D'VPN liwwert just de private Been.
D'VPN reparéiert de Quellwee, net de Wee vum Kuckenden
E VPS, deen duerch en Tunnel un d'LAN vun der Kamera ugeschloss ass, kann d'Kamera op hirer privater Adress erreechen, an dat ass wierklech nëtzlech. Et bedeit, datt d'Kamera keen eegene Port fir erakommen brauch an datt den Heemrouter zou bleift. Et seet Iech awer net, wéi eng Sprooch e Kuckenden schwätze wäert. En Desktop-Spiller, e Browser, en Telefon an en intelligente Fernseher ënnerstëtzen ënnerschiddlech Protokoller, a jiddwereen huet seng eege Erwaardungen u TLS, Authentifikatioun a Codecs.
Hei ass d'Anhuel, déi et wäert ass opzeginn: publizéieren heescht angeblech, d'Quell erreechbar ze maachen. Publizéieren heescht tatsächlech, engem definéierte Publikum en ënnerstëtzte Wee ze ginn, de Medium ze konsuméieren. En publizéierte Stream huet e Format, e Publikum an eng Umeldung; eng erreechbar Kamera huet näischt dovun. Erreechbarkeet ass den Deel, deen den Tunnel léist, an den Entréespunkt vum Kuckenden ass den Deel, deen Dir nach misst designen.
RTSP ass eng Verhandlung, net een eenzegen Port
RTSP dréit d'Sessiounssteierung: e Client freet eng Beschreiwung un, setzt een oder méi Medientrassen op a spillt dann of. Den Transport vun de Medien selwer gëtt während där Opstellung ausgehandelt, dofir gëtt de Protokoll net gutt duerch een eenzegen ëmgeleet TCP-Port beschriwwen. Déi Verhandlung ass den Deel, deen d'Leit iwwersinn, wann se Firewallregele vergläichen.
Ofhängeg vun den Endpunkte kann RTP op getrennten UDP-Porte ukommen oder an d'Steierungsverbindung ageflecht ginn. E Relais, deen nëmmen 554 weiderleet an unhëlt, datt de Rescht funktionéiere wäert, produzéiert meeschtens eng Sessioun, déi sech verbënnt, eng Trass mellt an dann näischt weist. Kontrolléiert den Transport, iwwer deen Är Kamera tatsächlech verhandelt, ier Dir Regele fir hien schreift. Eng Opnam op der privater Säit beäntwert dat an enger Minutt, an d'Roden kascht en Owend.
Fir e klengt, bekannt Publikum mat kompatibele Spiller kann en absichtlech konfiguréierte RTSP-Relais déi richteg Äntwert sinn. Begrenzt, aus wéi enger Quell en zéie kann, a verlaangt Authentifikatioun um Relais. Schreift d'Spiller op, déi Dir getest hutt, well en RTSP-Stream, deen am VLC funktionéiert, kann am Browser nach ëmmer feelen.
HLS ass eng Spilllëscht plus Ressourcen
E Kuckende vun HLS hëlt eng Spilllëscht an hëlt duerno d'Mediesegmenter, déi déi Lëscht nennt. D'HLS-Spezifikatioun definéiert dat Ressourcenmodell, an den importante operationellen Detail ass, datt Spilllëschten op aner URL'en referenzéieren. Relativ Referenze ginn relativ zum Standuert vun der Lëscht opgeléist, dofir muss e Proxy, deen Weeër ëmschreift, se konsequent ëmschreiwen.
Wann d'Kamera schonn notzbar HLS liwwert, kann en ëffentleche Frontend déi Spilllëscht- a Segmentufroe duerch den Tunnel schécken. Passt op Schlësselen, Ëmleetungen an URL'en op, déi d'Applikatioun generéiert. All absolut URL, déi op e private Host weist, brécht dee Moment, an deem e Kuckenden ausserhalb vum LAN hir follegt. Relativ Weeër sinn déi, déi eng Ëmschreiwung duerch de Proxy iwwerstoen, dofir gitt hinnen de Virzuch iwwerall, wou Dir déi generéiert Ausgab kontrolléiert.
Wann d'Kamera just RTSP schwätzt, muss eppes d'Quell an d'Format vum Kuckenden ëmsetzen. Ëmpacken an Transkodéieren sinn ënnerschiddlech Aarbechten: Ëmpacken erhält de Codec, während Transkodéieren en aus Kompatibilitéitsgrënn nei kodéiert, an nëmmen déi zweet kascht eescht CPU. Keen vun deenen zwee gëtt nëmmen dofir néideg, well eng VPN um Wee ass.
Plangt d'Verbindung erop no deem, wou d'Verdeelung geschitt. Een eenzegen private Feeden, deen en ëffentleche Medieservice fiddert, verhält sech ganz anescht wéi all Kuckenden, deen säin eegene Stream duerch den Tunnel zitt. Déi zweet Manéier endet meeschtens an enger gesätte Hausverbindung an enger Kamera, déi schéngt zoufälleg auszefalen.
Setzt d'Authentifikatioun op de Rand, deen Dir publizéiert
TLS, d'Authentifikatioun vun de Kuckenden an d'Zougrëffsprotokolléierung gehéieren zum ëffentlechen Entréespunkt, net zu der Kamera. Dat hält d'Umeldungen vun der Kamera getrennt vun den Umeldunge vum Stream. Et gëtt Iech och eng Plaz, fir den Zougrëff z'erënneren, wann e Member vum Publikum fortgeet. Dës Kontrolle op d'Kamera ze setzen heescht amplaz, datt all Publikumsännerung eng administrativ Ännerung op engem Apparat gëtt, dee ni ëffentlech erreechbar sollt sinn.
Halt d'VPN an d'Administratiounsrechter vun der Kamera getrennt vum Publikatiounswee. E VPS, deen d'Webinterface vun der Kamera erreeche kann, fir e Stream ze zéien, sollt net och d'Maschinn sinn, déi dës Interface exponéiert. D'Publikum sollt ni d'Adress vun der Kamera wëssen.
Verifizéiert duerno déi zwou Enden, déi Dir wierklech gebaut hutt, amplaz unzehuelen, datt d'Kette funktionéiert:
$ 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
Eng erfollegräich Diagnos vun der privater Quell an en erfollegräicht Ofruff vun der Spilllëscht um ëffentleche Rand beweise verschidde Halscheide vum Design. Test se getrennt. D'Ofspillen aus dem selwechten Typ Client, deen Är Publikum benotzt, ass déi eenzeg Prüfung, déi déi ganz Kette deckt.
Wat Dir schlussendlech hutt, ass eng Kette mat engem Zweck an all Glidd: privat Quell, begrenzten Entrée, gewielte Verpackung, autoriséierten Entréespunkt vum Kuckenden. Keent vun dëse Glidder ass fakultativ, a keent entsteet duerch d'Opmaache vun engem Port.