
Kubva pamazuva ekutanga ekushanda pa cloud video surveillance system, takasangana nedambudziko, pasina mhinduro iyo Ivideon yaigona kunge yakanyorerwa kure - yaive Everest yedu, kukwira kwayo kwakatora simba rakawanda, asi ikozvino tazoisa chando chechando kumusoro kwemuchinjiko-chikuva chepuzzle.
Iyo sisitimu yekutumira odhiyo nevhidhiyo kuburikidza neInternet haifanirwe kutsamira pane zvishandiso, Web vatengi uye zviyero zvavanotsigira, uye inofanirawo kushanda nemazvo pamberi peNetwork Kero Vashanduri uye firewall. Mushandisi wegore vhidhiyo yekutarisa anoda kuwana iyo sevhisi kunyangwe akashandisa analogi makamera, uye anofarira kuona mhepfenyuro yevhidhiyo pachishandiswa chazvino.
Izvo zvakakosha kuti mushandisi ade kuona vhidhiyo nekunonoka kushoma. Inenge nzira chete yekuratidza vhidhiyo nekunonoka kuderera mubrowser ndeye kushandisa WebRTC (web real-time communications). WebRTC seti yetekinoroji yekufambisa-kune-vezera kutapurirana kwevhidhiyo uye ruzha mumabhurawuza, akagadzirirwa kutapurirana uye kutambazve kwevhidhiyo kuyerera nekunonoka kuderera. Kune izvi, pakati pezvimwe zvinhu, iyo UDP protocol inoshandiswa.
Tisati takuudza izvo injini itsva inopa mushandisi, tinokuyeuchidza kuti sei uye sei tinotsigira matekinoroji eHLS, uye nei takasarudza kuenda kumberi.
Injini yeHLS: Zvakanakira uye Zvakaipa

