
Gikan sa unang mga adlaw sa pagtrabaho sa usa ka cloud video surveillance system, nag-atubang kami og problema, nga wala masulbad nga posible nga tapuson ang Ivideon - kini ang among Everest, pagsaka nga nagkinahanglan og daghang kusog, apan karon kami sa katapusan nagpabilin usa ka ice wasay sa ibabaw sa cross-platform rebus.
Ang sistema sa pagpasa sa audio ug video sa Internet kinahanglan dili magdepende sa kagamitan, mga kliyente sa Web ug sa mga sumbanan nga ilang gisuportahan, ug sakto usab nga pagtrabaho sa presensya sa Network Address Translators ug mga firewall. Ang tiggamit sa cloud video surveillance gusto nga maka-access sa serbisyo, bisan kung siya naggamit og mga analog camera, ug mas gusto nga motan-aw sa live video broadcast sa pinakabag-o nga device.
Mahinungdanon kaayo nga gusto sa tiggamit nga motan-aw sa video nga adunay gamay nga paglangan. Ang bugtong paagi sa pagpakita sa ubos nga latency nga video sa usa ka browser mao ang paggamit sa WebRTC (web real-time nga komunikasyon). Ang WebRTC usa ka hugpong sa mga teknolohiya alang sa peer-to-peer nga pagpasa sa video ug audio sa mga browser, nga orihinal nga gidisenyo alang sa pagpasa ug playback sa usa ka video stream nga adunay ubos nga latency. Alang niini, taliwala sa ubang mga butang, gigamit ang protocol sa UDP.
Sa dili pa isulti kanimo kung unsa ang gihatag sa bag-ong makina sa tiggamit, pahinumduman ka namon kung ngano ug ngano nga gisuportahan namon ang mga teknolohiya sa HLS, ug kung ngano nga nakahukom kami nga magpadayon.
HLS engine: mga bentaha ug disbentaha

