Камера агымын жарыялоо: RTSP жана HLS бир чет эмес
RTSP сессиясын башкаруу жана HLS жеткирүү ар кандай коомдук четтерди талап кылат, экөө тең VPN аркылуу бир камерага жетсе да. Адегенде көрүүчү моделиңизди тандаңыз.
Сиз бир камера портун ачасыз, ага плеер багыттайсыз жана интернет маселеси чечилди деп эсептейсиз. Андан кийин телефон аны ойното албайт, браузер аны ойното албайт, ал эми камеранын администрациялоо баракчасы коомдук четинен бир гана туура эмес жазылган жол алыстыкта турат. Тандаган жеткирүү моделиңиз, RTSP же HLS, кандайдыр бир брандмауэр эрежеси жазылганга чейин анын көбүнө чечим кабыл алат. VPN гана жеке бөлүгүн берет.
VPN булак жолун оңдойт, көрүүчүнүн жолун эмес
Туннель аркылуу камеранын жергиликтүү тармагына туташкан VPS камерага анын жеке дареги боюнча жете алат, жана бул чындап пайдалуу. Бул камерага өзүнүн кирүүчү порту керек эмес жана үй маршрутизатору жабык бойдон калат дегенди билдирет. Бул сизге көрүүчү кайсы тилде сүйлөй турганын айтпайт. Иш тактасынын плеери, браузер, телефон жана акылдуу телекөрсөткүч ар кандай протоколдорду колдойт, жана ар биринин TLS, аутентификация жана кодектерге карата өз күтүүлөрү бар.
Мына, четке кагууга татыктуу божомол: жарыялоо булакты жеткиликтүү кылуу дегенди билдирет. Жарыялоо чындыгында белгиленген аудиторияга медианы керектөөнүн колдоого алынган жолун берүүнү билдирет. Жарыяланган агымдын форматы, аудиториясы жана эсептик маалыматтары бар; жеткиликтүү камерада алардын эч бири жок. Жеткиликтүүлүк — туннель чечкен бөлүк, ал эми көрүүчүнүн кирүү чекити — сиз дагы долбоорлошуңуз керек болгон бөлүк.
RTSP — сүйлөшүү, бир порт эмес
RTSP сессияны башкарууну алып жүрөт: кардар сүрөттөмө сурайт, бир же бир нече медиа изин орнотот, анан ойнотоло баштайт. Медианын өзүн ташуу ошол орнотуу учурунда келишилет, ошондуктан протоколду бир багытталган TCP порту менен жакшы сүрөттөө мүмкүн эмес. Бул сүйлөшүү — адамдар брандмауэр эрежелерин салыштырганда көз жаздымда калтырган бөлүк.
Акыркы чекиттерге жараша RTP өзүнчө UDP портторуна келиши мүмкүн же башкаруу байланышына өрүлүшү мүмкүн. Бир гана 554 портун өткөрүп, калганы иштейт деп эсептеген реле адатта туташкан, бир из жөнүндө билдирген, анан эч нерсе көрсөтпөгөн сессияны жаратат. Ага эреже жазганга чейин камераңыз чындыгында кайсы ташууну келишет экенин текшериңиз. Жеке тараптагы жазуу муну бир мүнөттө жооптойт, ал эми божомолдоо бир кечке турат.
Шайкеш плеерлери бар кичинекей, белгилүү аудитория үчүн атайын конфигурацияланган RTSP релеси туура жооп болушу мүмкүн. Анын кайсы булактан тарта аларын чектеңиз жана реледе аутентификация талап кылыңыз. Сынаган плеерлериңизди жазып коюңуз, анткени VLCде иштеген RTSP агымы браузерде баары бир иштебей калышы мүмкүн.
HLS — ойнотуу тизмеси жана ресурстар
HLS көрүүчүсү ойнотуу тизмесин алат, анан ошол тизме атаган медиа сегменттерин алат. HLS спецификациясы ушул ресурс моделирин аныктайт, жана маанилүү операциялык деталь — ойнотуу тизмелеринин башка URLдерге шилтеме жасоосу. Салыштырмалуу шилтемелер тизменин жайгашкан жерине карата чечилет, ошондуктан жолдорду кайра жазган прокси аларды ырааттуу түрдө кайра жазышы керек.
Эгер камера азыр эле колдонууга жарактуу HLS кызмат кылса, коомдук фронтенд бул тизме жана сегмент суроолорун туннель аркылуу өткөрө алат. Колдонмо жараткан ачкычтарга, кайра багыттоолорго жана URLдерге көңүл буруңуз. Жеке хостко көрсөткөн ар кандай абсолюттук URL, жергиликтүү тармактан тышкары көрүүчү ага ээрчиген учурда бузулат. Салыштырмалуу жолдор — прокси кайра жазуусунан аман калган жолдор, ошондуктан жаратылган натыйжаны көзөмөлдөгөн бардык жерде аларга артыкчылык бериңиз.
Эгер камера бир гана RTSP сүйлөсө, бир нерсе булакты көрүүчүнүн форматына айландырышы керек. Кайра таңуу жана транскоддоо — ар кандай жумуштар: кайра таңуу кодекти сактайт, ал эми транскоддоо аны шайкештик үчүн кайра коддойт, жана экинчиси гана олуттуу CPU талап кылат. Экөө тең жолдо VPN бардыгынан гана зарыл боло бербейт.
Жүктөө линиясын таратуу болгон жерге жараша пландаңыз. Коомдук медиа кызматын азыктандырган бир жеке кабыл алуу, өз агымын туннель аркылуу тарткан ар бир көрүүчүдөн таптакыр башкача жүрөт. Экинчи үлгү адатта каныккан үй байланышы жана туш келди иштебей калгандай көрүнгөн камера менен бүтөт.
Аутентификацияны жарыялаган четиңизге коюңуз
TLS, көрүүчүлөрдү аутентификациялоо жана кирүүнү журналдоо коомдук кирүү чекитине таандык, камерага эмес. Бул камеранын эсептик маалыматтарын агымдын эсептик маалыматтарынан өзүнчө кармайт. Бул ошондой эле аудитория мүчөсү кеткенде кирүүнү жокко чыгаруу үчүн бир жерди берет. Бул көзөмөлдөрдү камерага коюу анын ордуна ар бир аудитория өзгөрүүсү эч качан коомдук жеткиликтүү болбошу керек болгон түзмөктөгү административдик өзгөрүүгө айланат.
VPNди жана камеранын административдик укуктарын жарыялоо жолунан өзүнчө кармаңыз. Агым тартуу үчүн камеранын веб-интерфейсине жете алган VPS ошол интерфейсти ачкан машина да болбошу керек. Аудитория камеранын дарегин эч качан билбеши керек.
Анан чынжыр иштейт деп эсептөөнүн ордуна чындыгында курган эки учун текшериңиз:
$ 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
Жеке булакты ийгиликтүү текшерүү жана коомдук четинде ойнотуу тизмесин ийгиликтүү алуу долбоордун ар кандай жарымдарын далилдейт. Аларды өзүнчө сынаңыз. Аудиторияңыз колдонгон клиенттин ушундай эле түрүнөн ойнотуу бүтүндөй чынжырды камтый турган бирден бир сыноо.
Акырында ар бир звеносунда максаты бар чынжырга ээ болосуз: жеке булак, чектелген кабыл алуу, тандалган таңуу, уруксат берилген көрүүчү кирүүсү. Бул звенолордун эч бирин алып салууга болбойт жана эч бири порт ачуу менен пайда болбойт.