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

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

Nga ditĂ«t e para tĂ« punĂ«s me sistemin e vido-nbikĂ«qyrjes nĂ« re, u pĂ«rballĂ«m me njĂ« problem, zgjidhja e tĂ« cilit do ta bĂ«nte Ivideon tĂ« pamundur – ishte Everest-i ynĂ«, ngjitja e tĂ« cilit e mori shumĂ« energji, por tani, enfin, e kemi vendosur picks-nĂ« nĂ« kulmin e kĂ«tij enigma ndĂ«rplatformave.

Sistemi i transmetimit të zërit dhe videos përmes Internetit nuk duhet të varet nga pajisjet, klientët Web, dhe standardet që ata mbështesin, si dhe duhet të funksionojë korrektisht në prani të Network Address Translators dhe firewall-eve. Përdoruesi i vido-nbikëqyrjes në re do të ketë akses në shërbimin, madje nëse përdor kamera analoge, ndërsa preferon të shikojë transmetimin e videos në pajisjen më të avancuar.

ËshtĂ« jashtĂ«zakonisht e rĂ«ndĂ«sishme qĂ« pĂ«rdoruesi dĂ«shiron tĂ« shohĂ« video me minim tĂ« vonesĂ«s. MundĂ«sia gati e vetme pĂ«r tĂ« shfaqur video me vonesĂ« tĂ« ulĂ«t nĂ« shfletues Ă«shtĂ« pĂ«rdorimi i WebRTC (komunikime nĂ« kohĂ« reale nĂ« internet). WebRTC Ă«shtĂ« njĂ« set teknologjish pĂ«r transmetimin peer-to-peer tĂ« videove dhe zĂ«rit nĂ« shfletues, e cila mundĂ«son 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ë çfarë i ofron përdoruesit motori i ri, do t'ju kujtojmë pse dhe përse mbështesim teknologjitë HLS, dhe për çfarë vendosëm të lëvizim përpara.

Motori HLS: përparësitë dhe disavantazhet

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

Teknologjia HLS (HTTP Live Streaming) është zhvilluar nga Apple, prandaj nuk është e çuditshme që ndihma e saj u shfaq së pari në pajisjet e këtij brandi. Sot, video në formatin HLS gjithashtu mund të riprodhohen nga pothuajse të gjitha pajisjet televizive dhe shumë pajisje që funksionojnë në sistemin operativ Android.

Motori HLS përdor për transmetimin e të dhënave video kodekun e njohur H264 në kombinim me audio-streamet AAC ose MP3. Të gjitha të dhënat audio dhe video janë të paketuara në kontejnerin transportues MPEG-TS. Për transmetim përmes protokollit HTTP, informacioni i përfshirë në flux ndahet në fragmente, të përshkruara në listat e luajtjes m3u8. Vetëm pastaj këto fragmente së bashku me listat e luajtjes transmetohen përmes HTTP. Ndarja në fragmente automatikisht nënkupton vonesë në sekonda. Kjo është një karakteristikë e veçantë e kontejnerit MPEG-TS.

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

Dëshirat kryesore të HLS:

  • mbĂ«shtetje e integruar nĂ« tĂ« gjithĂ« shfletuesit kryesorĂ«;
  • thjeshtĂ«si implementimi (nĂ«se e krahasojmĂ« me WebRTC);
  • Ă«shtĂ« shumĂ« e pĂ«rshtatshme dhe efektive pĂ«r tĂ« organizuar çdo transmetim pĂ«r njĂ« audiencĂ« tĂ« madhe, pĂ«r shkak se mund tĂ« ngarkohet njĂ« segment vetĂ«m njĂ« herĂ« nĂ« CDN.

Megjithëse motori është i thjeshtë, gjërat nuk janë aq të lehta sa duken. Problemi kryesor është se zhvilluesit e playerëve të tredhë e kanë distancuar nga rekomandimet e Apple, për shembull, në lidhje me formatet e mbështetura të audios. Në veçanti, shumë zhvillues filluan të shtojnë mundësinë e punës me potoli audios popullor: video mpeg2, audio mpeg2, etj. Si rezultat, u desh të krijoheshin formate të ndryshme listash luajtjeje 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.

Origjinat e "ndaljeve"

Arsyeja kryesore e vonesës së lartë te HLS është se programuesit ndërtuan motorin për të siguruar një cilësi maksimale të imazhit. Prandaj, parametra i intervalit të kuadrove dhe volumi i buferit të riprodhimit thjesht nuk janë të përshtatshëm për transmetimet direkt. Për këtë arsye, ndodhet një vonesë mjaft e lartë në transmetimin e fluksit të videos, e cila mund të arrijë deri në 5-7 sekonda.

Nga njëra anë, kjo është pak, për shembull, për ata që po shikojnë një film nga një server video. Por për sistemet e videonbikëqyrjes, vonesa në transmetimin e fluksit të videos mund të ketë një rëndësi të madhe.

Nëse po e monitoroni një zyrë ku punonjësit shpërndahen një herë në orë nga monitorët, atëherë një vonesë prej 5 sekondash nuk ka asnjë rëndësi. Por njerëzit filluan të ankojnë se, për shembull, gjatë transmetimit të një ndeshjeje futbolli, në chat tashmë kishin shkruar GOOOOOL, por në video kjo ende nuk kishte ndodhur :). Ne tashmë kemi disa raste përdoruesish, ku Ivideon duhet të zëvendësojë praktikisht Skype.

A është e mundur të fitohet mbi vonesën në HLS? Përgjigja në këtë pyetje tingëllon si një fjalim i një mjeshtri të deratizatorëve në një leksion para fillestarëve: "Deratizatorët e derrave nuk mund të shkatërrohen, por popullsia e tyre mund të reduktohet në një minimum të arsyeshëm". Kështu që me vonesën në HLS, nuk do të arrish ta eliminosh atë deri në zero, por në treg ka zgjidhje që lejojnë të reduktohet ndjeshëm vonesa.

Ndarje e vogël

Një tjetër minus i motorit është përdorimi i dosjeve të vogla për transmetimin e të dhënave. Duke parë 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ë mbajtës në tjetrin, me siguri ka vënë re se shpejtësia e shkrimit për një grup të tillë është ndjeshëm më e ulët sesa për një skedar të vetëm të madh me të njëjtin volum. Po ashtu, intensiteti i kërkesave ndaj hard diskut rritet dukshëm, çka ka një ndikim negativ në performancën e tërë kompjuterit. Prandaj, transmetimi i të dhënave video në forma të vogla prej 10 sekondash gjithashtu kontribuon në rritjen e vonesës së motorit.

Për të përmbledhur në mënyrë të shkurtër të gjitha përfitimet dhe disavantazhet e teknologjisë HLS.

Avantazhet e HLS:

  1. Mundësia e funksionimit me çdo pajisje. Mund të shihni video në çdo pajisje moderne, qofshin ato smartphone, tabletë, laptopë ose kompjuterë të tavolinës. E rëndësishme është që shfletuesi të jetë një version modern dhe të jetë i pajtueshëm me HTML5 dhe Media Source Extensions.
  2. Cilësi e shkëlqyer imazhi. Funksioni i transmetimit adaptiv të të dhënave lejon ndryshimin dinamik të cilësisë së videove në varësi të bandwidth-it të lidhjes internet, duke synuar të ruajë cilësinë më të lartë.
  3. Nuk ka nevojë për konfigurovime të komplikuara të pajisjes së përdoruesit.

Disavantazhet:

  1. Mbështetje e kufizuar për funksionimin e motorit në disa pajisje.
  2. Vonesat e larta në transmetimin e imazhit.
  3. Rritja e madhe e shpenzimeve dhe vështirësitë në optimizim për shkak të përdorimit të skedarëve të vegjël. Për shkak të karakteristikave të kontejnerit, ne kurrë nuk mund të arrijmë një vonesë më të vogël se madhësia e segmentit.

Disavantazhet e HLS e kaluan për ne përfitimet e saj dhe na detyruan të kërkojmë alternativa.

ÇfarĂ« Ă«shtĂ« WebRTC

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

Platforma WebRTC u zhvillua nga Google në vitin 2011 për të transmetuar të dhëna video dhe audio streaming midis shfletuesve dhe aplikacioneve mobile me vonesë minimale. Përdoret protokolli standard UDP dhe algoritme speciale për menaxhimin e rrjedhës. Sot, është një projekt me kod burimor, i mbështetur aktivisht nga Google dhe që po zhvillohet.

WebRTC është një grup teknologjish për transmetimin peer-to-peer të videos dhe zërit. Pra, për shembull, shfletuesit e përdoruesve duke përdorur WebRTC mund të transmetojnë të dhëna ndërsjelltas, pa përdorimin e serverëve 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ë.

Lehtësia dhe mundësitë e mëdha të kësaj teknologjie janë vlerësuar shumë nga zhvilluesit e të gjithë shfletuesve të njohur. Sot mbështetja për WebRTC është implementuar në Mozilla Firefox, Opera, Google Chrome (dhe të gjithë shfletuesit në bazë të Chromium), si dhe në aplikacione mobile për Android dhe iOS.

Megjithatë, për të gjitha përfitimet e saj të padiskutueshme, WebRTC ka disa disavantazhe të konsiderueshme.

Vështirësitë në zgjedhje

Teknologjia WebRTC Ă«shtĂ« shumĂ« mĂ« e komplikuar nĂ« aspektin e ndĂ«rveprimeve rrjetĂ«rore pĂ«r shkak se Ă«shtĂ« pĂ«r P2P. ËshtĂ« e vĂ«shtirĂ« tĂ« diagnostikohet, tĂ« testohet, dhe mund tĂ« sillet nĂ« mĂ«nyrĂ« tĂ« papritur. Po ashtu, duhet tĂ« kalojmĂ« NAT dhe firewall, dhe tĂ« sigurojmĂ« funksionimin nĂ« rrjete ku UDP Ă«shtĂ« i bllokuar.

Implementimi i WebRTC nga Google është shumë e vështirë për t'u përdorur. Ekziston madje një kompani e tërë që ofron shërbime për ndërtimin e SDK. Përveç kësaj, implementimi nga Google ishte shumë e vështirë për t'u integruar me sistemin tonë pa e koduar përsëri të gjithë videon.

Megjithatë, ne kemi dëshiruar prej kohësh që t'u japim përdoruesve mundësinë për të punuar me një video 'të gjallë' të plotë dhe të minimizojmë vonesën e imazhit në ekran nga ngjarjet reale. Përveç kësaj, kishim dëshirën për të bërë më komod përdorimin e kamerave PTZ, ku vonesat kanë një rëndësi kritike.

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

ÇfarĂ« bĂ«mĂ«

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

TĂ« implementosh saktĂ«sisht platformĂ«n WebRTC Ă«shtĂ« njĂ« detyrĂ« e vĂ«shtirĂ«. Çdo gabim ose pasaktĂ«si mund tĂ« çojĂ« nĂ« atĂ« qĂ« vonesat nĂ« transmetimin e videos jo vetĂ«m qĂ« nuk do tĂ« reduktohen nĂ« krahasim me platformat e tjera, por edhe do tĂ« rriten.

Për funksionimin e saktë të WebRTC, në radhë të parë, është e nevojshme të kryhet një modernizim teknologjik i myk për të punuar me video në web. Kështu ne e bëmë.

Fillimisht implementuam serverin e protokollit të sinjalizimit WebRTC mbi Websocket, si dhe vendosëm një server peer WebRTC në cloud duke u bazuar në SDK webrtc.org. Detyra e tij është shpërndarja e rrjedhave video në klientët WebRTC peer në formatin H.264 + Opus/G.711 pa kodimin e videos.

Ne zgjodhëm Websocket si protokoll sinjalizimi sepse ai tashmë ka mbështetje të kualitetit në të gjitha shfletuesit e njohur të internetit. Kjo ndihmon në uljen e kostove të zhvillimit dhe shmangien e humbjes së kohës dhe burimeve në përsëritjen e TCP dhe TLS handshake në krahasim me AJAX.

E vërteta është se me parazgjedhje WebRTC nuk ofron një protokoll sinjalizimi, i nevojshëm për konfigurimin, mbështetje dhe ndërprerjen e videove në kohë reale midis aplikacioneve burim dhe klient.

Dhe për të realizuar teknologjinë e sinjalizimit, na duhej të zhvillonim serverin tonë të sinjalizimit me mbështetje për disa protokolle të internetit (Websocket, WebRTC). Po ashtu, me mundësinë për menaxhimin e sigurt të sesioneve dhe njoftimeve në kohë reale, menaxhim videosh dhe shumë parametrash të tjerë.

Kufizimet P2P i kemi përballuar duke ulur vonesën jo përmes P2P, por përmes UDP dhe menaxhimit të rrjedhës, i orientuar drejt uljes së vonesës. Kjo gjithashtu është e pranishme në WebRTC, pasi rastet kryesore të përdorimit janë bisedat P2P nëpërmjet shfletuesit.

