WebRTC dhe videov vigilancia: si e mposhtëm vonesën e videos nga kamerat

WebRTC dhe videov vigilancia: si e mposhtëm vonesën e videos nga kamerat

QĂ« nga ditĂ«t e para tĂ« punĂ«s mbi sistemin e monitoring-ut tĂ« videove nĂ« re, jemi pĂ«rballur me njĂ« problem, pa zgjidhjen e tĂ« cilit mund tĂ« heqim dorĂ« nga Ivideon – ky ishte Everest-i ynĂ«, ngjitja nĂ« tĂ« cilin mori shumĂ« energji, por tani, mĂ« nĂ« fund, kemi vendosur pickĂ«n e akullit nĂ« majĂ«n e enigmĂ«s shumĂ«platformatike.

Sistemi i transmetimit të zërit dhe videove përmes Internetit nuk duhet të varet nga pajisjet, klientët Web dhe standardet që ata mbështesin, si dhe duhet të funksionojë korrekte edhe kur ka Network Address Translators dhe firewall-e. Përdoruesi i monitoring-ut të videove në re dëshiron të ketë qasje në shërbimin, edhe nëse përdor kamera analoge, dhe preferon të shikojë transmetimin e videove të drejtpërdrejta në pajisjet më moderne.

ËshtĂ« shumĂ« e rĂ«ndĂ«sishme qĂ« pĂ«rdoruesi dĂ«shiron tĂ« shohĂ« videon me njĂ« vonesĂ« minimale. Praktikisht, mundĂ«sia e vetme pĂ«r tĂ« treguar video me vonesĂ« tĂ« ulĂ«t nĂ« shfletues Ă«shtĂ« tĂ« pĂ«rdorim WebRTC (komunikime nĂ« kohĂ« reale pĂ«r web). WebRTC Ă«shtĂ« njĂ« grup teknologjish pĂ«r transmetimin peer-to-peer tĂ« videos dhe zĂ«rit nĂ« shfletues, fillimisht i dizajnuar pĂ«r transmetimin dhe riprodhimin e fluksit tĂ« videos me vonesĂ« tĂ« ulĂ«t. PĂ«r kĂ«tĂ«, pĂ«rveç tĂ« tjerash, pĂ«rdoret protokolli UDP.

Para se t'ju tregojmë se çfarë ofron motorri i ri për përdoruesin, do t'ju kujtojmë se përse dhe pse mbështesim teknologjitë HLS, dhe për çfarë vendosëm të ecim përpara.

Motori HLS: avantazhet dhe disavantazhet

WebRTC dhe videov vigilancia: si e mposhtëm vonesën e videos nga kamerat
(c)

Teknologjia HLS (HTTP Live Streaming) është zhvilluar nga Apple, prandaj nuk është befasuese që mbështetja e saj u shfaq fillimisht në pajisjet e këtij brendi. Aktualisht, videoklipet në formatin HLS gjithashtu mund të shfaqen nga pothuajse të gjitha kutitë televizive dhe shumë pajisje që funksionojnë me sistemin operativ Android.

Motori HLS përdor për transmetimin e të dhënave video kodekin e njohur H264 së bashku me flukset audio AAC ose MP3. I gjithë fluksi i të dhënave audio dhe video paketizohet në një kontejner transporti MPEG-TS. Për transmetim përmes protokollit HTTP, informatat e përfshira në fluks ndahen në fragmente, të përshkruara në listat m3u8. Vetëm atëherë këto fragmente së bashku me listat dërgohen përmes HTTP. Ndarja në fragmente automatikisht do të thotë vonesë në sekonda. Ky është një veçori e kontejnerit MPEG-TS.

Motori HLS gjithashtu mbështet flukset multi-bitrate, Live/VOD.

