Rydych yn agor un porth camera, yn anelu chwaraewr ato ac yn tybio bod y broblem rhyngrwyd wedi'i datrys. Yna ni all ffôn ei chwarae, ni all porwr ei chwarae, ac mae tudalen weinyddu'r camera ond un llwybr wedi'i deipio'n anghywir o'r ymyl gyhoeddus. Y model cyflenwi a ddewiswyd gennych, RTSP neu HLS, sy'n penderfynu'r rhan fwyaf o hynny cyn i unrhyw reol wal dân gael ei hysgrifennu. Dim ond y goes breifat y mae'r VPN yn ei darparu.

Mae'r VPN yn trwsio llwybr y ffynhonnell, nid llwybr y gwylwyr

Gall VPS sy'n gysylltiedig â LAN y camera trwy dwnnel gyrraedd y camera yn ei chyfeiriad preifat, ac mae hynny'n wirioneddol ddefnyddiol. Mae'n golygu nad oes angen porth mewnddod ar y camera ac mae'r llwybrydd cartref yn aros ar gau. Nid yw'n dweud wrthych pa iaith y bydd gwylwyr yn ei siarad. Mae chwaraewr bwrdd gwaith, porwr, ffôn a theledu clyfar yn cefnogi protocolau gwahanol, ac mae gan bob un ei ddisgwyliadau ei hun ynglŷn â TLS, dilysu a chodauc.

Dyma'r tybiaeth sy'n werth ei gadael: mae cyhoeddi yn golygu gwneud y ffynhonnell yn gyrraeddadwy. Mewn gwirionedd mae cyhoeddi yn golygu rhoi ffordd gefnogol i gynulleidfa ddiffiniedig ddefnyddio'r cyfrwng. Mae gan ffrwd a gyhoeddwyd fformat, cynulleidfa a chredynau; nid oes gan gamera gyrraeddadwy unrhyw un o'r rheini. Cyraeddadwyedd yw'r rhan y mae'r twnnel yn ei datrys, a phwynt mynediad y gwylwyr yw'r rhan y mae'n rhaid i chi ei chynllunio o hyd.

Mae RTSP yn drafodaeth, nid yn un porth

Mae RTSP yn cario rheolaeth sesiwn: mae cleient yn gofyn am ddisgrifiad, yn gosod un neu fwy o draciau cyfrwng, ac yna'n chwarae. Mae cludiant y cyfrwng ei hun yn cael ei drafod yn ystod y gosodiad hwnnw, a dyna pam nad yw'r protocol yn cael ei ddisgrifio'n dda gan un porth TCP a anfonwyd ymlaen. Y drafodaeth honno yw'r rhan y mae pobl yn ei cholli wrth gymharu rheolau wal dân.

Yn dibynnu ar y pwyntiau terfyn, gall RTP gyrraedd ar borthladdoedd UDP ar wahân neu gael ei blethu ar y cysylltiad rheoli. Mae relé sy'n anfon 554 yn unig ymlaen ac yn tybio y bydd y gweddill yn gweithio fel arfer yn cynhyrchu sesiwn sy'n cysylltu, yn adrodd am drac ac yna'n dangos dim. Gwiriwch y cludiant y mae eich camera yn ei drafod mewn gwirionedd cyn ysgrifennu rheolau ar ei gyfer. Mae cipio ar yr ochr breifat yn ateb hynny mewn munud, ac mae dyfalu yn costio noson.

Ar gyfer cynulleidfa fach, hysbys gyda chwaraewyr cydnaws, gall relé RTSP wedi'i ffurfweddu'n fwriadol fod yr ateb cywir. Cyfyngwch o ba ffynhonnell y caiff dynnu a mynnwch ddilysu yn y relé. Nodwch y chwaraewyr a brofwyd gennych, oherwydd gall ffrwd RTSP sy'n gweithio yn VLC fethu o hyd mewn porwr.

Mae HLS yn rhestr chwarae ynghyd ag adnoddau

