WebRTC a Videoiwwerwaachung: wéi mir Videolatenz vu Kameraen besiegt hunn

WebRTC a Videoiwwerwaachung: wéi mir Videolatenz vu Kameraen besiegt hunn

Vun den Ă©ischten Deeg un der Aarbecht un engem Cloud-Video-Iwwerwaachungssystem, ware mir mat engem Problem konfrontĂ©iert, ouni eng LĂ©isung, fir dĂ©i mir op Ivideon opginn - dĂ«st war eisen Everest, Kloteren, dee vill Energie gedauert huet, awer elo hu mir endlech eng Äis Axt an d'SpĂ«tzt vum Cross-Plattform Puzzel gestoppt.

De System fir d'Iwwerdroung vun Audio a Video iwwer den Internet sollt net vun AusrĂŒstung, Webklienten an de Standarden ofhĂ€ngeg sinn, dĂ©i se Ă«nnerstĂ«tzen, an och korrekt an der PrĂ€senz vun Network Address Translatoren a Firewalls funktionnĂ©ieren. E Cloud Video Iwwerwaachungsbenotzer wĂ«ll op de Service zougrĂ€ifen, och wann hien analog Kameraen benotzt, a kuckt lĂ©iwer Live Video Sendungen um modernsten Apparat.

Et ass ganz bedeitend datt de Benotzer Videoe mat minimaler Verspéidung kucke wëllt. Bal deen eenzege Wee fir Video mat gerénger latency an engem Browser ze weisen ass WebRTC (Web EchtzÀit Kommunikatiounen). WebRTC ass eng Rei vun Technologien fir Peer-to-Peer Iwwerdroung vu Video an Audio a Browser, ursprénglech fir d'Transmissioun an d'Wiedergabe vu Videostreamen mat gerénger latency entwéckelt. Fir dësen Zweck gëtt ënner anerem den UDP-Protokoll benotzt.

Ier mir Iech soen wat den neie Motor dem Benotzer gëtt, wÀerte mir Iech drun erënneren firwat a firwat mir HLS Technologien ënnerstëtzen, a firwat mir decidéiert hunn weider ze goen.

HLS Motor: Virdeeler an Nodeeler

WebRTC a Videoiwwerwaachung: wéi mir Videolatenz vu Kameraen besiegt hunn
(c)

D'HLS-Technologie (HTTP Live Streaming) gouf vun Apple entwéckelt, dofir ass et keng Iwwerraschung, datt se fir d'éischt op Apple-GerÀter ënnerstëtzt gouf. Hautdesdaags gëtt HLS-Video och vu bal all Set-Top-Boxen a ville GerÀter mat dësem Betribssystem ënnerstëtzt. Android.

Den HLS Motor benotzt de bekannte H264 Video Codec a Kombinatioun mat AAC oder MP3 Audio Streams fir Videodaten ze streamen. De ganzen Audio- a Videodatenstroum ass an en MPEG-TS TransportbehÀlter verpackt. Fir d'Iwwerdroung iwwer den HTTP-Protokoll ass d'Informatioun, déi am Stream enthale sinn, a Fragmenter opgedeelt, déi a m3u8 Playlists beschriwwe ginn. An nëmmen dann ginn dës Fragmenter, zesumme mat Playlists, iwwer HTTP iwwerdroen. Chunking bedeit automatesch eng Verzögerung a Sekonnen. Dëst ass eng Feature vum MPEG-TS Container.

Den HLS-Motor ënnerstëtzt och Multibitrate Streams, Live / VOD.

Haaptvirdeeler vun HLS:

  • gebaut-an ËnnerstĂ«tzung an all grĂ©isser Browser;
  • Einfachheet vun der Ëmsetzung (am Verglach mam WebRTC);
  • Et ass ganz bequem an effizient all Zorte vu Sendungen un e grousse Publikum ze organisĂ©ieren wĂ©inst der Tatsaach datt Segmenter eemol op en CDN eropgeluede kĂ«nne ginn.