Avantazhet kryesore të HLS:

  • mbĂ«shtetje e integruar nĂ« tĂ« gjitha shfletuesit kryesorĂ«;
  • lehtĂ«sinĂ« e implementimit (krahasuar me WebRTC);
  • Ă«shtĂ« shumĂ« e lehtĂ« dhe efektive pĂ«r tĂ« organizuar transmetime pĂ«r audienca tĂ« mĂ«dha sepse mund tĂ« ngarkoni segmentet njĂ« herĂ« nĂ« CDN.

Megjithëse motori është i thjeshtë, nuk është gjithçka aq e lehtë sa duket. Problemi kryesor është se zhvilluesit e player-eve të tretë janë shmangur nga rekomandimet e Apple, për shembull në lidhje me formatet e mbështetur të audios. Në veçanti, shumë zhvillues filluan të shtojnë mundësinë e punës me rrjedhat audio të njohura: mpeg2 video, mpeg2 audio dhe të tjera. Si rezultat, u detyruam të krijojmë formate të ndryshme playlistesh për playerë të ndryshëm.

Por një nga problemet më të mëdha të motorit HLS është vonesa e lartë në transmetimin e të dhënave.

Origjina e «ngadalësive»

Arsyeja kryesore e vonesës së lartë në HLS është se programuesit krijuan motorin për të marrë një imazh sa më cilësor. Prandaj, parametrat e intervalit të kadrove të përdorura dhe volumi i tamponit të riprodhimit nuk janë të përshtatshëm për transmetimet e drejtpërdrejta të videove. Si rezultat, ndodh një vonesë e konsiderueshme në transmetimin e videos, e cila mund të arrijë 5-7 sekonda.

Në një anë, kjo është pak, për shembull, për ata që shikojnë një film nga një server i hostimit të videove. Por për sistemet e videovëzhgimit, vonesa në transmetimin e videos mund të ketë një rëndësi shumë të madhe.

Nëse po vëzhgoni një zyrë, ku punonjësit e ndajnë kohën çdo orë nga monitorët, atëherë vonesa prej 5 sekondash nuk ka asnjë rëndësi. Por njerëzit filluan të ankohet se, për shembull, gjatë transmetimit të një ndeshjeje futbolli, në chat tashmë kishin shkruar GOOOOOL, por në video kjo ende nuk ishte :)). Ne tashmë kemi disa raste përdoruesish, ku Ivideon duhet praktikisht të zëvendësojë Skype.

A është e mundur të mposhtet vonesa në HLS? P përgjigja e këtij pyetje tingëllon si një fjalim i një ekspert të luftimit të mësymjes në një ligjëratë për deratizatorët e rinj: «Nuk është e mundur të shfarosësh derat e ndyrë, por popullsia e tyre mund të reduktohet në një minimum të arsyeshëm». Kështu që me vonesën në HLS, nuk është e mundur ta eliminosh atë plotësisht, por në treg ka zgjidhje që lejojnë të zvogëlohet ndjeshëm vonesa.

Prerje të vogla

Një tjetër minus i motorit është përdorimi i skedarëve të vegjël për transmetim të të dhënave. Duke u dukur se çfarë ka të keqe në këtë?

Kushdo që ka provuar të kopjojë një numër të madh skedarësh të vegjël nga një pajisje në tjetrën, sigurisht që ka vënë re se shpejtësia e shkruarjes për një grup të tillë është shumë më e ulët se ajo e një skedari të madh me të njëjtin volum. Po ashtu, intensiteti i aksesit në disqet e forta rritet ndjeshëm, që në përgjithësi ka një efekt negativ në performancën e gjithë kompjuterit. Prandaj, transmetimi i të dhënave video në forma të vogla prej 10 sekondash gjithashtu kontribuon në shtimin e vonesës së motorit.

Për të përmbledhur shkurtimisht të gjitha përfitimet dhe disavantazhet e teknologjisë HLS.