Mae gwylwyr HLS yn nôl rhestr chwarae, yna'n nôl y segmentau cyfrwng a enwir gan y rhestr honno. Manyleb HLS sy'n diffinio'r model adnoddau hwnnw, a'r manylyn gweithredol pwysig yw bod rhestrau chwarae yn cyfeirio at URLau eraill. Mae cyfeiriadau cymharol yn cael eu datrys yn erbyn lleoliad y rhestr, felly rhaid i brocsi sy'n ailysgrifennu llwybrau eu hailysgrifennu'n gyson.

Os yw'r camera eisoes yn gwasanaethu HLS defnyddiadwy, gall frontend cyhoeddus anfon y ceisiadau rhestr a segment hynny trwy'r twnnel. Gwyliwch am allweddi, ailgyfeiriadau a URLau a gynhyrchir gan yr ap. Mae unrhyw URL absoliwt sy'n pwyntio at westiwr preifat yn torri'r eiliad y bydd gwylwyr y tu allan i'r LAN yn ei ddilyn. Llwybrau cymharol yw'r rheini sy'n goroesi ailysgrifiad y procsi, felly dewiswch hwy ym mhob man lle rydych yn rheoli'r allbwn a gynhyrchir.

Os mai dim ond RTSP y mae'r camera yn ei siarad, rhaid i rywbeth drosi'r ffynhonnell i fformat y gwylwyr. Mae aila-becynu a thrawsgodio yn dasgau gwahanol: mae aila-becynu yn cadw'r codauc, tra bod trawsgodio yn ei ailsgodio er cydnawsedd, a dim ond yr ail sy'n costio CPU difrifol. Nid yw'r naill na'r llall yn dod yn angenrheidiol dim ond oherwydd bod VPN ar y llwybr.

Cynlluniwch y cyswllt i fyny yn ôl lle mae'r dosbarthiad yn digwydd. Mae un mewnbwn preifat sy'n bwydo gwasanaeth cyfrwng cyhoeddus yn ymddwyn yn hollol wahanol i bob gwylwyr sy'n tynnu ei ffrwd ei hun trwy'r twnnel. Mae'r ail batrwm fel arfer yn gorffen mewn cysylltiad cartref dirlawnder a chamera sy'n ymddangos yn methu'n hap.

Rhowch ddilysu ar yr ymyl a gyhoeddwch

Mae TLS, dilysu gwylwyr a chofnodi mynediad yn perthyn i'r pwynt mynediad cyhoeddus, nid i'r camera. Mae hyn yn cadw credynau'r camera ar wahân i gredynau'r ffrwd. Mae hefyd yn rhoi un man i chi i ddirymu mynediad pan fydd aelod o'r gynulleidfa yn gadael. Mae rhoi'r rheolaethau hynny ar y camera yn lle hynny yn golygu bod pob newid cynulleidfa yn dod yn newid gweinyddol ar ddyfais na ddylai fod yn gyrraeddadwy'n gyhoeddus byth.

Cadwch y VPN a chaniatadau gweinyddol y camera ar wahân i lwybr cyhoeddi. Ni ddylai VPS sy'n gallu cyrraedd rhyngwyneb gwe'r camera i dynnu ffrwd fod hefyd yn y peiriant sy'n datgelu'r rhyngwyneb hwnnw. Ni ddylai'r gynulleidfa ddysgu cyfeiriad y camera byth.

Yna gwiriwch y ddau ben a adeiladwyd gennych mewn gwirionedd yn hytrach na thybio bod y gadwyn yn gweithio:

$ 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

Mae archwiliad llwyddiannus o'r ffynhonnell breifat a chaffael llwyddiannus o'r rhestr chwarae ar yr ymyl gyhoeddus yn profi gwahanol haneri'r cynllun. Profwch hwy ar wahân. Mae chwarae o'r un math o gleient ag a ddefnyddir gan eich cynulleidfa yw'r unig brawf sy'n cwmpasu'r gadwyn gyfan.

Yr hyn a gewch yn y diwedd yw cadwyn â phwrpas ym mhob dolen: ffynhonnell breifat, mewnbwn cyfyngedig, pecynu a ddewiswyd, mynediad awdurdodedig i wylwyr. Nid oes yr un o'r dolenni hynny yn ddewisol, ac nid oes yr un yn cael ei chreu trwy agor porth.

Erthyglau cysylltiedig