Сіз бетті ноутбукта тексересіз, ойнатқыш іске қосылады және билет жабылады. Арғы жақтағы көрермен сол бетті ашады да, ешқашан бітпейтін айналма индикатор алады. Әдеттегі түсініктеме 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-і.

Орналасу әдейі таңдалған болған соң, оны бір жолмен жазып қойыңыз: медианы кім әкеледі, қандай жолмен және көрерменге нені сұрауға рұқсат. Сол сөйлем ағын шын мәнінде кімге арналғаны туралы болашақ даулардың көбін шешеді.

Қатысты мақалалар