Përfitimet e HLS:

  1. Mundësia për t'u punuar me çdo pajisje. Mund të shihni video në çdo pajisje moderne, qoftë smartphone, tablet, laptop ose PC desktop. E rëndësishme është që shfletuesi të jetë version i fundit dhe të jetë kompatibil me HTML5 dhe Media Source Extensions.
  2. Cilësi e shkëlqyer e imazhit. Funksioni i transmetimit dinamik të të dhënave lejon të ndryshoni dinamikisht cilësinë e transmetimit të videove në përputhje me bandën e lidhjes internet, ndërsa algoritmi përpiqet të ruajë cilësinë maksimale.
  3. Nuk ka nevojë për konfigurim të komplikuar të pajisjes së përdoruesit.

Disavantazhet:

  1. Mbështetje e kufizuar për funksionimin me motorin në disa pajisje.
  2. Vonesa të larta në transmetimin e imazhit.
  3. Rritje të konsiderueshme të ngarkesave dhe vështirësi në optimizim për shkak të përdorimit të skedarëve të vegjël. Për shkak të veçorive të enës, ne nuk do të arrijmë kurrë një vonesë më të ulët sesa madhësia e segmentit.

Disavantazhet e HLS të kanë tejkaluar përfitimet për ne dhe na kanë detyruar të kërkojmë alternativa.

ÇfarĂ« Ă«shtĂ« WebRTC

WebRTC dhe videov vigilancia: si e mposhtëm vonesën e videos nga kamerat
(c)

Platforma WebRTC u zhvillua nga Google në vitin 2011 për të transmetuar të dhëna audio dhe video streaming mes shfletuesve dhe aplikacioneve mobile me vonesë minimale. Për këtë përdoret protokolli standard UDP dhe algoritme të veçanta të menaxhimit të fluxit. Sot, ky është një projekt me kod të hapur, i cili mbështetet aktivisht nga Google dhe zhvillohet.

WebRTC është një grup teknologjish për transmetimin peer-to-peer të videos dhe zërit. Kështu, për shembull, shfletuesit e përdoruesve me ndihmën e WebRTC mund të transmetojnë të dhënat drejtpërdrejt midis tyre, pa përdorur serverë të largët për ruajtjen dhe përpunimin e të dhënave. Të gjitha informacionet gjithashtu përpunohen nga shfletuesit dhe aplikacionet mobile të përdoruesve përfundimtarë.

Komoditeti dhe mundësitë e mëdha të kësaj teknologjie janë vlerësuar nga zhvilluesit e të gjitha shfletuesve të njohur. Sot, mbështetje për WebRTC është realizuar në Mozilla Firefox, Opera, Google Chrome (dhe të gjitha shfletuesit e bazuar në Chromium), si dhe në aplikacionet mobile për Android dhe iOS.

Pavarësisht të gjitha meritat e saj të pa dyshimta, WebRTC ka disa disavantazhe të konsiderueshme.

Vështirësi në zgjedhje

Teknologjia WebRTC është shumë më e komplikuar në aspektin e ndërveprimeve rrjetore për shkak se ajo funksionon në P2P. Ajo është e vështirë për të debug-uar, testuar, dhe mund të sillet në mënyrë të paparashikueshme. Gjithashtu, na nevojitet të kapërcejmë NAT-in dhe firewall, duke siguruar funksionimin në rrjete ku UDP është i bllokuar.

Implementimi i WebRTC nga Google është shumë i vështirë për t'u përdorur. Madje ka një kompani të tërë që ofron shërbime për ndërtimin e SDK-ve. Për më tepër, implementimi nga Google ishte shumë e vështirë për t'u integruar me sistemin tonë në mënyrë që të mos nevojitej të rikodoheshin të gjitha videot.

MegjithatĂ«, ne prej kohĂ«sh dĂ«shironim t'u jepnim pĂ«rdoruesve mundĂ«sinĂ« pĂ«r tĂ« punuar me njĂ« video ‘live’ tĂ« plotĂ« dhe tĂ« minimizonim vonesat nĂ« shfaqjen e imazhit nĂ« ekran nga ngjarjet e vetĂ«. PĂ«rveç kĂ«saj, kishim dĂ«shirĂ«n pĂ«r tĂ« bĂ«rĂ« mĂ« komode pĂ«rdorimin e kamerave PTZ, ku vonesat kanĂ« njĂ« rĂ«ndĂ«si kritike.

