{"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\/da\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","title":{"rendered":"WebRTC og videooverv\u00e5gning: hvordan vi overvandt videoforsinkelsen fra kameraerne","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"WebRTC og videooverv\u00e5gning: hvordan vi overvandt videoforsinkelsen fra kameraerne\" src=\"\/wp-content\/uploads\/2019\/04\/d185b546f5fc4c15021481c0cc2fedbd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFra de f\u00f8rste dage af arbejdet med det cloud-baserede videooverv\u00e5gningssystem st\u00f8dte vi p\u00e5 et problem, hvis l\u00f8sning ville have kostet os alt - det var vores Everest, hvis bestigning tog utallige kr\u00e6fter, men nu, endelig, har vi plantet iss\u00f8en i toppen af den multiplatformede g\u00e5de.<\/p>\n<p>Systemet til at transmittere lyd og video over internettet m\u00e5 ikke afh\u00e6nge af hardware, web-klienter og de standarder, de underst\u00f8tter, og skal fungere korrekt, selv n\u00e5r der er Network Address Translators og firewalls. Brugeren af cloud-videooverv\u00e5gning \u00f8nsker at f\u00e5 adgang til tjenesten, selvom han bruger analoge kameraer, mens han helst ser live video p\u00e5 de mest moderne enheder. <\/p>\n<p>Det er meget vigtigt, at brugeren \u00f8nsker at se video med minimal forsinkelse. Den praktisk talt eneste mulighed for at vise video med lav forsinkelse i en browser er at bruge WebRTC (web real-time communications). WebRTC er et s\u00e6t teknologier til peer-to-peer transmission af video og lyd i browsere, designet til at sende og afspille videostr\u00f8mme med lav forsinkelse. Dette sker blandt andet ved hj\u00e6lp af protokollen UDP.<\/p>\n<p>F\u00f8r vi fort\u00e6ller dig, hvad den nye motor giver brugeren, vil vi minde dig om, hvorfor vi underst\u00f8tter HLS-teknologier, og hvad vi har besluttet at bev\u00e6ge os videre mod.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>HLS-motor: fordele og ulemper<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC og videooverv\u00e5gning: hvordan vi overvandt videoforsinkelsen fra kameraerne\" 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>HLS-teknologien (HTTP Live Streaming) blev udviklet af Apple, s\u00e5 det er ikke overraskende, at den f\u00f8rst blev underst\u00f8ttet p\u00e5 enheder fra dette brand. I dag kan de fleste TV-bokse og mange enheder, der k\u00f8rer p\u00e5 Android, ogs\u00e5 afspille video i HLS-format.<\/p>\n<p>HLS-motoren bruger den velkendte videokodek H264 til videooverf\u00f8rsel i kombination med AAC- eller MP3-lydstr\u00f8mme. Hele str\u00f8mmen af audio- og videodata pakkes ind i transportbeholderen MPEG-TS. For at overf\u00f8re via HTTP opdeles informationen i str\u00f8mmen i fragmenter, der beskrives i m3u8-playlister. F\u00f8rst derefter overf\u00f8res disse fragmenter sammen med playlisterne via HTTP. Opdelingen i fragmenter medf\u00f8rer automatisk en forsinkelse i sekunder. Denne egenskab ved MPEG-TS-beholderen. <\/p>\n<p>HLS-motoren underst\u00f8tter ogs\u00e5 multi-bitrate streams, Live\/VOD. <\/p>\n<p><b>De vigtigste fordele ved HLS:<\/b><\/p>\n<ul>\n<li>indbygget support i alle store browsere;<\/li>\n<li>nem at implementere (sammenlignet med WebRTC);<\/li>\n<li>det er meget bekvemt og effektivt at organisere forskellige streams til et stort publikum, da man kan indl\u00e6se segmenter \u00e9n gang p\u00e5 CDN.<\/li>\n<\/ul>\n<p>\nP\u00e5 trods af motorens enkelhed er der ikke alt s\u00e5 glat som det ser ud. Hovedproblemet er, at udviklerne af tredjeparts-afspillere er afveget fra Apples anbefalinger, is\u00e6r med hensyn til underst\u00f8ttede lydformater. Is\u00e6r er mange udviklere begyndt at tilf\u00f8je support for popul\u00e6re lydbaser som mpeg2 video, mpeg2 audio osv. Som f\u00f8lge heraf m\u00e5tte der oprettes forskellige formattyper af playlister til forskellige afspillere.<\/p>\n<p>Men et af de st\u00f8rste problemer med HLS-motoren er den h\u00f8je forsinkelse i datatransmission.<\/p>\n<h2>Oprindelserne til \"forsinkelserne\"<\/h2>\n<p>\nHoved\u00e5rsagen til den h\u00f8je forsinkelse i HLS ligger i, at programm\u00f8rerne skabte motoren for at opn\u00e5 det maksimale billedkvalitet. Derfor er parametrene for den anvendte frame-interval og bufferst\u00f8rrelse til afspilning ikke egnet til live videotransmissioner. Dette f\u00f8rer til en relativt h\u00f8j forsinkelse i videofeedet, som kan v\u00e6re 5-7 sekunder.<\/p>\n<p>P\u00e5 den ene side er det lidt, eksempelvis for dem, der ser en film fra en video-hostingserver. Men i videooverv\u00e5gningssystemer kan forsinkelsen i videofeedet v\u00e6re af stor betydning.<\/p>\n<p>Hvis du overv\u00e5ger et kontor, hvor medarbejderne l\u00f8sner sig fra sk\u00e6rmene en gang i timen, betyder en forsinkelse p\u00e5 5 sekunder ingen betydning. Men folk er begyndt at klage over, at for eksempel ved transmissionen af en fodboldkamp allerede er blevet skrevet GOOOOL i chatten, men det er stadig ikke p\u00e5 videoen :). Vi har allerede nogle bruger-cases, hvor Ivideon n\u00e6sten skal erstatte Skype.<\/p>\n<p>Kan man overvinde forsinkelsen i HLS? Svaret p\u00e5 dette sp\u00f8rgsm\u00e5l lyder som en erfarens rottebek\u00e6mper, der holder en forel\u00e6sning for nybegyndere i skadedyrsbek\u00e6mpelse: \"Rottterne kan ikke udraderes, men deres antal kan reduceres til et rimeligt minimum.\" S\u00e5dan er det ogs\u00e5 med forsinkelsen i HLS, det er ikke muligt at fjerne det helt, men der er l\u00f8sninger p\u00e5 markedet, der v\u00e6sentligt kan reducere forsinkelsen.<\/p>\n<h2>Fin segmentering<\/h2>\n<p>\nEn anden ulempe ved motoren er brugen af sm\u00e5 filer til dataoverf\u00f8rsel. Hvad er der egentlig galt med det?<\/p>\n<p>Alle, der har fors\u00f8gt at kopiere et stort antal sm\u00e5 filer fra et medie til et andet, har sikkert bem\u00e6rket, at skrivehastigheden for et s\u00e5dant s\u00e6t er meget lavere end for en stor fil af samme st\u00f8rrelse. Intensiteten af adgangen til harddisken stiger ogs\u00e5 betydeligt, hvilket generelt p\u00e5virker computerens ydeevne negativt. Derfor bidrager overf\u00f8rslen af videodata i form af sm\u00e5 10 sekunder lange fragmenter ogs\u00e5 til en \u00f8get latens i motoren.<\/p>\n<p>Lad os kort opsummere alle fordele og ulemper ved HLS-teknologien.<\/p>\n<p><b>Fordele ved HLS:<\/b><\/p>\n<ol>\n<li>Mulighed for at arbejde med alle enheder. Du kan se video p\u00e5 enhver moderne enhed, hvad enten det er en smartphone, tablet, laptop eller desktop-PC. Det vigtigste er, at webbrowseren er af en moderne version og kompatibel med HTML5 og Media Source Extensions.<\/li>\n<li>Fremragende billedkvalitet. Den anvendte funktion til adaptiv dataoverf\u00f8rsel muligg\u00f8r dynamisk \u00e6ndring af kvaliteten p\u00e5 det transmitterede videobillede baseret p\u00e5 b\u00e5ndbredden af internetforbindelsen, samtidig med at algoritmen str\u00e6ber efter at bevare kvaliteten maksimal.<\/li>\n<li>Der er ikke behov for kompliceret ops\u00e6tning af brugerens udstyr.<\/li>\n<\/ol>\n<p>\n<b>Ulemper:<\/b><\/p>\n<ol>\n<li>Begr\u00e6nset st\u00f8tte til drift af motoren p\u00e5 nogle enheder.<\/li>\n<li>H\u00f8j latens ved overf\u00f8rsel af billede.<\/li>\n<li>Betydelig stigning i overhead og kompleksitet i optimeringen p\u00e5 grund af brugen af sm\u00e5 filer. P\u00e5 grund af containerens egenskaber vil vi aldrig kunne opn\u00e5 en latens under st\u00f8rrelsen af segmentet.<\/li>\n<\/ol>\n<p>\nUlemperne ved HLS overskygger for os dens fordele og har f\u00e5et os til at lede efter alternative l\u00f8sninger.<\/p>\n<h2>Hvad er WebRTC<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC og videooverv\u00e5gning: hvordan vi overvandt videoforsinkelsen fra kameraerne\" src=\"\/wp-content\/uploads\/2019\/04\/0cf3c13dba71f6b268113af77841e521.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(<noindex>c<\/noindex>)<\/p>\n<p>WebRTC-platformen blev udviklet af Google i 2011 til transmission af streaming video- og lyddata mellem browsere og mobile applikationer med minimal latens. Dette anvender standardprotokollen UDP og specielle algoritmer til flowkontrol. I dag er det et open source-projekt, der aktivt underst\u00f8ttes og udvikles af Google.<\/p>\n<p>WebRTC er et s\u00e6t teknologier til peer-to-peer transmission af video og lyd. Det betyder, at brugernes browsere med WebRTC kan overf\u00f8re data direkte til hinanden uden at bruge eksterne servere til opbevaring og behandling af data. Al information behandles ogs\u00e5 af browserne og mobilapplikationerne for slutbrugerne.<\/p>\n<p>Brugervenligheden og de store muligheder ved denne teknologi er blevet v\u00e6rdsat af udviklerne af alle popul\u00e6re browsere. I dag er WebRTC underst\u00f8ttet i Mozilla Firefox, Opera, Google Chrome (og alle browsere baseret p\u00e5 Chromium), samt i mobilapplikationer til Android og iOS.<\/p>\n<p>P\u00e5 trods af sine ubestridelige fordele har WebRTC flere v\u00e6sentlige ulemper. <\/p>\n<h2>Vanskeligheder ved valg<\/h2>\n<p>\nWebRTC-teknologien er meget mere kompleks i forhold til netv\u00e6rksinteraktioner, da den er baseret p\u00e5 P2P. Den er sv\u00e6r at fejls\u00f8ge, teste, og den kan opf\u00f8re sig uforudsigeligt. Desuden skal vi overvinde NAT- og firewallproblemer og sikre drift i netv\u00e6rk, hvor UDP er blokeret.<\/p>\n<p>Google's implementering af WebRTC er meget sv\u00e6r at bruge. Der er endda et helt firma, der tilbyder tjenester til opbygning af SDK. Derudover var det meget vanskeligt at integrere Googles implementering med vores system, s\u00e5 vi ikke skulle re-kode alt video.<\/p>\n<p>Vi har l\u00e6nge \u00f8nsket at give brugerne mulighed for at arbejde med et fuldt \u2018live\u2019 videoindhold og minimere forsinkelsen i billedet p\u00e5 sk\u00e6rmen i forhold til selve begivenhederne. Desuden ville vi g\u00f8re det mere komfortabelt at bruge PTZ-kameraer, hvor forsinkelser har kritisk betydning.<\/p>\n<p>Under hensyntagen til, at andre implementeringer til at bek\u00e6mpe lag stadig har begr\u00e6nsede funktioner og fungerer betydeligt d\u00e5rligere, besluttede vi at bruge WebRTC. <\/p>\n<h2>Hvad vi har gjort<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC og videooverv\u00e5gning: hvordan vi overvandt videoforsinkelsen fra kameraerne\" src=\"\/wp-content\/uploads\/2019\/04\/714f94de43114e552e4d818e9ec927ae.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAt implementere WebRTC-platformen korrekt er en udfordrende opgave. Enhver fejl eller un\u00f8jagtighed kan f\u00f8re til, at forsinkelsen i videotransmission ikke kun ikke reduceres sammenlignet med andre platforme, men ogs\u00e5 kan \u00f8ges.<\/p>\n<p>For at WebRTC skal fungere korrekt, er det f\u00f8rst og fremmest n\u00f8dvendigt at gennemf\u00f8re en teknologisk modernisering af stakken til web-video. Det var det, vi gjorde.<\/p>\n<p>Vi implementerede f\u00f8rst WebRTC signaleringsprotokol over Websocket og satte ogs\u00e5 en WebRTC peer-server op i skyen baseret p\u00e5 SDK fra webrtc.org. Dens opgave er at distribuere videostr\u00f8mme til klientens WebRTC peer i H.264 + Opus\/G.711 format uden at omkode videoen.<\/p>\n<p>Vi valgte Websocket som signaleringsprotokol, fordi den allerede har solid underst\u00f8ttelse i alle popul\u00e6re webbrowsere. Dette g\u00f8r det muligt at reducere ikke kun udviklingsomkostningerne, men ogs\u00e5 at spare tid og ressourcer p\u00e5 gentagne TCP og TLS handshake i forhold til AJAX.<\/p>\n<p>Problemet er, at WebRTC som standard ikke giver en signaleringsprotokol, som er n\u00f8dvendig for korrekt ops\u00e6tning, vedligeholdelse og afbrydelse af realtids videokommunikation mellem kilde- og klientapplikationer.<\/p>\n<p>Og for at implementere signaleringsteknologien selv, var vi n\u00f8dt til at udvikle vores egen signalserver med st\u00f8tte for flere webprotokoller (Websocket, WebRTC). Samt med muligheden for sikker styring af sessioner og notifikationer i realtid, videostyring og mange andre parametre.<\/p>\n<p>Vi har overvundet P2P-begr\u00e6nsningerne ved at reducere latency, ikke gennem P2P, men ved at bruge UDP og flowkontrol rettet mod at minimere forsinkelsen. Dette er ogs\u00e5 indbygget i WebRTC, da det prim\u00e6re use-case er P2P samtaler gennem browseren.<\/p>\n<p>I den mobile klient implementerede vi en spiller ved hj\u00e6lp af SDK fra webrtc.org, da kun den har en korrekt implementering af flowkontrol, alle kendte Forward Error Correction (FEC) skemaer, og en ordentlig mekanisme til genudsendelse af pakker for alle browsere. Det er ogs\u00e5 vigtigt, at SDK webrtc.org aktivt udvikles af Google.<\/p>\n<h2>Hvad er resultatet af implementeringen af WebRTC?<\/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 \/>\nFor at se live video fra kameraer har vi tilf\u00f8jet en ny optimeret spiller baseret p\u00e5 WebRTC til brugerens konto. Den sikrer h\u00f8j videoloadningshastighed og eliminerer fuldst\u00e6ndigt problemet med forsinkelsesm\u00e6ngde over tid ved visningen.<\/p>\n<p>Efter implementeringen af WebRTC-support i Ivideons cloudservice kan vi med fuld sikkerhed sige, at vores kunder nu har adgang til at se fuldt live-video. I \u00f8jeblikket er forsinkelsen ved streaming af video ikke mere end \u00e9t sekund! Til sammenligning gav den tidligere HLS-motor video med en forsinkelse p\u00e5 5-7 sekunder. Forskellen i hastighed p\u00e5 videoafspilningen er meget v\u00e6sentlig, og brugeren vil straks bem\u00e6rke den efter at have begyndt at bruge vores videoservice.<\/p>\n<p>Som vi forudsagde, har implementeringen af den nye afspiller forbedret responsen fra PTZ og stemmesamtalen med kameraet.<\/p>\n<p><img decoding=\"async\" alt=\"WebRTC og videooverv\u00e5gning: hvordan vi overvandt videoforsinkelsen fra kameraerne\" src=\"\/wp-content\/uploads\/2019\/04\/b6775b11fbc6d97a7cede32cccc471ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDer er kun \u00e9t fint punkt, som vi \u00f8nsker at p\u00e5pege. Den nye WebRTC-afspiller fungerer stadig i testmode. Derfor aktiverer vi den ikke som standard for alle vores kunder. Men du kan aktivere den selv ved at t\u00e6nde for den relevante indstilling i kamerainstillingerne (for at g\u00f8re dette skal du g\u00e5 til <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.ivideon.com\/my\/\">din konto<\/a><\/noindex>).<\/p>\n<h2>Funktioner ved implementeringen af WebRTC i Ivideon-service<\/h2>\n<p>\n<img decoding=\"async\" alt=\"WebRTC og videooverv\u00e5gning: hvordan vi overvandt videoforsinkelsen fra kameraerne\" src=\"\/wp-content\/uploads\/2019\/04\/247e640fa9334a0c144cc6b4296dc23b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWebRTC er i \u00f8jeblikket stadig en eksperimentel teknologi. Dens support er stadig ikke korrekt implementeret i alle browsere og brugerudstyr samt ikke i alle kameraer.<\/p>\n<p>Dette er netop grunden til, at vi endnu ikke har gjort WebRTC-afspilleren til standard for alle brugere.<\/p>\n<p>Indtil videre anbefaler vi at bruge WebRTC kun i Google Chrome-browsere. De seneste versioner af Firefox og Safari underst\u00f8tter ogs\u00e5 denne teknologi, men desv\u00e6rre er de stadig ustabile. <\/p>\n<p>Vi har endnu ikke implementeret WebRTC-support til browsere p\u00e5 mobile enheder. I \u00f8jeblikket, hvis du logger ind fra en mobile enhed og aktiverer WebRTC, vil denne tilstand ikke fungere. Men WebRTC er tilg\u00e6ngeligt i vores mobile applikationer til <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.ivideon.client&amp;hl=ru\">Android<\/a><\/noindex> og <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>Og for at afslutte fort\u00e6llingen om funktionerne ved implementeringen af WebRTC i vores service, lad os fremh\u00e6ve yderligere to fine punkter.<\/p>\n<p>For det f\u00f8rste er teknologien designet til at streame netop live-video i realtid. Derfor, hvis b\u00e5ndbredden p\u00e5 din kanal er utilstr\u00e6kkelig til at overf\u00f8re video, vil du bem\u00e6rke, at der falder billedeudfald (med HLS vil du bem\u00e6rke video-stillinger og \u00f8get forsinkelse, men billederne vil ikke falde ud), men videoen vil stadig blive streamet i realtid.<\/p>\n<p>For det andet, da teknologien er designet til at arbejde med live video i realtid, bruger vi den ikke til at arbejde med arkiverede videodata.<\/p>\n<h2>Andre \u00e6ndringer i tjenesten<\/h2>\n<p>\nI \u00f8jeblikket deltager Flash ikke l\u00e6ngere i mekanismen for automatisk valg af motoren. Du kan stadig bruge s\u00e5dan en afspiller, men du skal v\u00e6lge den manuelt i indstillingerne for din konto eller kameraet. Dette er ikke en modef\u00e6nomen, men if\u00f8lge vores service-statistik er der n\u00e6sten ikke brugere tilbage, der arbejder med Flash. Og ved at fors\u00f8ge at bestemme, om brugerens browser underst\u00f8tter det, mister vi omkring 2 sekunder af v\u00e6rdifuld tid. <\/p>\n<p>Her er en kort oversigt over de \u00e6ndringer, du kan forvente i vores cloud-videosystem og din konto. Bliv hos os og f\u00f8lg med i nyhederne!<br \/>\n<br \/>Kilde: <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.3 - 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\/da\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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 og videooverv\u00e5gning: hvordan vi overvandt forsinkelsen i videoen fra kameraerne | ProHoster","description":"Fra de f\u00f8rste dage af arbejdet med.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/webrtc-i-videonablyudenie-kak-my-pobedili-zaderzhku-video-s-kamer","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/32314","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=32314"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/32314\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/24131"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=32314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=32314"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=32314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}