()
Tekinoroji yeHLS (HTTP Live Streaming) yakagadzirwa neApple, saka hazvishamisi kuti yakatanga kutsigirwa pamidziyo yeApple. Nhasi, mavhidhiyo eHLS anotsigirwawo nemidziyo yakawanda inoshandisa OS. Android.
Injini yeHLS inoshandisa inozivikanwa H264 vhidhiyo codec pamwe chete neAAC kana MP3 maredhiyo enziyo yekufambisa data data. Yese odhiyo uye vhidhiyo data rwizi yakarongedzwa muMPEG-TS yekutakura mudziyo. Kutapurirana kuburikidza neHTTP protocol, ruzivo rwuri murukova rwakakamurwa kuita zvidimbu zvinotsanangurwa mum3u8 playlists. Uye chete ipapo zvidimbu izvi, pamwe chete nemitambo yekutamba, zvinofambiswa kuburikidza neHTTP. Kukamura kuita zvidimbu zvoga zvinoreva kunonoka mumasekonzi. Ichi chikamu cheMPEG-TS mudziyo.
Iyo injini yeHLS zvakare inotsigira akawanda-bitrate hova, Live/VOD.
Izvo zvakakosha zveHLS:
- yakavakirwa-mukati rutsigiro mumabhurawuza makuru ese;
- nyore kuita (kuenzaniswa neWebRTC);
- Zviri nyore uye zvinoshanda kuronga marudzi ese ekutepfenyura kune vateereri vakawanda nekuda kwekuti zvikamu zvinogona kuiswa kuCDN kamwe chete.
Pasinei nekureruka kweinjini, hazvisi zvese zvakatsetseka sezvazvinoratidzika. Dambudziko guru nderekuti vagadziri vevatambi vechitatu vakatsauka kubva kurudziro dzeApple, semuenzaniso maererano nemafomati ekuteerera anotsigirwa. Kunyanya, vagadziri vakawanda vakatanga kuwedzera kukwanisa kushanda neakakurumbira audio streams: mpeg2 video, mpeg2 odhiyo, etc. Somugumisiro, zvakanga zvakakodzera kugadzira mafomu akasiyana ekutamba kwevatambi vakasiyana.
Asi rimwe rematambudziko makuru neinjini yeHLS ndiyo yakanyanya latency mukufambiswa kwedata.
Mabviro e "mabhureki"
Chikonzero chikuru chekunonoka kweHLS ndechekuti vanogadzira mapurogiramu vakagadzira injini kuti vawane mufananidzo wemhando yepamusoro. Naizvozvo, iwo maparamendi eiyo furemu nguva yakashandiswa uye huwandu hweiyo playback buffer haingokodzere nhepfenyuro yevhidhiyo. Nekuda kweizvi, pane kunonoka kwakanyanya mukufambiswa kweiyo vhidhiyo kutevedzana, inogona kuva 5-7 masekonzi.
Kune rumwe rutivi, izvi hazvisi zvakawanda, semuenzaniso, kune avo vanoona bhaisikopo kubva kune vhidhiyo yekubata server. Asi kune vhidhiyo yekutarisa masisitimu, kunonoka mukufambiswa kwevhidhiyo kunogona kuve kwakakosha.
Kana iwe ukacherekedza hofisi iyo vashandi vanozvibvisa kubva kune avo monitors kamwe paawa, saka kunonoka kwe5-sekondi haina basa zvachose. Asi vanhu vakatanga kunyunyuta kuti, semuenzaniso, pakutepfenyura mutambo wenhabvu, vakatonyora kuti GOOOAL mukutaura, asi haisati iri pavhidhiyo :). Isu tatova nehuwandu hwemakesi emushandisi apo Ivideon inofanirwa kutsiva Skype.
Zvinoita here kukunda kunonoka muHLS? Mhinduro kumubvunzo uyu inonzwika senge munhu ane ruzivo anoparadza makonzo achipa hurukuro kune vaparadzi vatsva: "Makonzo haagone kuparadzwa, asi huwandu hwavo hunogona kudzikiswa kusvika padiki." Izvo zvakafanana nekunonoka kweHLS, hazvizogone kuibvisa kusvika zero, asi pane zvigadziriso pamusika zvinogona kuderedza zvakanyanya kunonoka.
Yakachekwa zvakanaka
Chimwe chinokanganisa cheinjini ndiko kushandiswa kwemafaira maduku ekufambisa data. Chii chakaipa nazvo, ungabvunza?
Chero ani zvake akaedza kukopa nhamba huru yemafaira maduku kubva kune imwe nzvimbo yekuchengetedza kusvika kune imwe angave akacherechedza kuti kumhanya kwekurekodha kweseti yakadaro yakaderera zvikuru kupfuura yefaira imwe huru yehukuru hwakafanana. Uye kusimba kwekuwana kune hard drive kunowedzera zvakanyanya, izvo zvinowanzove nemhedzisiro yakaipa pakuita kwekombuta yese. Naizvozvo, kuendeswa kwevhidhiyo data muchimiro chediki 10-sekondi zvimedu zvinobatsirawo pakuwedzera kunonoka kweinjini.
Ngatipfupikisai muchidimbu zvese zvakanakira nezvazvakaipira zvehunyanzvi hweHLS.
Zvakanakira zveHLS:
- Kugona kushanda nechero mudziyo. Unogona kuona mavhidhiyo pane chero mudziyo wazvino, ingave smartphone, piritsi, laptop kana desktop PC. Chinhu chikuru ndechekuti web browser ishanduro yemazuva ano uye inoenderana neHTML5 uye Media Source Extensions.
- Yakanakisa mufananidzo mhando. Iyo inogadziriswa data yekufambisa basa inoshandiswa inobvumira kushandura zvine simba kunaka kweiyo yakafambiswa kutevedzana kwevhidhiyo zvichienderana nebandwidth yeInternet yekubatanidza, nepo algorithm ichiyedza kuchengetedza mhando yepamusoro sezvinobvira.
- Iko hakuna kudikanwa kwekugadziriswa kwakaoma kwemushandisi michina.
payakaipira:
- Rutsigiro rushoma rwekushanda neinjini pane mamwe maturusi.
- Kunonoka kukuru mukufambisa kwemifananidzo.
- Kuwedzera kwakasimba kwepamusoro uye kuoma mukugadzirisa nekuda kwekushandiswa kwemafaira maduku. Nekuda kwechimiro chemudziyo, isu hatigone kuwana latency idiki pane saizi yechikamu.
Zvakaipa zveHLS zvakapfuura zvakanakira isu uye zvakatimanikidza kutsvaga dzimwe sarudzo.
Chii chinonzi WebRTC