()
Технология HLS (HTTP Live Streaming) разработана в Apple, поэтому не удивительно, что впервые её поддержка появилась на устройствах именно этого бренда. На сегодняшний день видеоряд в формате HLS также умеют воспроизводить практически все телевизионные приставки и многие устройства, работающие на ОС Android.
Ang HLS nga makina naggamit sa iladong H264 video codec nga kombinasyon sa AAC o MP3 audio streams aron mag-stream sa data sa video. Ang tibuok stream sa audio ug video data giputos sa MPEG-TS transport container. Alang sa transmission sa HTTP protocol, ang impormasyon nga anaa sa sapa gibahin ngadto sa mga tipik nga gihulagway sa m3u8 playlists. Ug unya kini nga mga tipik, kauban ang mga playlist, gipasa pinaagi sa HTTP. Ang pagbahin sa mga tipik awtomatik nga nagpasabut nga usa ka paglangan sa mga segundo. Ang ingon nga bahin sa MPEG-TS nga sudlanan.
Ang HLS engine nagsuporta usab sa multibitrate streams, Live/VOD.
Ang nag-unang bentaha sa HLS:
- built-in nga suporta sa tanan nga dagkong mga browser;
- kasayon sa pagpatuman (kon itandi sa WebRTC);
- kombenyente ug episyente kaayo ang pag-organisar sa tanang matang sa mga sibya alang sa daghang mamiminaw tungod sa kamatuoran nga ang mga bahin mahimong ma-upload sa usa ka CDN kausa.
Bisan pa sa kayano sa makina, dili ang tanan ingon ka hamis nga daw. Ang nag-unang problema mao nga ang mga developers sa mga third-party nga mga magdudula nagtipas gikan sa mga rekomendasyon sa Apple, pananglitan, sa mga termino sa gisuportahan nga mga format sa audio. Sa partikular, daghang mga developers nagsugod sa pagdugang sa abilidad sa pagtrabaho uban sa popular nga audio sapa: mpeg2 video, mpeg2 audio, ug uban pa.
Apan usa sa pinakadako nga problema sa HLS engine mao ang taas nga latency sa data transfer.
Ang gigikanan sa "preno"
Ang panguna nga hinungdan sa taas nga latency sa HLS naa sa kamatuoran nga ang mga programmer nagmugna sa makina aron makuha ang labing taas nga kalidad nga litrato. Busa, ang mga parameter sa frame interval nga gigamit ug ang gidak-on sa playback buffer kay dili angay alang sa live video broadcasts. Tungod niini, adunay usa ka medyo taas nga paglangan sa pagpasa sa han-ay sa video, nga mahimong 5-7 segundos.
Sa usa ka bahin, dili kini daghan, pananglitan, alang sa mga nagtan-aw sa sine gikan sa usa ka server sa pag-host sa video. Apan alang sa mga sistema sa pagpaniid sa video, ang paglangan sa pagpasa sa han-ay sa video mahimong importante kaayo.
Kung nagtan-aw ka sa usa ka opisina diin gipunting sa mga empleyado ang ilang mga mata gikan sa mga monitor kausa sa usa ka oras, nan ang paglangan sa 5 segundos dili igsapayan. Apan ang mga tawo nagsugod sa pagreklamo nga, pananglitan, sa panahon sa pagsibya sa usa ka dula sa football, gisulat na nila ang GOOOOL sa chat, apan wala pa kini sa video :). Naa na kami ubay-ubay nga mga kaso sa tiggamit diin ang Ivideon kinahanglan nga magpuli sa skype.
Posible ba nga mapildi ang latency sa HLS? Ang tubag niini nga pangutana morag usa ka pakigpulong sa usa ka eksperyensiyadong tigpuo sa ilaga sa usa ka lektyur ngadto sa bag-ong mga tiglaglag: “Ang mga ilaga dili mapuo, apan ang ilang populasyon mahimong makunhoran ngadto sa makataronganong minimum.” Mao nga sa paglangan sa HLS, dili kini molihok aron makuha kini sa zero, apan adunay mga solusyon sa merkado nga mahimo’g makunhuran ang paglangan.
Maayo nga pagputol
Ang laing disbentaha sa makina mao ang paggamit sa gagmay nga mga file alang sa pagbalhin sa datos. Morag daotan kini?
Bisan kinsa nga misulay sa pagkopya sa daghang gagmay nga mga file gikan sa usa ka medium ngadto sa lain kinahanglan nga nakamatikod nga ang katulin sa pagsulat sa ingon nga set mas ubos kaysa usa ka dako nga file nga parehas ang gidak-on. Oo, ug ang intensity sa pag-access sa hard disk nagdugang kamahinungdanon, nga sa kasagaran negatibo makaapekto sa performance sa tibuok computer. Busa, ang pagpadala sa data sa video sa porma sa gagmay nga 10 segundos nga mga tipik usab nakatampo sa dugang nga paglangan sa makina.
Atong i-summarize sa daklit ang tanan nga mga bentaha ug disbentaha sa teknolohiya sa HLS.
Mga bentaha sa HLS:
- Abilidad sa pagtrabaho uban sa bisan unsa nga device. Mahimo nimong tan-awon ang mga video sa bisan unsang modernong aparato, bisan kini usa ka smartphone, tablet, laptop o desktop PC. Ang panguna nga butang mao nga ang web browser labing bag-o ug nahiuyon sa HTML5 ug Mga Extension sa Tinubdan sa Media.
- Maayo kaayo nga kalidad sa imahe. Ang mapahiangay nga data transmission function nga gigamit nagtugot kanimo sa dinamikong pagbag-o sa kalidad sa gipasa nga pagkasunod-sunod nga video depende sa bandwidth sa koneksyon sa Internet, samtang ang algorithm naningkamot nga mapadayon ang kalidad nga labing taas kutob sa mahimo.
- Dili kinahanglan ang komplikado nga pag-setup sa kagamitan sa tiggamit.
disadvantages:
- Limitado nga suporta alang sa pagtrabaho kauban ang makina sa pipila nga mga aparato.
- Taas nga latency sa pagpasa sa imahe.
- Kusog nga pagtaas sa overhead ug pagkakomplikado sa pag-optimize tungod sa paggamit sa gagmay nga mga file. Tungod sa kinaiyahan sa sudlanan, dili gyud kami makakuha usa ka paglangan nga mas gamay kaysa sa gidak-on sa bahin.
Ang mga disbentaha sa HLS kay sa mga bentaha niini alang kanamo ug napugos kami sa pagpangita og mga alternatibo.
Unsa ang WebRTC