Duke marrë parasysh se implementimet e tjera për luftimin e vonesave deri tani kanë funksionalitet të kufizuar dhe punojnë dukshëm më keq, ne vendosëm të përdorim WebRTC.

ÇfarĂ« kemi bĂ«rĂ«

WebRTC dhe videov vigilancia: si e mposhtëm vonesën e videos nga kamerat

Integrimi i saktĂ« i platformĂ«s WebRTC Ă«shtĂ« njĂ« detyrĂ« e vĂ«shtirĂ«. Çdo llogaritje ose pasaktĂ«si mund tĂ« çojĂ« nĂ« atĂ« qĂ« vonesat nĂ« transmetimin e videos jo vetĂ«m qĂ« nuk zvogĂ«lohen nĂ« krahasim me platformat e tjera, por madje rriten.

Për funksionimin e saktë të WebRTC, në radhë të parë, duhet të kryhet një modernizim teknologjik i stack-ut për të punuar me video në web. Këto janë ato që ne bëmë.

Së pari implementuam serverin e protokolit të sinjalizimit WebRTC mbi Websocket, si dhe zhvilluam një server partner të WebRTC në Cloud të bazuar në SDK webrtc.org. Detyra e tij është të shpërndajë rrjedhat video për klientët e WebRTC peers në formatin H.264 + Opus/G.711 pa shkodimin e videos.

Ne zgjodhëm Websocket si protokollin e sinjalizimit sepse është mbështetur mirë në të gjithë shfletuesit e njohur. Kështu, mund të reduktosh ndjeshëm jo vetëm kostot e zhvillimit, por edhe të kursesh kohë dhe burime për rinovimin e TCP dhe TLS handshake krahasuar me AJAX.

Çështja Ă«shtĂ« se, me tĂ« default, WebRTC nuk ofron protokoll sinjalizimi qĂ« Ă«shtĂ« i nevojshĂ«m pĂ«r konfigurimin e duhur, mbĂ«shtetje dhe ndĂ«rprerjen e lidhjeve video nĂ« kohĂ« reale midis aplikacioneve origjinale dhe atyre klient.

Dhe për të realizuar teknologjinë e sinjalizimit vetë, ne duhej të zhvillonim serverin tonë të sinjalizimit me mbështetje për disa protokolle web (Websocet, WebRTC). Gjithashtu me mundësinë e menaxhimit të sigurt të seancave dhe njoftimeve në kohë reale, menaxhimit të videos dhe shumë parametrave të tjerë.

Kufizimet P2P i kapërcyem duke ulur vonesën jo përmes P2P, por përmes UDP dhe menaxhimit të fluksit që synon të reduktojë vonesën. Kjo është gjithashtu në WebRTC, pasi përdorimi kryesor është bisedat p2p përmes shfletuesit.

Në klientin mobil ne implementuam një lojtar duke përdorur SDK webrtc.org, pasi vetëm në të është implementuar si duhet menaxhimi i fluksit, ka të gjitha skemat e njohura të Korrigjimit të Gabimeve në Avancim (FEC), mekanizmi i rihapjes së paketave është implementuar siç duhet për të gjithë shfletuesit. Një fakt tjetër i rëndësishëm është se SDK webrtc.org zhvillohet aktivisht nga Google.

Cili është rezultati nga implementimi i WebRTC?


Për të parë video në kohë reale nga kamerat, ne shtuam një lojtar të ri të optimizuar të bazuar në WebRTC në kabinetin personal. Ai ofron një shpejtësi të lartë ngarkimi të videove dhe eliminon plotësisht problemin e akumulimit të vonesës me kalimin e kohës.