Trotz der Einfachheet vum Motor ass net alles sou glat wéi et schéngt. Den Haaptproblem ass datt Drëtt-Partei Player Entwéckler ewech vun Apple Empfehlungen geplënnert sinn, zum Beispill a punkto ënnerstëtzt Audioformate. Besonnesch vill Entwéckler hunn ugefaang d'FÀhigkeit ze addéieren fir mat populÀre Audio Streams ze schaffen: mpeg2 Video, mpeg2 Audio, etc.. Als Resultat hunn se verschidde Playlistformate fir verschidde Spiller erstallt.

Awer ee vun de gréisste Probleemer mam HLS-Motor ass déi héich latency beim Datentransfer.

D'Origine vun "Bremsen"

Den Haaptgrond fir déi héich Latenz vun HLS lÀit an der Tatsaach datt Programméierer de Motor erstallt hunn fir déi héchst Qualitéitsbilder ze kréien. Dofir sinn d'Parameter vum benotzte Frame-Intervall an d'Gréisst vum Playback-Puffer einfach net gëeegent fir Live Video Sendungen. Dofir gëtt et eng zimlech héich Verspéidung bei der Iwwerdroung vu Videomaterial, wat 5-7 Sekonnen ka sinn.

EngersÀits ass dëst net vill, zum Beispill fir déi, déi e Film vun engem Videohosting-Server kucken. Awer fir Videoiwwerwaachungssystemer kann d'Verzögerung beim Iwwerdroen vu Videomaterial ganz wichteg sinn.

Wann Dir e BĂŒro kuckt, wou d'Mataarbechter eemol d'Stonn vun hire Monitore kucken, dann ass eng Verzögerung vu 5 Sekonnen guer net wichteg. Awer d'Leit hunn ugefaang ze beschwĂ©ieren datt se zum Beispill beim Iwwerdroen vun engem Fussballmatch schonn GOOOOL am Chat geschriwwen hunn, awer dat ass nach net um Video :). Mir hu schonn eng Rei vu BenotzerfĂ€ll wou Ivideon Skype praktesch sollt ersetzen.

Ass et mĂ©iglech Latenz an HLS ze schloen? D'Äntwert op dĂ«s Fro klĂ©ngt wĂ©i d'Ried vun engem erfuerene Ratten-Exterminator bei engem Virtrag fir UfĂ€nger PestbekĂ€mpfungsspezialisten: "Ratten kĂ«nnen net ausgeschloss ginn, awer hir Zuele kĂ«nnen op e verstĂ€nnegen Minimum reduzĂ©iert ginn." Selwecht mat der VerspĂ©idung an HLS, et wĂ€ert net mĂ©iglech sinn et op Null ze reduzĂ©ieren, awer et gi LĂ©isungen um Maart dĂ©i d'VerspĂ©idung wesentlech reduzĂ©ieren.

Schéin Schnëtt

En aneren Nodeel vum Motor ass d'Benotzung vu klenge Dateien fir den DatenĂŒbertragung. Et gĂ©if schĂ©ngen datt wat mat dĂ«sem falsch ass?

Jiddereen deen probéiert huet eng grouss Zuel vu klenge Fichier vun engem Medium op en anert ze kopéieren, huet wahrscheinlech gemierkt datt d'Schreifgeschwindegkeet vun esou engem Set vill méi niddereg ass wéi eng grouss Datei vun der selwechter Gréisst. An d'Intensitéit vum Zougang zu der Festplack erhéicht wesentlech, wat allgemeng negativ op d'Performance vum ganze Computer beaflosst. Dofir dréit d'Iwwerdroung vu Videodaten a klenge 10 Sekonne Stécker och zur verstÀerkter Motorlatenz bÀi.

Loosst eis all d'Virdeeler an Nodeeler vun der HLS Technologie kuerz zesummefaassen.

Virdeeler vun HLS:

  1. FÀegkeet fir mat all Apparat ze schaffen. Dir kënnt Videoen op all modernen Apparat kucken, sief et e Smartphone, Tablet, Laptop oder Desktop PC. Den Haapt Saach ass datt de Webbrowser aktuell ass a kompatibel mat HTML5 a Media Source Extensions ass.
  2. Exzellent BildqualitĂ©it. D'adaptiv DatenĂŒbertragungsfunktioun benotzt erlaabt Iech dynamesch d'QualitĂ©it vum iwwerdroenen Video ze Ă€nneren ofhĂ€ngeg vun der Bandbreedung vun der Internetverbindung, wĂ€hrend den Algorithmus bemĂ©it fir maximal QualitĂ©it ze halen.
  3. Et gĂ«tt kee Besoin fir eng komplex Konfiguratioun vun der AusrĂŒstung vum Benotzer.

