Mae eich ffrwd HLS breifat yn llwytho i chi, nid i’ch gwylwyr
Mae’r dudalen yn llwytho oherwydd bod eich gweinydd yn cyrraedd y camera; mae’r porwr yn dal i nôl y rhestr chwarae. Penderfynwch pwy sy’n gwneud y cais, yna profwch y gadwyn.
Rydych chi’n profi’r dudalen ar eich gliniadur, mae’r chwaraewr yn cychwyn, ac mae’r tocyn yn cau. Mae’r gwyliwr ar y pen arall yn agor yr un dudalen ac yn cael troellwr nad yw byth yn setlo. Yr esboniad arferol a gynigir yw bod y VPN ar y gweinydd, felly dylai chwarae weithio — ond y porwr yw’r gydran sy’n gofyn am y rhestr chwarae, ac mae ganddo ei lwybr rhwydwaith ei hun. Nid yw tudalen sydd wedi’i mewnosod ar weinydd â mynediad preifat yn rhoi’r mynediad hwnnw ar fenthyg i bwy bynnag sy’n ei llwytho.
Mae hyn yn ymwneud â thudalen ASP.NET bresennol sy’n chwarae ffynhonnell HLS fel http://10.5.5.9:8080/live/stream.m3u8, sef cyfeiriad preifat darluniadol. Mae dau drefniant yn gweithio; mae un ohonynt, yn ôl pob tebyg, heb fod yr un wnaethoch chi ei adeiladu.
Cambymeriad: y mae tudalen sy’n llwytho yn profi’r llwybr cyfryngau
Mae HTML y dudalen honno’n dod o’ch gweinydd gwe, ar ba bynnag lwybr sydd gan eich gweinydd gwe. Mae’r rhestr chwarae a’r segmentau’n dod o’r ffynhonnell gyfryngau, ar ba bynnag lwybr sydd gan y gydran sy’n gofyn. Pan fo’r chwaraewr yn rhedeg ym mhorwr y gwyliwr, dau gleient gwahanol yw’r rhain, dau gyfeiriad ffynhonnell wahanol ac yn aml dau barth methiant gwahanol. Nid yw gweld y cyntaf yn llwyddo’n dweud dim am yr ail.
Mae’r hyn a brofodd eich prawf mewn gwirionedd yn gulach nag yr oedd yn edrych: gall eich peiriant gyrraedd y dudalen gyhoeddus a’r gwesteiwr cyfryngau preifat ar yr un pryd. Nid oedd peiriant y gwyliwr erioed yn rhan o’r arbrawf.
Beth mae’r rhestr chwarae yn ei ofyn nesaf
Mae RFC 8216 yn gwahanu rhestrau chwarae cyfryngau, sy’n rhestru segmentau, oddi wrth rhestrau chwarae meistr, sy’n rhestru rhestrau chwarae eraill, ac mae’n datrys URI cymharol yn erbyn URI’r rhestr chwarae sy’n eu cynnwys. Y rheol honno yw’r rhan y mae pobl yn ei hepgor. Nid yw cael un ffeil .m3u8 yn llwyddiannus yn brawf chwarae, oherwydd mynegai yw’r ffeil a gawsoch, nid y cyfryngau.
Dilynwch y gadwyn fel y mae’r chwaraewr yn ei wneud: agorwch y rhestr chwarae a ddewiswyd, yna gofynnwch am yr adnoddau y mae’n eu henwi, yna dilynwch unrhyw ailgyfeiriad. Gall rhestr chwarae a weinir trwy weinydd gwe cyrraeddadwy o hyd gyfeirio’r gwyliwr at gyfeiriad preifat anghyraeddadwy. Yn yr un modd, mae symud rhestr chwarae gymharol i URL gwahanol yn newid y sylfaen y datrysir ei chofnodion yn ei herbyn, a dyna pam fod ailysgrifennu’r URL cyntaf gweladwy a stopio yno fel arfer yn cynhyrchu rhestr chwarae sy’n edrych yn ddilys ond na all chwarae.
Gwylio’n uniongyrchol: mae ar y gwyliwr angen y llwybr
Os yw gwylwyr i gyrraedd y gwesteiwr cyfryngau’n uniongyrchol, mae ar eu dyfeisiau angen y VPN cymeradwy neu lwybr preifat arall, DNS sy’n datrys yr enwau a ddefnyddiwyd gennych mewn gwirionedd, caniatâd i gyrraedd y cyrchfannau hynny, a pha bynnag uwthentigeiddiad y mae’r gwasanaeth cyfryngau yn ei ofyn. Gwiriwch bob un ar ddyfais y gwyliwr yn hytrach nag ar y gweinydd. Mae porwr ar ffôn ag iddo broffil VPN wedi’i osod ond heb ei gysylltu yn fethiant cyffredin ac yn gwbl atgynhyrchadwy.
Mae’r trefniant hwn yn cadw’r ffynhonnell yn breifat ac yn gwthio’r gofyniad mynediad ar y gynulleidfa. Mae’n benderfyniad polisi cymaint ag y mae’n un technegol, felly cadarnhewch fod caniatâd gan bob gwyliwr dan sylw i ddal y llwybr hwnnw cyn dylunio o’i amgylch.
Danfon o du’r gweinydd: un pwynt mynediad rheoledig
Y dewis arall yw blaen gyfryngau awdurdodedig sy’n nôl y ffynhonnell dros ei llwybr preifat ac yn ailgyhoeddi dim ond yr adnoddau sy’n wynebu’r gwyliwr. Cadwch y rhestr chwarae, y segmentau ac unrhyw adnoddau allweddol yn gyson â’r un pwynt mynediad hwnnw, neu bydd y chwaraewr yn nôl rhestr chwarae wedi’i hailysgrifennu dros y blaen a’r segmentau’n syth o gyfeiriad na all y gwyliwr gyrraedd.
Cyfyngwch y ffynhonnell a’r llwybrau a ganiateir yn y blaen hwnnw. Mae URL mympwyol a roddir gan ddefnyddiwr yn troi procsï defnyddiol yn nölwr diderfyn o’ch rhwydwaith mewnol, sy’n broblem lawer gwaeth na ffrwd na fydd yn chwarae. Rhestrwch y ffynhonnell a rhagddodiad y llwybr yn rhai a ganiateir yn lle dilysu’r llinyn ar ôl y ffaith.
Ar gyfer ffynhonnell HLS bresennol, gwiriwch yn gyntaf a yw anfon rheoledig yn ddigon; nid yw VPN yn y canol yn golygu bod angen trawsgodio. Yna dilyswch y cyfuniad gwirioneddol o borwr a chodag, oherwydd mae ymateb cyraeddadwy a fformat a gefnogir yn ddau amod ar wahân. Cadwch TLS, uwthentigeiddiad a gofynion diogelwch porwr y ffynhonnell yn gyfan — nid yw chwaraewr mewnosod yn esemptiad oddi wrthynt.
Profwch y gadwyn, nid yr URL
Rhedwch y gwiriadau o’r gydran a fydd mewn gwirionedd yn gwneud pob cais, a thriniwch bob cam fel ei ganlyniad ei hun:
curl -s http://10.5.5.9:8080/live/stream.m3u8
curl -s -o /dev/null -w '%{http_code}\n' http://10.5.5.9:8080/live/segment-000123.tsYna ailadroddwch hynny ym mhorwr y gwyliwr ei hun gyda’r ffrwd a fwriedir, nid gyda phatrwm prawf o’ch desg. Mae llwytho’r dudalen, llwytho’r rhestr chwarae, nôl segment a methiant awdurdodi yn bedair canlyniad gwahanol, ac rydych am weld y pedair cyn ei alw’n gywiredig. Peidiwch â gosod ategyn porwr hen ffasiwn am fod hen enghraifft wedi chwarae un ffrwd felly; y darn coll fel arfer yw llwybr y gwyliwr neu URL y segment heb ei lofnodi.
Unwaith y bydd y trefniant yn fwriadol, ysgrifennwch ef mewn un llinell: pwy sy’n nôl y cyfryngau, dros ba lwybr, a beth y caniateir i’r gwyliwr ei ofyn. Mae’r frawddeg honno’n setlo’r rhan fwyaf o ddadleuon yn y dyfodol ynglŷn â chyw a fwriedir y ffrwd mewn gwirionedd.