()
Iyo WebRTC chikuva chakagadzirwa neGoogle muna 2011 kufambisa mavhidhiyo ekutepfenyura uye odhiyo data pakati pebrowser nemaapplication enhare nekunonoka kushoma. Iyo inoshandisa yakajairwa UDP protocol uye yakakosha kuyerera kwekudzora algorithms. Nhasi, ipurojekiti yakavhurika, inotsigirwa uye yakagadziridzwa neGoogle.
WebRTC seti yematekinoroji ekufambisa-kune-vezera kutapurirana kwevhidhiyo uye odhiyo. Izvi zvinoreva, semuenzaniso, vashandisi vevashandisi vanoshandisa WebRTC vanogona kutumira data kune mumwe nemumwe zvakananga, pasina kushandisa maseva ari kure kuchengetedza uye kugadzirisa data. Ruzivo rwese rwunogadziriswa zvakare nevashandisi vekupedzisira 'browser uye nharembozha.
Kureruka uye kugona kukuru kwehunyanzvi uhu kwave kuchikosheswa nevagadziri vemabhurawuza ese anozivikanwa. Rutsigiro rweWebRTC rwuripo parizvino muMozilla Firefox, Opera, Google Chrome (uye mabhurawuza ese akavakirwa paChromium), pamwe chete nemapurogiramu efoni ari kushanda. Android uye iOS.
Pasinei nezvakanaka zvayo zvese zvisina kupokana, WebRTC ine zvakati wandei zvakakomba zvakashata.
Matambudziko ekusarudza
WebRTC tekinoroji yakanyanya kuomarara maererano nekudyidzana kwetiweki nekuti ndeye P2P. Zvakaoma kugadzirisa, kuedza, zvinogona kuita zvisingatarisirwi. Panguva imwecheteyo, isu tinofanirwa kukunda NAT uye firewall, isu tinofanirwa kuve nechokwadi chekushanda mumatiweki uko UDP yakavharwa.
Kuitwa kweGoogle WebRTC kwakaoma kushandisa. Kune kunyange kambani yese inopa SDK musangano masevhisi. Uyezve, kuita kweGoogle kwanga kwakaoma kubatanidza nesystem yedu pasina kukodha vhidhiyo yese.
Nekudaro, isu tanga tichida kupa vashandisi mukana wekushanda neakazara-yakazara "live" vhidhiyo kutevedzana uye kuderedza kusara kwechifananidzo pachiratidziro kubva kuzviitiko zvacho. Uyezve, isu taida kuita kuti zvive nyore kushandisa PTZ kamera, uko kunonoka kwakakosha.
Tichifunga kuti mamwe anti-lag maitirwo achiri ane mashoma mashandiro uye anoshanda zvakanyanya kuipa, takasarudza kushandisa WebRTC.
Taita sei

Kuita iyo WebRTC chikuva nemazvo harisi basa riri nyore. Chero kukanganisa kana kusarongeka kunogona kutungamira kune chokwadi chekuti kunonoka mukufambiswa kwevhidhiyo hakuzongodzikira kana zvichienzaniswa nemamwe mapuratifomu, asi zvakare kuwedzera.
Kuti WebRTC ishande nemazvo, kutanga pane zvese, zvinodikanwa kuita tekinoroji yemazuva ano yestack yekushanda newebhu vhidhiyo. Ndizvo zvatakaita.
Chekutanga, takaisa WebRTC inosaina protocol server pamusoro peWebsocket, uye takaisa WebRTC peer server mugore zvichibva pawebrtc.org SDK. Basa rayo nderekuparadzira vhidhiyo kuyerera kune vatengi WebRTC vezera muH.264 + Opus/G.711 fomati pasina vhidhiyo rekodha.
Isu takasarudza Websocket senzira yekusaina nekuti inotova nerutsigiro rwemhando yepamusoro mumabhurawuza ese anozivikanwa. Nekuda kweizvi, zvinokwanisika kuderedza zvakanyanya kwete chete mari yepamusoro yekuvandudza, asi zvakare kwete kutambisa nguva uye zviwanikwa pakudzokororwa TCP uye TLS handshakes zvichienzaniswa neAJAX.
Icho chiripo ndechekuti nekusarudzika, WebRTC haipe iyo siginecha protocol inodiwa kumisikidza nemazvo, kuchengetedza, uye kubvarura iyo chaiyo-nguva vhidhiyo yekubatanidza pakati pekwakabva uye mutengi zvikumbiro.
Uye kuti tiite takazvimirira tekinoroji yekusaina, taifanira kuvandudza yedu yekusaina server nerutsigiro rwe akati wandei webhu protocol (Websocet, WebRTC). Uye zvakare nekugona kuchengetedza zvakachengeteka masesesheni uye zviziviso munguva chaiyo, vhidhiyo manejimendi uye mamwe akawanda ma paramita.
Isu takakunda zvipimo zveP2P nekudzikisa latency kwete kuburikidza neP2P, asi kuburikidza neUDP uye kuyerera kwekutonga kwakanangana nekudzikisa latency. Izvi zvakare zvakavakwa muWebRTC, sezvo huru yekushandisa kesi iri p2p hurukuro kuburikidza nebrowser.
Mumutengi wenharembozha, takaisa mutambi achishandisa webrtc.org SDK, sezvo chete iyo yakagadzirisa kuyerera kwekufamba, zvirongwa zvese zvinozivikanwa zveForward Error Correction (FEC), uye nzira yakanyatso shandiswa yekutumira mapaketi kune ese mabhurawuza. Izvo zvakakoshawo kuti webrtc.org SDK igadziriswe neGoogle.
Ndeipi mhedzisiro yekushandisa WebRTC?
Kuti utarise vhidhiyo yepamoyo kubva kumakamera, tawedzera mutambi mutsva wakagadziridzwa wakavakirwa paWebRTC kuaccount yako. Inopa kukurumidza kurodha kwevhidhiyo kutevedzana uye inobvisa zvachose dambudziko rekuunganidza kunonoka sezvo nguva yekuona inowedzera.
Mushure mekuita tsigiro yeWebRTC muIvideon gore sevhisi, tinogona kutaura nechivimbo chakakwana kuti vatengi vedu vanogona ikozvino kuona yakazara-yakazara mhenyu vhidhiyo. Ikozvino kunonoka kutepfenyura kutevedzana kwevhidhiyo hakupfuuri sekondi imwe! Kuenzanisa, iyo yapfuura HLS injini yakapa vhidhiyo kuburitsa nekunonoka kwe5-7 masekondi. Musiyano wekumhanya kwekuratidzira kwevhidhiyo wakakosha, uye mushandisi anozviona pakarepo mushure mekutanga kushanda nesevhisi yedu yevhidhiyo.
Sezvataitarisira, kuitwa kwemutambi mutsva kwakavandudza kuterera kwePTZ uye kutaurirana kwezwi nekamera.