()
Ang WebRTC nga plataporma gimugna sa Google niadtong 2011 aron ibalhin ang streaming nga video ug audio data tali sa mga browser ug mobile application nga adunay gamay nga paglangan. Alang niini, gigamit ang standard UDP protocol ug espesyal nga flow control algorithm. Karon kini usa ka bukas nga gigikanan nga proyekto, aktibo nga gisuportahan sa Google ug naugmad.
Ang WebRTC usa ka hugpong sa mga teknolohiya alang sa peer-to-peer nga video ug audio transmission. Kana mao, pananglitan, ang mga browser sa mga tiggamit nga naggamit sa WebRTC mahimong magbalhin sa data direkta sa usag usa, nga wala mogamit mga hilit nga server alang sa pagtipig ug pagproseso sa datos. Ang tanang impormasyon giproseso usab sa mga browser ug mobile application sa mga end user.
Удобство и большие возможности данной технологии по достоинству оценили разработчики всех популярных браузеров. Сегодня поддержка WebRTC реализована в Mozilla Firefox, Opera, Google Chrome (и всеми браузерами на базе Chromium), а также в мобильных приложениях под Android ug iOS.
Uban sa tanan nga dili ikalimod nga mga bentaha, ang WebRTC adunay daghang hinungdanon nga mga kakulangan.
Mga kalisud sa pagpili
Ang teknolohiya sa WebRTC labi ka komplikado sa mga termino sa mga interaksyon sa network tungod sa kamatuoran nga kini bahin sa P2P. Lisud ang pag-debug, pagsulay, mahimo’g molihok nga dili matag-an. Sa samang higayon, kinahanglan natong buntogon ang NAT ug firewall, kinahanglan natong sigurohon ang pagtrabaho sa mga network diin ang UDP gibabagan.
Ang pagpatuman sa WebRTC sa Google lisud kaayo gamiton. Adunay bisan usa ka tibuuk nga kompanya nga naghatag serbisyo sa pagtukod sa SDK. Dugang pa, ang pagpatuman sa Google lisud kaayo nga i-integrate sa among sistema nga wala'y pag-encode pag-usab sa tibuok video.
Bisan pa, dugay na namon nga gusto nga hatagan ang mga tiggamit og higayon nga magtrabaho sa usa ka hingpit nga "live" nga pagkasunod-sunod sa video ug maminusan ang lag sa imahe sa screen gikan sa mga panghitabo mismo. Dugang pa, kami adunay tinguha sa paghimo sa paggamit sa PTZ nga mga kamera nga mas komportable, diin ang mga paglangan kritikal.
Sa pagkonsiderar nga ang ubang mga pagpatuman sa anti-lag limitado gihapon ang pagpaandar ug mas grabe ang pagtrabaho, nakahukom kami nga gamiton ang WebRTC.
Unsa may among nabuhat

Ang hustong pagpatuman sa WebRTC nga plataporma dili sayon nga buluhaton. Ang bisan unsang sayop nga kalkulasyon o pagkadili tukma mahimong mosangpot sa kamatuoran nga ang mga paglangan sa pagpasa sa han-ay sa video dili lamang mokunhod kon itandi sa ubang mga plataporma, apan modaghan pa.
Alang sa WebRTC nga magtrabaho sa husto, una sa tanan, gikinahanglan ang paghimo sa usa ka teknolohikal nga pag-upgrade sa stack alang sa pagtrabaho sa web video. Nga mao ang among gibuhat.
Una, gipatuman namo ang WebRTC signaling protocol server sa Websocket, ug nag-deploy usab og WebRTC peer server sa cloud base sa webrtc.org SDK. Ang tahas niini mao ang pag-apod-apod sa mga video stream sa kliyente nga WebRTC nga mga kaedad sa H.264 + Opus/G.711 nga format nga walay video transcoding.
Gipili namo ang Websocket isip signaling protocol tungod kay aduna na kini maayong suporta sa tanang sikat nga web browser. Tungod niini, mahimo nimong makunhuran dili lamang ang pag-uswag sa overhead, apan dili usab mag-usik sa oras ug mga kahinguhaan sa balik-balik nga TCP ug TLS handshake kumpara sa AJAX.
Ang punto mao nga, sa default, ang WebRTC wala maghatag sa signaling protocol nga gikinahanglan sa hustong pag-set up, pagmentinar, ug pagtapos sa real-time nga mga komunikasyon sa video tali sa tinubdan ug mga aplikasyon sa kliyente.
Ug aron independente nga ma-implementar ang teknolohiya sa pagsenyas, kinahanglan namon nga maghimo sa among kaugalingon nga server sa pagsenyas nga adunay suporta alang sa daghang mga protocol sa web (Websocet, WebRTC). Ug uban ang abilidad sa luwas nga pagdumala sa mga sesyon ug real-time nga mga pahibalo, pagdumala sa video, ug uban pa.
Nabuntog namo ang mga limitasyon sa P2P pinaagi sa pagkunhod sa latency dili pinaagi sa P2P, apan pinaagi sa UDP ug pagkontrol sa dagan aron makunhuran ang latency. Gitukod usab kini sa WebRTC, tungod kay ang panguna nga kaso sa paggamit mao ang p2p nga mga panag-istoryahanay pinaagi sa browser.
Sa mobile client, among gipatuman ang player gamit ang webrtc.org SDK, tungod kay mao ra kini ang husto nga nagpatuman sa flow control, adunay tanan nga nahibal-an nga Forward Error Correction (FEC) nga mga laraw, ug husto nga nagpatuman sa mekanismo sa pagpadala pag-usab sa mga packet alang sa tanan nga mga browser. . Importante usab nga ang webrtc.org SDK aktibong gimugna sa Google.
Unsa ang resulta sa pagpatuman sa WebRTC?
Aron matan-aw ang live nga video gikan sa mga camera, nagdugang kami usa ka bag-ong na-optimize nga magdudula base sa WebRTC sa imong personal nga account. Naghatag kini og taas nga tulin nga pagkarga sa video ug hingpit nga giwagtang ang problema sa pagtipon sa latency samtang nagkataas ang oras sa pagtan-aw.
Pagkahuman sa pagpatuman sa suporta sa WebRTC sa serbisyo sa panganod sa Ivideon, makasulti kami uban ang bug-os nga pagsalig nga karon ang among mga kostumer makatan-aw sa tibuuk nga live video. Karon ang paglangan sa pagsibya sa han-ay sa video dili molapas sa usa ka segundo! Alang sa pagtandi, ang miaging HLS nga makina naghatag sa paghatud sa video nga adunay paglangan sa 5-7 segundos. Ang kalainan sa katulin sa pagpakita sa video hinungdanon kaayo, ug ang tiggamit makamatikod niini dayon pagkahuman magsugod sa pagtrabaho sa among serbisyo sa video.
Sama sa among gipaabut, ang pagpatuman sa bag-ong magdudula nagpaposible nga madugangan ang pagtubag sa PTZ ug komunikasyon sa tingog sa camera.

Adunay usa lamang ka maliputon nga punto nga gusto natong hatagan ug pagtagad. Ang bag-ong WebRTC player nagtrabaho gihapon sa test mode. Ug mao kana ang hinungdan nga dili namon kini mahimo alang sa tanan namong mga kliyente pinaagi sa default. Apan mahimo nimo kini nga ma-aktibo pinaagi sa pagpagana sa katugbang nga butang sa mga setting sa camera (aron mahimo kini, adto sa ).
Mga bahin sa pagpatuman sa WebRTC sa serbisyo sa Ivideon

Ang WebRTC usa gihapon ka eksperimento nga teknolohiya sa pagkakaron. Ang suporta niini dili pa husto nga gipatuman sa tanang browser ug user device, ug dili sa tanang camera.
Mao gyud kini ang nagpatin-aw sa kamatuoran nga wala pa namo gihimo ang WebRTC player nga nag-unang default alang sa tanang tiggamit.
Sa pagkakaron, among girekomendar ang paggamit sa WebRTC lamang sa mga browser sa Google Chrome. Ang pinakabag-o nga bersyon sa Firefox ug Safari nagsuporta usab niini nga teknolohiya, apan sa kasubo dili pa kini lig-on.
Wala pa namo gipatuman ang suporta sa WebRTC alang sa mga browser sa mga mobile device. Karon, kung mag-log in ka gikan sa usa ka mobile device ug i-activate ang WebRTC, kini nga mode dili molihok. Bisan pa, ang WebRTC magamit sa among mga mobile application para sa и .
Ug sa pagkompleto sa istorya bahin sa mga bahin sa pagpatuman sa WebRTC sa among serbisyo, among namatikdan ang duha pa ka maliputon nga mga punto.
Una, ang teknolohiya naka-focus sa pag-broadcast sa live nga video sa tinuud nga oras. Busa, kung ang imong bandwidth dili igo sa pagpadala sa han-ay sa video, imong mamatikdan ang mga pag-ubos sa frame (uban sa HLS imong mamatikdan ang pagkahanaw sa video ug ang pagtaas sa latency, samtang walay mga frame nga ihulog), apan ang video i-broadcast gihapon sa tinuod. panahon.
Ikaduha, tungod kay ang teknolohiya gidisenyo aron magtrabaho uban ang live nga video sa tinuud nga oras, wala namon kini gigamit aron magtrabaho uban ang naka-archive nga data sa video.
Ang ubang mga pagbag-o sa serbisyo
Sa pagkakaron, ang Flash wala na moapil sa awtomatikong mekanismo sa pagpili sa makina. Mahimo pa nimo gamiton ang ingon nga magdudula, apan alang niini kinahanglan nimo nga pilion kini nga mano-mano sa mga setting sa account o camera. Dili kini usa ka pasidungog sa uso, sumala sa mga istatistika sa among serbisyo, halos wala’y mga tiggamit nga nagtrabaho kauban ang Flash. Ug naningkamot nga mahibal-an kung gisuportahan ba kini sa browser sa gumagamit, nawala ang mga 2 segundos sa bililhon nga oras.
Ania ang usa ka mubo nga summary sa mga pagbag-o nga naghulat kanimo sa among cloud-based nga video surveillance system ug personal nga account. Pabilin kanamo ug sunda ang balita!
Source: www.habr.com
