Жеке HLS агымыңыз көрүүчүлөрүңүзгө эмес, өзүңүзгө жүктөлөт
Барак жүктөлөт, анткени сервериңиз камерага жетет; браузер баары бир ойнотуу тизмесин алат. Сурамды ким жөнөтөрүн чечип, анан тизмекти текшериңиз.
Сиз баракты ноутбукта текшересиз, ойноткуч ишке кирет жана билет жабылат. Алдыңкы тараптагы көрүүчү ошол эле баракты ачат жана эч качан бүтпөгөн айланма белгини алат. Адаттагы түшүндүрмө VPN серверде турат, ошондуктан ойнотуу иштеши керек дегенге келет — бирок ойнотуу тизмесин сураган компонент — браузер, жана анын өзүнүн тармак жолу бар. Жеке жетүүсү бар серверге киргизилген барак ошол жетүүнү аны жүктөгөн адамга карызга бербейт.
Бул HLS булагын, мисалы http://10.5.5.9:8080/live/stream.m3u8, ойноткон учурдагы ASP.NET барак жөнүндө; бул — көрсөтмөлүү жеке дарек. Эки жайгашуу иштейт; алардын бири, балким, сиз курган нерсе эмес.
Уламыш: жүктөлгөн барак медиа жолун далилдейт
Ошол барактын HTML сиздин веб-сервериңизден, веб-сервериңиздин кандай маршруту болсо, ошону менен келет. Ойнотуу тизмеси жана сегменттер медиа булагынан, сурам жөнөткөн компонентте кандай маршрут болсо, ошону менен келет. Ойноткуч көрүүчүнүн браузеринде иштегенде, булар эки башка кардар, эки башка булак дареги жана көбүнчө эки башка бузулуу домени. Биринчисинин ийгиликтүү болгонун көрүү экинчиси жөнүндө эч нерсе айтпайт.
Сиздин текшерүү чындыгында далилдегени көрүнгөндөн алда канча тар: сиздин машинаңыз коомдук баракка да, жеке медиа хостко да бир убакта жетет. Көрүүчүнүн машинасы эксперименттин бөлүгү болгон эмес.
Ойнотуу тизмеси мындан ары эмнени талап кылат
RFC 8216 сегменттерди тизмелеген медиа ойнотуу тизмелерин башка тизмелерди тизмелеген башкы тизмелерден ажыратат жана салыштырмалуу URIлерди аларды камтыган тизменин URIсине карата чечет. Адамдар өткөрүп жиберген бөлүк — ушул эле эреже. Бир .m3u8 файлын ийгиликтүү алып келүү ойнотуу текшерүүсү эмес, анткени алынган файл индекс, медиа эмес.
Тизмекти ойноткуч кылгандай ээрчи: тандалган тизмени ач, анан ал атаган ресурстарды сура, анан каалаган кайра багыттоону ээрчи. Жеткиликтүү веб-сервер аркылуу берилген тизме да көрүүчүнү жеткиликсиз жеке дарекке жибере алат. Ошондой эле, салыштырмалуу тизмени башка URLге жылдыруу анын жазуулары чечилген негизди өзгөртөт, ошондуктан биринчи көрүнгөн URLди кайра жазып, ошол жерде токтоо адатта жарактуу көрүнгөн, бирок ойнотулбаган тизме жаратат.
Түз көрүү: көрүүчүгө жол керек
Көрүүчүлөр медиа хостко түз жетүүгө тийиш болсо, алардын түзмөктөрүнө бекитилген VPN же башка жеке жол, сиз чындыгында колдонгон аттарды чечкен DNS, ошол багыттарга жетүү уруксаты жана медиа кызматы талап кылган каалаган аутентификация керек. Ар бирин серверде эмес, көрүүчүнүн түзмөгүндө текшериңиз. VPN профили орнотулган, бирок туташтырылбаган телефондогу браузер — көп кездешүүчү жана толук кайталануучу бузулуу.
Бул жайгашуу булакты жеке кармайт жана жетүү талабын аудиторияга жүктөйт. Бул техникалык гана эмес, саясий чечим да, ошондуктан анын айланасында долбоорлоодон мурун ар бир пландалган көрүүчүнүн ошол жолду кармоого уруксаты бар экенин ырастаңыз.
Сервер тарабынан жеткирүү: бир көзөмөлдөнгөн кирүү чекити
Альтернатива — булакты өзүнүн жеке жолу менен алып келген жана көрүүчүгө караган ресурстарды гана кайра жарыялаган ыйгарым укуктуу медиа фронтенд. Ойнотуу тизмесин, сегменттерди жана каалаган ачкыч ресурстарын ошол бир кирүү чекити менен шайкеш кармаңыз, болбосо ойноткуч кайра жазылган тизмени фронтенд аркылуу, ал эми сегменттерди көрүүчү жете албаган даректен түз алып келет.
Ошол фронтендде булакты жана уруксат берилген жолдорду чектеңиз. Колдонуучу берген эркин URL пайдалуу проксини ички тармагыңыздын чексиз алып келүүчүсүнө айландырат, бул ойнотулбаган агымдан алда канча оор маселе. Сапты кийин текшерүүнүн ордуна булакты жана жол префиксин уруксат берилгендер тизмесине киргизиңиз.
Учурдагы HLS булагы үчүн адегенде көзөмөлдөнгөн өткөрүп берүү жетиштүүбү текшериңиз; ортодо VPN болушу транскоддоо керек дегенди билдирбейт. Анан чыныгы браузер жана кодек айкалышын текшериңиз, анткени жеткиликтүү жооп жана колдоого алынган формат — эки өзүнчө шарт. Булактын TLS, аутентификация жана браузер коопсуздук талаптарын бузбай сактаңыз — киргизилген ойноткуч алардан бошотулбайт.
URLди эмес, тизмекти текшериңиз
Текшерүүлөрдү ар бир сурамды чындап жөнөтө турган компоненттен жүргүзүңүз жана ар бир кадамды өзүнүн жыйынтыгы катары караңыз:
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.tsАнан муну көрүүчүнүн өз браузеринде көздөлгөн агым менен кайталаңыз, үстөлүңүздөгү сыноо үлгүсү менен эмес. Барактын жүктөлүшү, тизменин жүктөлүшү, сегменттин алынышы жана авторизациянын ийгиликсиздиги — төрт башка жыйынтык, жана оңдолду деп айтпасак мурун төртөөнү тең көргүңүз келет. Эски мисал бир агымды ушундай ойноткону үчүн эскирген браузер кеңейтүүсүн орнотпоңуз; жетишпеген бөлүк адатта көрүүчүнүн жолу же кол коюлбаган сегмент URLи.
Жайгашуу атайын тандалгандан кийин, аны бир сапка жазып коюңуз: медианы ким алып келет, кайсы жол менен жана көрүүчүгө эмнени суроого уруксат. Ошол сүйлөм агым чындыгында кимге арналганы тууралуу келечектеги талаштардын көбүн чечет.