Nodeeler:

  1. LimitĂ©iert ËnnerstĂ«tzung fir mam Motor op e puer Apparater ze schaffen.
  2. Héich Verspéidungen an der Bildiwwerdroung.
  3. Bedeitend Erhéijung vun Overhead a Komplexitéit vun der Optimiséierung wéinst der Benotzung vu klenge Dateien. Wéinst der Natur vum Container kënne mir ni eng latency méi niddereg wéi d'Segmentgréisst kréien.

D'Nodeeler vun HLS waren méi wéi seng Virdeeler fir eis an hunn eis gezwongen no alternativen Optiounen ze sichen.

Wat ass WebRTC

WebRTC a Videoiwwerwaachung: wéi mir Videolatenz vu Kameraen besiegt hunn
(c)

D'WebRTC Plattform gouf vu Google am Joer 2011 entwéckelt fir Streaming Video an Audiodaten tëscht Browser a mobilen Uwendungen mat minimaler latency ze vermëttelen. Fir dëst gëtt de Standard UDP Protokoll a spezielle Flowkontrollalgorithmen benotzt. Haut ass et en Open Source Projet, et gëtt aktiv vu Google ënnerhal a gëtt entwéckelt.

WebRTC ass eng Rei vun Technologien fir Peer-to-Peer Video an Audio Iwwerdroung. Dat ass, zum Beispill, Benotzer Browser, déi WebRTC benotzen, kënnen Daten direkt uneneen transferéieren, ouni Remote Serveren ze benotzen fir Daten ze spÀicheren an ze veraarbecht. All Informatioun gëtt och vun den Endbenotzer Browser a mobilen Uwendungen veraarbecht.

D'Komfort an dĂ©i Ă«mfangrĂ€ich MĂ©iglechkeeten vun dĂ«ser Technologie goufe vun den EntwĂ©ckler vun alle populĂ€re Browser geschĂ€tzt. WebRTC-ËnnerstĂ«tzung ass de Moment a Mozilla Firefox, Opera, Google Chrome (an all Chromium-basĂ©ierte Browser), souwĂ©i a mobilen Apps verfĂŒgbar. Android an iOS.

Fir all seng zweifelhaft Virdeeler huet WebRTC verschidde bedeitend Nodeeler.

Schwieregkeeten

WebRTC Technologie ass vill méi komplex wat d'Netzwierkinteraktiounen ugeet wéinst der Tatsaach datt et ëm P2P geet. Et ass schwéier ze debuggen, testen a kann onberechenbar behuelen. Zur selwechter ZÀit musse mir NAT a Firewall iwwerwannen, mir mussen d'Operatioun an Netzwierker garantéieren, wou UDP blockéiert ass.

Google's WebRTC Implementatioun ass ganz schwéier ze benotzen. Et gëtt souguer eng ganz Firma déi SDK Assemblée Servicer ubitt. Plus, d'Implementatioun vu Google war ganz schwéier mat eisem System z'integréieren ouni de ganze Video nei ze kodéieren.

Wéi och ëmmer, mir wollte laang de Benotzer d'Méiglechkeet ginn mat vollwÀertege "Live" Video ze schaffen an d'Laag tëscht dem Bild um Bildschierm an den Eventer selwer ze minimiséieren. Plus, mir haten e Wonsch d'Benotzung vun PTZ Kameraen ze maachen, wou Verspéidungen kritesch sinn, méi komfortabel.

Bedenkt datt aner Anti-Lag Implementatiounen nach ëmmer limitéiert Funktionalitéit hunn a bemierkenswÀert méi schlecht funktionnéieren, hu mir decidéiert WebRTC ze benotzen.

Wat hu mir gemaach