Pas aprovimit të mbështetjes WebRTC në shërbimin tonë cloud Ivideon, tani mund të themi me siguri se klientët tanë kanë akses në transmetimin e videove të drejtpërdrejta. Tani, vonesa gjatë transmetimit të videos nuk kalon një sekondë! Për krahasim, motori i mëparshëm HLS siguronte dërgimin e videos me vonesa prej 5-7 sekondash. Ndryshimi në shpejtësinë e transmetimit të videos është shumë i rëndësishëm dhe përdoruesi do ta vërejë menjëherë sapo të fillojë përdorimin e shërbimit tonë të videos.

Siç e supozuam, implementimi i player-it të ri përmirësoi reagimin e PTZ dhe komunikimin me zë nga kamera.

WebRTC dhe videov vigilancia: si e mposhtëm vonesën e videos nga kamerat

Ka vetëm një çështje të vogël, mbi të cilën duam të tërheqim vëmendjen. Player-i i ri WebRTC aktualisht funksionon në mod testimi. Dhe pikërisht për këtë arsye nuk e aktivizojmë atë automatikisht për të gjithë klientët tanë. Por ju mund ta aktivizoni atë vetë, duke përfshirë opsionin përkatës në cilësimet e kamerës (për këtë është e nevojshme të shkoni në panelin tuaj personal).

Veçoritë e implementimit të WebRTC në shërbimin Ivideon

WebRTC dhe videov vigilancia: si e mposhtëm vonesën e videos nga kamerat

WebRTC aktualisht është një teknologji eksperimentale. Mbështetje e saj nuk është implementuar ende saktësisht në të gjitha shfletuesit dhe pajisjet e përdoruesve, si dhe në të gjitha kamerat.

Kjo është pikërisht arsyeja pse ende nuk e kemi bërë player-in WebRTC standard për të gjithë përdoruesit.

Derisa ne rekomandojmë të përdorni WebRTC vetëm në shfletuesit Google Chrome. Versionet e fundit të Firefox dhe Safari gjithashtu mbështetin këtë teknologji, por fatkeqësisht, ende janë të paqëndrueshme.

Ne ende nuk e kemi implementuar mbështetje për WebRTC në shfletuesit e pajisjeve mobile. Tani, në qoftë se do të hyni nga një pajisje mobile dhe aktivizoni WebRTC, ky mod nuk do të funksionojë. Megjithatë, WebRTC është i pranishëm në aplikacionet tona mobile për Android dhe iOS.

Dhe përfundimisht, duke përmbyllur diskutimin mbi veçoritë e implementimit të WebRTC në shërbimin tonë, do të theksojmë edhe dy çështje të tjera të vogla.

Së pari, teknologjia është orientuar drejt transmetimit të videos së drejtpërdrejtë në kohë reale. Prandaj, nëse kapaciteti i kanalit tuaj është i pamjaftueshëm për dërgimin e videos, do të vini re rënien e kadrove (në HLS do të vini re mpirjen e videos dhe rritjen e vonesës, megjithatë kadrot nuk do të bien), por video do të vazhdojë të transmetohet në kohë reale.

Së dyti, pasi teknologjia është e destinuar për të punuar saktësisht me video në kohë reale, ne nuk e përdorim atë për të punuar me të dhëna video arkivore.

Ndryshime të tjera në shërbim

Tani për tani, Flash nuk merr më pjesë në mekanizmin automatik të përzgjedhjes së motorit. Edhe pse është e mundur ta përdorni një lojtar të tillë, ju duhet ta zgjidhni atë manualisht në cilësimet e llogarisë ose kamerës. Nuk është një trend i ri, thjesht sipas statistikave të shërbimit tonë, praktikisht nuk ka mbetur asnjë përdorues që punon me Flash. Dhe përpjekja për të përcaktuar nëse shfletuesi i përdoruesit e mbështet atë, na kushton rreth 2 sekonda kohe të çmuar.

Ja njĂ« pĂ«rmbledhje e shkurtĂ«r e ndryshimeve qĂ« ju presin nĂ« sistemin tonĂ« tĂ« vide监im dhe nĂ« llogarinĂ« tuaj. QĂ«ndroni me ne dhe ndiqni lajmet!

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster