{"id":32314,"date":"2019-10-31T21:46:17","date_gmt":"2019-10-31T18:46:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer\/"},"modified":"2019-10-31T21:46:17","modified_gmt":"2019-10-31T18:46:17","slug":"webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","title":{"rendered":"WebRTC i video nadzor: kako smo pobijedili ka\u0161njenje videa s kamera","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"WebRTC i video nadzor: kako smo pobijedili ka\u0161njenje videa s kamera\" src=\"\/wp-content\/uploads\/2019\/04\/d185b546f5fc4c15021481c0cc2fedbd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOd prvih dana rada na sustavu oblaka za video nadzor, suo\u010dili smo se s problemom bez \u010dijeg rje\u0161enja na Ivideon nismo mogli ra\u010dunati \u2013 bio je to na\u0161 Everest, uspon na koji je oduzeo mnogo snage, ali sada smo, napokon, zabili cepin u vrh ovog krosplatformskog zagonetka.<\/p>\n<p>Sustav prijenosa zvuka i videa preko Interneta ne smije ovisiti o opremi, web klijentima i standardima koje podr\u017eavaju, kao ni ispravno funkcionirati u prisutnosti mre\u017enih adresa translatora i vatrozida. Korisnik oblaka za video nadzor \u017eeli imati pristup servisu, \u010dak i ako koristi analogne kamere, a prijenos \u017eivog videa \u017eeli gledati na najsuvremenijem ure\u0111aju. <\/p>\n<p>Od velike je va\u017enosti da korisnik \u017eeli gledati video s minimalnom latencijom. Gotovo jedini na\u010din za prikazivanje videa s niskom latencijom u pregledniku je kori\u0161tenje WebRTC (web real-time communications). WebRTC je skup tehnologija za peer-to-peer prijenos videa i zvuka u preglednicima, prvotno dizajniran za prijenos i reprodukciju video streamova s niskom latencijom. Za to, izme\u0111u ostalog, koristi se UDP protokol.<\/p>\n<p>Prije nego \u0161to vam objasnimo \u0161to novom motoru daje korisnika, podsjetit \u0107emo vas za\u0161to i zbog \u010dega podr\u017eavamo HLS tehnologije i radi \u010dega smo odlu\u010dili i\u0107i naprijed.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>HLS motor: prednosti i nedostaci<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC i video nadzor: kako smo pobijedili ka\u0161njenje videa s kamera\" src=\"\/wp-content\/uploads\/2019\/04\/f025d08eb22f7785090b8bc60194643c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(<noindex><a rel=\"nofollow\" href=\"https:\/\/www.encoding.com\/http-live-streaming-hls\/\">c<\/a><\/noindex>)<\/p>\n<p>Tehnologija HLS (HTTP Live Streaming) razvijena je u Appleu, stoga nije iznena\u0111uju\u0107e \u0161to je podr\u0161ka za nju prvi puta pojavila na ure\u0111ajima upravo tog brenda. Danas gotovo svi televizijski dekodiri i mnogi ure\u0111aji koji rade na Android operativnom sustavu mogu reproducirati video u HLS formatu.<\/p>\n<p>HLS motor koristi dobro poznati video kodek H264 za striming video podataka zajedno s AAC ili MP3 audio streamovima. Cijeli audio i video stream se pakira u MPEG-TS transportni kontejner. Za prijenos putem HTTP-a, podaci sadr\u017eani u streamu dijele se na fragmente, opisane u m3u8 playlistrima. Tek tada se ti fragmenti zajedno s playlistama \u0161alju putem HTTP-a. Dijeljenje na fragmente automatski zna\u010di zadr\u017eavanje u sekundama. Ova zna\u010dajka MPEG-TS kontejnera. <\/p>\n<p>HLS motor tako\u0111er podr\u017eava vi\u0161e bitrate streamova, Live\/VOD. <\/p>\n<p><b>Glavne prednosti HLS-a:<\/b><\/p>\n<ul>\n<li>ugra\u0111ena podr\u0161ka u svim glavnim preglednicima;<\/li>\n<li>jednostavnost implementacije (u usporedbi s WebRTC);<\/li>\n<li>vrlo je ugodno i u\u010dinkovito organizirati razli\u010dite prijenose za veliku publiku zahvaljuju\u0107i tome \u0161to se segmenti mogu u\u010ditati na CDN samo jednom.<\/li>\n<\/ul>\n<p>\nUnato\u010d jednostavnosti enginea, situacija s njim nije tako glatka kao \u0161to izgleda. Glavni problem je u tome \u0161to su se programeri tre\u0107ih strana odmaknuli od preporuka Applea, na primjer u pogledu podr\u017eanih audioformata. Konkretno, mnogi programeri su po\u010deli dodavati mogu\u0107nost rada s popularnim audio streamovima: mpeg2 video, mpeg2 audio i sl. Kao rezultat toga, morali su se stvoriti razli\u010diti formati playlista za razli\u010dite player-e.<\/p>\n<p>Jedan od najve\u0107ih problema HLS enginea je visoka latencija prijenosa podataka.<\/p>\n<h2>Izvori \"zakasnelosti\"<\/h2>\n<p>\nGlavni uzrok visoke latencije kod HLS le\u017ei u tome \u0161to su programeri stvorili engine za postizanje maksimalne kvalitete slike. Stoga parametri kori\u0161tenog intervala sli\u010dica i veli\u010dina reprodukcijskog predmemoriranja jednostavno nisu prikladni za vo\u0111enje izravnih video prijenosa. Kao rezultat toga, javlja se prili\u010dno visoka latencija u prijenosu videa, koja mo\u017ee iznositi 5-7 sekundi.<\/p>\n<p>S jedne strane, to nije mnogo, primjerice, za one koji gledaju film s poslu\u017eitelja video hostinga. No, za sustave video nadzora, latencija u prijenosu videa mo\u017ee imati vrlo veliku va\u017enost.<\/p>\n<p>Ako promatrate ured gdje se zaposlenici svako toliko udaljavaju s monitora, tada latencija od 5 sekundi nema nikakvog zna\u010daja. No, ljudi su po\u010deli prigovarati da, primjerice, prilikom prijenosa nogometne utakmice, u chatu su ve\u0107 napisali GOOOOL, a na videu toga jo\u0161 nema :). Ve\u0107 imamo niz korisni\u010dkih slu\u010dajeva gdje Ivideon prakti\u010dki treba zamijeniti Skype.<\/p>\n<p>Mo\u017ee li se prevladati latencija u HLS? Odgovor na ovo pitanje zvu\u010di kao izlaganje iskusnog deratizatora pred po\u010detnicima: \"Glodavce je nemogu\u0107e iskorijeniti, ali njihovu populaciju se mo\u017ee svesti na razuman minimum\". Tako je i s latencijom u HLS, ne mo\u017eemo je potpuno eliminirati, ali na tr\u017ei\u0161tu postoje rje\u0161enja koja omogu\u0107uju zna\u010dajno smanjenje latencije.<\/p>\n<h2>Sitno rezanje<\/h2>\n<p>\nJo\u0161 jedan minus enginea je kori\u0161tenje malih datoteka za prijenos podataka. \u010cinilo bi se da tu nema ni\u0161ta lo\u0161e?<\/p>\n<p>Svaka osoba koja je poku\u0161ala kopirati veliki broj malih datoteka s jednog medija na drugi, sigurno je primijetila da je brzina pisanja takvog skupa znatno ni\u017ea nego kod jedne velike datoteke iste veli\u010dine. Osim toga, intenzitet pristupa tvrdom disku znatno se pove\u0107ava, \u0161to sveukupno negativno utje\u010de na performanse cijelog ra\u010dunala. Stoga prijenos video podataka u obliku malih 10-sekundnih segmenata tako\u0111er pridonosi pove\u0107anoj latenciji motora.<\/p>\n<p>Ukratko sa\u017eeto sve prednosti i nedostatke HLS tehnologije.<\/p>\n<p><b>Prednosti HLS:<\/b><\/p>\n<ol>\n<li>Mogu\u0107nost rada sa svim ure\u0111ajima. Mo\u017eete gledati video na bilo kojem suvremenom ure\u0111aju, bio to pametni telefon, tablet, laptop ili stolno ra\u010dunalo. Najva\u017enije je da web preglednik bude suvremene verzije i kompatibilan s HTML5 i Media Source Extensions.<\/li>\n<li>Odli\u010dna kvaliteta slike. Funkcija adaptivnog prijenosa podataka omogu\u0107uje dinami\u010dnu promjenu kvalitete prenesenog videa ovisno o propusnosti internetske veze, pri \u010demu algoritam nastoji zadr\u017eati kvalitetu maksimalnom.<\/li>\n<li>Nema potrebe za slo\u017eenim pode\u0161avanjem korisni\u010dke opreme.<\/li>\n<\/ol>\n<p>\n<b>Nedostaci:<\/b><\/p>\n<ol>\n<li>Ograni\u010dena podr\u0161ka za rad s motorom na nekim ure\u0111ajima.<\/li>\n<li>Visoke latencije u prijenosu slike.<\/li>\n<li>Veliko pove\u0107anje tro\u0161kova i slo\u017eenost optimizacije zbog kori\u0161tenja datoteka malih veli\u010dina. Zbog posebnosti kontejnera nikada ne\u0107emo mo\u0107i posti\u0107i latenciju manju od veli\u010dine segmenta.<\/li>\n<\/ol>\n<p>\nNedostaci HLS-a nadma\u0161ili su njegove prednosti i natjerali nas da tra\u017eimo alternativne opcije.<\/p>\n<h2>\u0160to je WebRTC<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC i video nadzor: kako smo pobijedili ka\u0161njenje videa s kamera\" src=\"\/wp-content\/uploads\/2019\/04\/0cf3c13dba71f6b268113af77841e521.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(<noindex>c<\/noindex>)<\/p>\n<p>Platforma WebRTC razvijena je od strane Googlea 2011. godine za prijenos streamanih video i audio podataka izme\u0111u pregleda\u010da i mobilnih aplikacija s minimalnom latencijom. Za to se koristi standardni protokol UDP i posebni algoritmi za upravljanje protokom. Danas je to projekt otvorenog koda koji aktivno podr\u017eava Google i razvija se.<\/p>\n<p>WebRTC je skup tehnologija za peer-to-peer prijenos videa i zvuka. Drugim rije\u010dima, preglednici korisnika mogu putem WebRTC-a izravno razmjenjivati podatke jedni s drugima, bez kori\u0161tenja udaljenih poslu\u017eitelja za pohranu i obradu podataka. Sve informacije tako\u0111er se obra\u0111uju u preglednicima i mobilnim aplikacijama krajnjih korisnika.<\/p>\n<p>Zgodnost i velike mogu\u0107nosti ove tehnologije cijenili su programeri svih popularnih preglednika. Danas je podr\u0161ka za WebRTC implementirana u Mozilla Firefox, Operi, Google Chrome (i svim preglednicima temeljenim na Chromiumu), kao i u mobilnim aplikacijama za Android i iOS.<\/p>\n<p>Unato\u010d svojim neosporivim prednostima, WebRTC ima nekoliko zna\u010dajnih nedostataka. <\/p>\n<h2>Te\u0161ko\u0107e u izboru<\/h2>\n<p>\nTehnologija WebRTC mnogo je slo\u017eenija s obzirom na mre\u017ene interakcije zbog P2P arhitekture. Te\u0161ko ju je debagirati i testirati, a mo\u017ee se pona\u0161ati nepredvidivo. Osim toga, moramo prevladati NAT i firewall, te osigurati rad u mre\u017eama gdje je UDP blokiran.<\/p>\n<p>Implementaciju WebRTC-a od Googlea vrlo je te\u0161ko koristiti. \u010cak postoji cijela tvrtka koja pru\u017ea usluge izrade SDK-a. Osim toga, implementaciju od Googlea bilo je vrlo te\u0161ko integrirati s na\u0161im sustavom bez ponovne kodiranja cijelog videa.<\/p>\n<p>Me\u0111utim, dugo smo \u017eeljeli omogu\u0107iti korisnicima rad s pravim \u201e\u017eivim\u201d videom i minimizirati ka\u0161njenje slike na ekranu u odnosu na stvarne doga\u0111aje. Tako\u0111er, imali smo \u017eelju olak\u0161ati kori\u0161tenje PTZ kamera, gdje su ka\u0161njenja kriti\u010dna.<\/p>\n<p>Uzimaju\u0107i u obzir da druge implementacije borbe protiv ka\u0161njenja trenutno imaju ograni\u010denu funkcionalnost i rade znatno lo\u0161ije, odlu\u010dili smo koristiti WebRTC. <\/p>\n<h2>\u0160to smo u\u010dinili<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC i video nadzor: kako smo pobijedili ka\u0161njenje videa s kamera\" src=\"\/wp-content\/uploads\/2019\/04\/714f94de43114e552e4d818e9ec927ae.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIspravno implementirati platformu WebRTC nije lagan zadatak. Svaka gre\u0161ka ili neto\u010dnost mogu dovesti do toga da ka\u0161njenja u prijenosu videa ne samo da se ne smanje u usporedbi s drugim platformama, ve\u0107 i da se pove\u0107aju.<\/p>\n<p>Za ispravan rad WebRTC-a, prije svega, potrebno je provesti tehnolo\u0161ku modernizaciju stoga za rad s web videom. To smo i u\u010dinili.<\/p>\n<p>Prvo smo implementirali signalnu protokol WebRTC preko Websocket-a, kao i postavili WebRTC peer-server u oblaku koriste\u0107i SDK webrtc.org. Njegova uloga je distribucija video streamova klijentima WebRTC peer-ovima u H.264 + Opus\/G.711 formatu bez recodiranja videa.<\/p>\n<p>Odabrali smo Websocket kao signalni protokol zbog njegove dobre podr\u0161ke u svim popularnim web preglednicima. Na taj na\u010din mo\u017eemo zna\u010dajno smanjiti ne samo tro\u0161kove razvoja, ve\u0107 i u\u0161tedjeti vrijeme i resurse na ponovnom TCP i TLS handshake-u u usporedbi s AJAX-om.<\/p>\n<p>Naime, WebRTC po defaultu ne pru\u017ea signalni protokol potreban za pravilno postavljanje, odr\u017eavanje i prekid video veze u stvarnom vremenu izme\u0111u izvornih i klijentskih aplikacija.<\/p>\n<p>Kako bismo sami implementirali signalizacijsku tehnologiju, bilo je potrebno razviti vlastiti signalni server s podr\u0161kom za nekoliko web protokola (WebSocket, WebRTC). Tako\u0111er, omogu\u0107ili smo sigurno upravljanje sesijama i notifikacijama u stvarnom vremenu, upravljanje videom i mnogim drugim parametrima.<\/p>\n<p>Ograni\u010denja P2P prevladali smo smanjenjem latencije ne oslanjaju\u0107i se na P2P, ve\u0107 na UDP i upravljanje protokom usmjereno na smanjenje latencije. To je tako\u0111er ugra\u0111eno u WebRTC, jer je glavni use-case P2P razgovor kroz preglednik.<\/p>\n<p>U mobilnom klijentu implementirali smo plejer koriste\u0107i SDK webrtc.org, jer samo on ispravno upravlja protokom, ima sve poznate sheme Forward Error Correction (FEC), i pravilno implementira mehanizam ponovne slanja paketa za sve preglednike. Tako\u0111er je va\u017eno napomenuti da Google aktivno razvija SDK webrtc.org.<\/p>\n<h2>Koji su rezultati implementacije WebRTC-a?<\/h2>\n<p>\n<center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/vk.com\/video_ext.php\" frameborder=\"0\" allowfullscreen><\/iframe><\/center><br \/>\nZa gledanje \u017eivog videa s kamera dodali smo novi optimizirani plejer temeljen na WebRTC-u u korisni\u010dkom ra\u010dunalu. Osigurava visoku brzinu u\u010ditavanja video zapisa i potpuno eliminira problem nakupljanja latencije s porastom vremena gledanja.<\/p>\n<p>Nakon uvo\u0111enja podr\u0161ke za WebRTC u oblaku Ivideon, s punim povjerenjem mo\u017eemo re\u0107i da je na\u0161im korisnicima sada dostupan pregled punokrvnog \u017eivog videa. Sada ka\u0161njenje tijekom prijenosa video sadr\u017eaja ne prelazi jednu sekundu! Za usporedbu, prethodni HLS motor isporu\u010divao je video s ka\u0161njenjem od 5-7 sekundi. Razlika u brzini prikazivanja videa je vrlo zna\u010dajna i korisnici \u0107e je primijetiti odmah nakon po\u010detka rada s na\u0161om video uslugom.<\/p>\n<p>Kao \u0161to smo i predvi\u0111ali, implementacija novog playera omogu\u0107ila je pobolj\u0161anu reakciju PTZ camere i glasovne komunikacije.<\/p>\n<p><img decoding=\"async\" alt=\"WebRTC i video nadzor: kako smo pobijedili ka\u0161njenje videa s kamera\" src=\"\/wp-content\/uploads\/2019\/04\/b6775b11fbc6d97a7cede32cccc471ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPostoji samo jedan suptilni aspekt na koji \u017eelimo skrenuti pa\u017enju. Novi WebRTC player trenutno radi u testnom re\u017eimu. Zbog toga ga ne aktiviramo automatski svim korisnicima. Me\u0111utim, mo\u017eete ga aktivirati sami uklju\u010divanjem odgovaraju\u0107e opcije u postavkama kamere (za to morate oti\u0107i u <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.ivideon.com\/my\/\">osobni ra\u010dun<\/a><\/noindex>).<\/p>\n<h2>Osobitosti implementacije WebRTC u Ivideon servisu<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC i video nadzor: kako smo pobijedili ka\u0161njenje videa s kamera\" src=\"\/wp-content\/uploads\/2019\/04\/247e640fa9334a0c144cc6b4296dc23b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWebRTC je trenutno jo\u0161 uvijek eksperimentalna tehnologija. Njegova podr\u0161ka jo\u0161 nije adekvatno implementirana u svim browserima i korisni\u010dkim ure\u0111ajima, kao ni u svim kamerama.<\/p>\n<p>Upravo je to razlog \u0161to jo\u0161 nismo u\u010dinili WebRTC player glavnim kao zadanu opciju za sve korisnike.<\/p>\n<p>Za sada preporu\u010dujemo kori\u0161tenje WebRTC-a samo u browserima Google Chrome. Posljednje verzije Firefoxa i Safarija tako\u0111er podr\u017eavaju ovu tehnologiju, ali, na\u017ealost, jo\u0161 uvijek su nestabilne. <\/p>\n<p>Za sada nismo implementirali podr\u0161ku za WebRTC u mobilnim browserima. Ako se prijavite s mobilnog ure\u0111aja i aktivirate WebRTC, ovaj na\u010din rada ne\u0107e funkcionirati. Ipak, WebRTC je dostupan u na\u0161im mobilnim aplikacijama za <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.ivideon.client&amp;hl=ru\">Android<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/itunes.apple.com\/ru\/app\/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BD%D0%B0%D0%B1%D0%BB%D1%8E%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-ivideon\/id464234175?mt=8\">iOS<\/a><\/noindex>.<\/p>\n<p>I zavr\u0161avaju\u0107i pri\u010du o osobitostima implementacije WebRTC u na\u0161oj usluzi, istaknut \u0107emo jo\u0161 dva suptilna aspekta.<\/p>\n<p>Prvo, tehnologija je usmjerena na prijenos upravo \u017eivog videa u stvarnom vremenu. Stoga, ako propusnost va\u0161e veze bude nedostatna za prijenos video sadr\u017eaja, primijetit \u0107ete gubitak okvira (s HLS-om \u0107ete primijetiti zamrzavanje videa i pove\u0107anje ka\u0161njenja, dok okviri ne\u0107e ispasti), ali video \u0107e i dalje biti preno\u0161en u stvarnom vremenu.<\/p>\n<p>Drugo, budu\u0107i da je tehnologija osmi\u0161ljena za rad s \u017eivim videozapisima u stvarnom vremenu, ne koristimo je za rad s arhivskim video podacima.<\/p>\n<h2>Druge promjene u usluzi<\/h2>\n<p>\nU ovom trenutku Flash vi\u0161e nije uklju\u010den u mehanizam automatskog odabira motora. Taj player se jo\u0161 uvijek mo\u017ee koristiti, ali ga treba ru\u010dno odabrati u postavkama ra\u010duna ili kamere. To nije jednostavno modna, ve\u0107 prema statistikama na\u0161eg servisa gotovo da vi\u0161e nema korisnika koji koriste Flash. A na poku\u0161aj da se utvrdi podr\u017eava li ga preglednik korisnika, gubimo oko 2 sekunde dragocjenog vremena. <\/p>\n<p>Evo ukratko o promjenama koje vas o\u010dekuju u na\u0161em oblaku za video nadzor i korisni\u010dkom ra\u010dunu. Ostanite s nama i pratite novosti!<br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ivideon\/blog\/449326\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439, \u0431\u0435\u0437 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430 Ivideon \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0440\u0435\u0441\u0442 \u2013 \u044d\u0442\u043e \u0431\u044b\u043b \u043d\u0430\u0448 \u042d\u0432\u0435\u0440\u0435\u0441\u0442, \u0432\u043e\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u043d\u044f\u043b\u043e \u0443\u0439\u043c\u0443 \u0441\u0438\u043b, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b, \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e, \u0432\u043e\u0442\u043a\u043d\u0443\u043b\u0438 \u043b\u0435\u0434\u043e\u0440\u0443\u0431 \u0432 \u043c\u0430\u043a\u0443\u0448\u043a\u0443 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0431\u0443\u0441\u0430. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0437\u0432\u0443\u043a\u0430 \u0438 \u0432\u0438\u0434\u0435\u043e \u0447\u0435\u0440\u0435\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, Web-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24131,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32314","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47WebRTC \u0438 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435: \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u0438\u0434\u0435\u043e \u0441 \u043a\u0430\u043c\u0435\u0440 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:46:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:46:17+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47WebRTC i video nadzor: kako smo pobijedili ka\u0161njenje videa s kamera | ProHoster","description":"Od prvih dana rada na.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47WebRTC \u0438 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435: \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u0438\u0434\u0435\u043e \u0441 \u043a\u0430\u043c\u0435\u0440 | ProHoster","og:description":"\u0421 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434.","og:url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:46:17+00:00","article:modified_time":"2019-10-31T18:46:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32314","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 10:17:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:17:44","updated":"2026-01-21 10:17:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/32314","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=32314"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/32314\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/24131"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=32314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=32314"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=32314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}