WebRTC a Videoiwwerwaachung: wéi mir Videolatenz vu Kameraen besiegt hunn

Richteg Ëmsetzung vun der WebRTC Plattform ass keng einfach Aufgab. All falsch Berechnung oder Ongenauegkeet kann zu VerspĂ©idungen an der Videoiwwerdroung fĂ©ieren, net nĂ«mmen net erofgoen am Verglach mat anere Plattformen, mee souguer eropgoen.

Fir WebRTC richteg ze schaffen, éischtens ass et néideg eng technologesch Upgrade vum Stack ze maachen fir mat Webvideo ze schaffen. Dat ass wat mir gemaach hunn.

Als éischt hu mir e WebRTC Signaléierungsprotokollserver iwwer Websocket implementéiert, an och e WebRTC Peer Server an der Wollek ofgebaut baséiert op der webrtc.org SDK. Seng Aufgab ass Video Streams op Client WebRTC Peer am H.264 + Opus/G.711 Format ouni Video Transcodéierung ze verdeelen.

Mir hunn Websocket als SignalisĂ©ierungsprotokoll gewielt well et scho qualitativ hĂ©ichwĂ€erteg ËnnerstĂ«tzung an all populĂ€re Webbrowser huet. Dofir kĂ«nnt Dir net nĂ«mmen EntwĂ©cklungsoverhead wesentlech reduzĂ©ieren, awer och vermeiden ZĂ€it a Ressourcen op widderholl TCP an TLS Handshake am Verglach zum AJAX ze verschwenden.

D'Tatsaach ass datt, Par défaut, WebRTC net de Signaléierungsprotokoll ubitt, deen néideg ass fir richteg ze konfiguréieren, z'erhalen an d'EchtzÀit Videokommunikatioun tëscht der Quell an dem Client Uwendungen ofzeschléissen.

A fir onofhĂ€ngeg SignalisĂ©ierungstechnologie Ă«mzesetzen, brauche mir eisen eegene Signalserver mat ËnnerstĂ«tzung fir verschidde Webprotokollen (Websocet, WebRTC) z'entwĂ©ckelen. A mat der FĂ€egkeet fir Sessiounen an Notifikatiounen an EchtzĂ€it sĂ©cher ze managen, Videomanagement a vill mĂ©i.

Mir hunn d'AschrÀnkungen vu P2P iwwerwonne andeems d'Latenz net duerch P2P reduzéiert gëtt, awer duerch UDP a Flowkontrolle fir d'Latenz ze reduzéieren. Dëst ass och a WebRTC agebaut, well den Haaptgebrauchsfall p2p Gespréicher iwwer e Browser ass.

Am mobilen Client hu mir de Spiller mat der webrtc.org SDK implementéiert, well nëmmen et korrekt Flowkontroll implementéiert, huet all déi bekannt Forward Error Correction (FEC) Schemaen, a korrekt implementéiert de Mechanismus fir PÀckchen fir all Browser nei ze schécken. Et ass och wichteg datt d'webrtc.org SDK aktiv vu Google entwéckelt gëtt.

Wat ass d'Resultat vun der Ëmsetzung vun WebRTC?


Fir Live Video vu Kameraen ze gesinn, hu mir en neien optimisĂ©ierte Spiller basĂ©iert op WebRTC op Äre persĂ©inleche Kont bĂ€igefĂŒĂŒgt. Et bitt sĂ©ier Video Luede Geschwindegkeet an eliminĂ©iert komplett de Problem vun der latency akkumulĂ©iert wĂ©i d'SichtzĂ€it eropgeet.

No der AfĂ©ierung vun WebRTC Support am Ivideon Cloud Service, kĂ«nne mir mat voller Vertraue soen datt eis Clienten elo vollwĂ€erteg Live Video kucken. Elo ass d'VerspĂ©idung bei der Sendung vu Videosequenzen net mĂ©i wĂ©i eng Sekonn! Zum Verglach huet de frĂ©iere HLS-Motor Video-Liwwerung mat enger Verzögerung vu 5-7 Sekonnen geliwwert. Den Ënnerscheed an der Videodemonstratiounsgeschwindegkeet ass ganz bedeitend, an de Benotzer mierkt et direkt nodeems Dir ugefaang mat eisem Videoservice ze schaffen.