Pane chinhu chimwe chete chakajeka chatinoda kukwevera pfungwa dzako kwachiri. Mutambi mutsva weWebRTC parizvino ari mukuyedza mode. Ndosaka isu tisingazvibatanidze kune vese vatengi vedu nekukasira. Asi iwe unogona kuzvimisikidza iwe pachako nekugonesa chinhu chinoenderana mumasetin'i kamera (kuti uite izvi, enda ku ).
Zvimiro zveWebRTC kuita muIvideon sevhisi

WebRTC ichiri tekinoroji yekuyedza panguva ino. Tsigiro yaro haisati yaitwa nemazvo mumabhurawuza ese uye zvishandiso zvevashandisi, uye kwete mumakamera ese.
Ichi ndicho chikonzero nei isu tisati taita kuti WebRTC player ive default kune vese vashandisi.
Parizvino, isu tinokurudzira kushandisa WebRTC chete muGoogle Chrome mabhurawuza. Iyo yazvino vhezheni yeFirefox neSafari inotsigirawo tekinoroji iyi, asi zvinosiririsa kuti haisati yagadzikana.
Hatisati taita tsigiro yeWebRTC yemabhurawuza panharembozha. Parizvino, kana iwe ukapinda kubva kune nharembozha uye woita WebRTC, iyi modhi haishande. Nekudaro, WebRTC inowanikwa mune yedu mobile application ye и .
Uye mukupedzisa nyaya nezve maficha eWebRTC kuitiswa musevhisi yedu, isu tichaona mamwe maviri akajeka pfungwa.
Chekutanga, tekinoroji yakatarisana nekutepfenyura mhenyu vhidhiyo munguva chaiyo. Naizvozvo, kana chiteshi chako bandwidth chisina kukwana kufambisa kutevedzana kwevhidhiyo, iwe unozoona akadonhedza mafuremu (neHLS iwe unozoona vhidhiyo inotonhora uye yakawedzera latency, asi mafuremu haazodonhedzwe), asi vhidhiyo icharamba ichitepfenyurwa munguva chaiyo.
Chechipiri, sezvo tekinoroji yakagadzirirwa kushanda zvakananga nevhidhiyo mhenyu munguva chaiyo, isu hatiishandise kushanda neyakachengetwa data data.
Dzimwe shanduko mubasa
Flash parizvino haichisiri chikamu cheiyo otomatiki yekusarudza injini. Unogona kushandisa mutambi akadaro, asi iwe unofanirwa kuzvisarudzira iwe pachako muakaundi yako kana kamera. Uku hakusi mutero kufashoni, asi maererano nehuwandu hwesevhisi yedu, hapana kana vashandisi vakasara vanoshanda neFlash. Uye kuyedza kuona kana browser yemushandisi ichiitsigira, tinorasikirwa nemasekonzi maviri enguva yakakosha.
Heano pfupiso pfupi yekuchinja kwakakumirira iwe mune yedu yegore vhidhiyo yekutarisa system uye yako account account. Gara nesu uye tevera nhau!
Source: www.habr.com