Në klientin mobil kemi implementuar një lojtar duke përdorur SDK webrtc.org, sepse vetëm aty janë realizuar saktë menaxhimi i rrjedhës, të gjitha skemat e njohura të Forward Error Correction (FEC), si dhe mekanizmi i ri dërgimit të paketave i implementuar saktë për të gjithë shfletuesit. Një fakt i rëndësishëm është edhe që SDK webrtc.org po zhvillohet aktivisht nga Google.

Cili është rezultati i implementimit të WebRTC?


Për shikimin e videos në kohë reale nga kamerat, ne kemi shtuar në panelin personal një lojtar të ri të optimizuar në bazë të WebRTC. Ai ofron një shpejtësi të lartë ngarkimi të videove dhe eliminon plotësisht problemin e akumulimit të vonesës ndërsa rritet koha e shikimit.

Pas implementimit të mbështetjes për WebRTC në shërbimin tonë cloud Ivideon, mund të themi me plot besim se tani klientët tanë kanë qasje në shikimin e videos të plotë në kohë reale. Tani vonesa gjatë transmetimit të videos nuk kalon një sekondë! Për krahasim, motorë të mëparshëm HLS siguronte dërgimin e videove me vonesa 5-7 sekonda. Diferenca në shpejtësinë e demonstrimit të videos është shumë e dukshme, dhe përdoruesi do ta vërë re menjëherë pas fillimit të punës me shërbimin tonë të videos.

Siç e kishim pritur, implementimi i lojtarit të ri ka lejuar rritjen e reagimit të PTZ dhe të komunikimit me zë me kamerën.

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

Ka vetëm një moment të vogël, në të cilin deshirojmë të bëjmë një vërejtje. Lojtari i ri WebRTC aktualisht punon në modin e testimit. Dhe për këtë arsye nuk e lidhim atë me të gjithë klientët tanë me parazgjedhje. Por mund ta aktivizoni vetë duke aktivizuar opsionin përkatës në cilësimet e kamerës (për këtë duhet të hyjë në panelin personal).

Karakteristikat e implementimit të WebRTC në shërbimin Ivideon

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

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

Kjo sqaroni faktin se për momentin nuk e kemi bërë lojtarin WebRTC si parazgjedhje për të gjithë përdoruesit.

Aktualisht rekomandojmë përdorimin e WebRTC vetëm në shfletuesit Google Chrome. Versionet e fundit të Firefox dhe Safari gjithashtu mbështesin këtë teknologji, por fatkeqësisht, akoma janë të paqëndrueshme.

Të jemi të sinqertë, deri tani nuk kemi implementuar mbështetje për WebRTC për shfletuesit në pajisjet mobile. Tani, nëse hyni nga një pajisje mobile dhe aktivizoni WebRTC, ky mod do të funksionojë. Megjithatë, WebRTC është në aplikacionet tona mobile për Android dhe iOS.

Dhe përfundimisht, duke folur për karakteristikat e implementimit të WebRTC në shërbimin tonë, do të theksojmë edhe dy momente të tjera të vogla.

Së pari, teknologjia është e orientuar në transmetimin e videos në kohë reale. Pra, nëse gjerësia e brezit tuaj është e pamjaftueshme për dërgimin e videos, do të vini re humbje kadri (me HLS do të vini re ngrirjen e videos dhe rritjen e vonesës, ndërsa kadrët nuk do të humbasin), megjithatë video do të jetë në transmetim në kohë reale.

Së dyti, për shkak se teknologjia është krijuar për punë me video të gjallë 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

Aktualisht Flash nuk është më pjesë e mekanizmit të përzgjedhjes automatike të motorit. Edhe pse ende mund ta përdorni këtë lojtar, duhet ta zgjidhni atë manualisht në cilësimet e llogarisë ose kamerës. Kjo nuk është një modë, thjesht sipas statistikave të shërbimit tonë, përdoruesit që punojnë me Flash janë praktikisht zhdukur. Edhe përpjekjet për të përcaktuar nëse shfletuesi i përdoruesit mbështet Flash, ne humbasim rreth 2 sekonda kohë të çmuar.

Jahtoni një përmbledhje të shkurtër rreth ndryshimeve që ju presin në sistemin tonë të survejimit në re dhe në llogarinë tuaj personale. Qëndroni me ne dhe ndiqni lajmet!

Burimi: habr.com

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