WĂ©i mir erwaart hunn, huet d'Ëmsetzung vum neie Spiller d'ReaktiounsfĂ€egkeet vu PTZ a StĂ«mmkommunikatioun mat der Kamera verbessert.

WebRTC a Videoiwwerwaachung: wéi mir Videolatenz vu Kameraen besiegt hunn

Et gëtt nëmmen ee subtile Punkt, op dee mir opmierksam wëllen opmierksam maachen. Den neie WebRTC Player funktionnéiert am Moment am Testmodus. An dofir aktivéiere mir et als Standard net fir all eise Clienten. Awer Dir kënnt et selwer aktivéieren andeems Dir de entspriechende Element an de Kameraastellungen aktivéiert (fir dëst ze maachen, gitt op perséinleche Kont).

Features vun der Ëmsetzung vu WebRTC am Ivideon Service

WebRTC a Videoiwwerwaachung: wéi mir Videolatenz vu Kameraen besiegt hunn

WebRTC ass nach Ă«mmer eng experimentell Technologie am Moment. Seng ËnnerstĂ«tzung ass nach net korrekt an all Browser a BenotzergerĂ€ter Ă«mgesat, an och net an all Kameraen.

Genee dofir hu mir de WebRTC Player nach net als Standard fir all Benotzer gemaach.

Fir de Moment recommandéiere mir WebRTC nëmmen a Google Chrome Browser ze benotzen. Déi lescht Versioune vu Firefox a Safari ënnerstëtzen och dës Technologie, awer leider ass se nach ëmmer onbestÀnneg.

Mir hunn nach net WebRTC Support fir Browser op mobilen Apparater implementĂ©iert. De Moment, wann Dir Iech vun engem mobilen Apparat aloggen an WebRTC aktivĂ©iert, funktionnĂ©iert dĂ«se Modus net. WĂ©i och Ă«mmer, WebRTC ass verfĂŒgbar an eise mobilen Uwendungen fir Android Đž iOS.

A schlussendlech d'Geschicht iwwer d'Features vun der WebRTC Implementatioun an eisem Service ofschléissen, loosst eis zwee méi subtile Punkten notéieren.

Als Ă©ischt ass d'Technologie fokussĂ©iert op Live Video an EchtzĂ€it ze iwwerdroen. Dofir, wann Äre Kanal net genuch Bandbreedung huet fir de Video ze vermĂ«ttelen, bemierkt Dir Frame Drops (mat HLS mierkt Dir Video Fading a verstĂ€erkte Latenz, awer et gĂ«tt keng Frame Drops), awer de Video gĂ«tt nach Ă«mmer an real iwwerdroen ZĂ€it.

Zweetens, well d'Technologie entwéckelt ass fir speziell mat Live Video an EchtzÀit ze schaffen, benotze mir se net fir mat archivéierten Videodaten ze schaffen.

Aner Ännerungen am Service

Zu dëser ZÀit ass Flash net méi am automatesche Motorauswielmechanismus involvéiert. Dir kënnt nach ëmmer sou e Spiller benotzen, awer fir dëst ze maachen, musst Dir se manuell an de Kont oder Kamera-Astellungen auswielen. Dëst ass keen Hommage un d'Moud, et ass just datt laut Statistike vun eisem Service praktesch keng Benotzer mat Flash schaffen. A probéiert ze bestëmmen ob de Browser de Benotzer et ënnerstëtzt, verléiere mir ongeféier 2 Sekonnen wÀertvoll ZÀit.

Hei ass e kuerzen IwwerblĂ©ck iwwer d'Ännerungen dĂ©i op Iech waarden an eisem Cloud Video Iwwerwaachungssystem a persĂ©inleche Kont. Bleift bei eis a befollegt d'Neiegkeeten!

Source: will.com

Kaaft zouverlĂ€sseg Hosting fir Site mat DDoS Schutz, VPS VDS Server đŸ”„ Kaaft zouverlĂ©issegt WebsĂ€ithosting mat DDoS-Schutz, VPS VDS Server | ProHoster