IWebRTC kunye nokucupha ividiyo: indlela esoyise ngayo ukubambezeleka kwevidiyo kwiikhamera

IWebRTC kunye nokucupha ividiyo: indlela esoyise ngayo ukubambezeleka kwevidiyo kwiikhamera

Ukususela kwiintsuku zokuqala zokusebenza kwinkqubo yokujonga ividiyo yefu, sasijongene nengxaki, ngaphandle kwesisombululo esinokuyeka kwi-Ivideon - le yayiyi-Everest yethu, ukunyuka okuthatha amandla amaninzi, kodwa ngoku siye ekugqibeleni wancamathelisa izembe lomkhenkce kumphezulu wephazili yeqonga.

Inkqubo yokuhambisa i-audio kunye nevidiyo kwi-Intanethi akufanele ixhomekeke kwisixhobo, abathengi bewebhu kunye nemigangatho abayixhasayo, kwaye iphinde isebenze ngokuchanekileyo phambi koGuqulelo lweedilesi zeNethiwekhi kunye ne-firewall. Umsebenzisi ojongene nevidiyo yefu ufuna ukufikelela kwinkonzo, nokuba usebenzisa iikhamera ze-analog, kwaye ukhetha ukubukela ukusasazwa kwevidiyo ebukhoma kwesona sixhobo sanamhlanje.

Kubaluleke kakhulu ukuba umsebenzisi afune ukubukela iividiyo ngokulibaziseka okuncinci. Phantse ekuphela kwendlela yokubonisa ividiyo nge-latency ephantsi kwisikhangeli kukusebenzisa iWebRTC (unxibelelwano lwewebhu lwexesha lokwenyani). I-WebRTC yiseti yetekhnoloji yokuhanjiswa koontanga kwividiyo kunye nesandi kwiziphequluli, ekuqaleni eyenzelwe ukuhanjiswa kunye nokudlalwa kwakhona kwemijelo yevidiyo ene-latency ephantsi. Ngenxa yale njongo, phakathi kwezinye izinto, iprotocol ye-UDP isetyenziswa.

Ngaphambi kokuba sikuxelele ukuba injini entsha inika ntoni umsebenzisi, siya kukukhumbuza ukuba kutheni kwaye kutheni sixhasa ubugcisa be-HLS, kwaye kutheni sigqibe kwelokuba siqhubeke.

Injini ye-HLS: iinzuzo kunye neengxaki

IWebRTC kunye nokucupha ividiyo: indlela esoyise ngayo ukubambezeleka kwevidiyo kwiikhamera
(c)

Itekhnoloji ye-HLS (HTTP Live Streaming) yaphuhliswa yi-Apple, ngoko ke akumangalisi ukuba yaqala ukuxhaswa kwizixhobo ze-Apple. Namhlanje, ividiyo ye-HLS ikwaxhaswa phantse zizo zonke iibhokisi ze-set-top kunye nezixhobo ezininzi ezisebenzisa i-OS. Android.

Injini ye-HLS isebenzisa i-codec yevidiyo eyaziwayo ye-H264 ngokudibanisa ne-AAC okanye imijelo ye-MP3 yomsindo ukusasaza idatha yevidiyo. Yonke iaudio kunye nevidiyo yedatha ipakishwe kwisikhongozeli sothutho seMPEG-TS. Ukusasazwa nge-HTTP protocol, ulwazi oluqulethwe kumlambo luhlulwe lube ngamaqhekeza achazwe kuluhlu lokudlala lwe-m3u8. Kwaye ke kuphela la maqhekeza, kunye noluhlu lokudlalayo, ahanjiswa nge-HTTP. I-Chunking ngokuzenzekelayo ithetha ukulibaziseka kwimizuzwana. Olu luphawu lwesikhongozeli seMPEG-TS.

Injini ye-HLS iphinda ixhase imilambo ye-multibitrate, Live/VOD.

Iingenelo eziphambili ze-HLS:

  • inkxaso eyakhelwe-ngaphakathi kuzo zonke iiphequluli eziphambili;
  • ukulula kokuphunyezwa (xa kuthelekiswa neWebRTC);
  • Kulunge kakhulu kwaye kuyasebenza ukucwangcisa zonke iintlobo zosasazo kubaphulaphuli abaninzi ngenxa yokuba amacandelo anokufakwa kwi-CDN kube kanye.

Ngaphandle kokulula kwe-injini, ayizizo zonke izinto ezigudileyo njengoko kubonakala. Ingxaki enkulu kukuba abaphuhlisi bomdlali wesithathu baye basuka kwiingcebiso ze-Apple, umzekelo ngokubhekiselele kwiifomathi zomsindo ezixhaswayo. Ngokukodwa, abaninzi abaphuhlisi baqala ukongeza amandla okusebenza kunye nemijelo yomsindo eyaziwayo: ividiyo ye-MPEG2, i-audio ye-MPEG, njl.

Kodwa enye yeengxaki ezinkulu kwi-injini ye-HLS yi-latency ephezulu ekugqithiseni idatha.

Imvelaphi "yeziqhoboshi"

Esona sizathu siphambili sokubambezeleka okuphezulu kwe-HLS kulele kwinto yokuba abadwelisi benkqubo benze i-injini ukufumana eyona mifanekiso iphezulu yomgangatho. Ke ngoko, iiparameters zesithuba sesakhelo esisetyenzisiweyo kunye nobukhulu besithinteli sokudlala asilungelanga usasazo lwevidiyo ephilayo. Ngenxa yoku, kukho ukulibaziseka okuphezulu ngokufanelekileyo ekuhanjisweni kwevidiyo, enokuba yi-5-7 imizuzwana.

Ngakolunye uhlangothi, oku akuninzi, umzekelo, kwabo babukela i-movie kwi-server yokubamba ividiyo. Kodwa kwiinkqubo zokujonga ividiyo, ukulibaziseka ekusasazeni ividiyo kunokubaluleka kakhulu.

Ukuba ubukele iofisi apho abasebenzi bajonga phezulu kwiimonitha zabo kanye ngeyure, ke ukulibaziseka kwemizuzwana emi-5 ayinamsebenzi kwaphela. Kodwa abantu baqala ukukhalaza ukuba, umzekelo, xa besasaza umdlalo webhola, sele bebhale i-GOOOOL kwingxoxo, kodwa oku akukabikho kwividiyo :). Sele sinenani lamatyala abasebenzisi apho i-Ivideon kufuneka ithathe indawo yeSkype.

Ngaba kunokwenzeka ukubetha i-latency kwi-HLS? Impendulo yalo mbuzo ivakala njengentetho yomntu onamava otshabalalisa iimpuku kwintetho eyayisiya kwiingcaphephe ezisaqalayo zokulawula izinambuzane: “Iimpuku azinakutshatyalaliswa, kodwa amanani azo anokwehliswa abe bubuncinane obufanelekileyo.” Ngokufanayo nokulibaziseka kwe-HLS, akuyi kuba nako ukunciphisa ukuya kwi-zero, kodwa kukho izisombululo kwiimarike ezinokunciphisa kakhulu ukulibaziseka.

Ukusikwa kakuhle

Enye i-injini ye-injini kukusetyenziswa kweefayile ezincinci zokudlulisa idatha. Kubonakala ngathi yintoni ephosakeleyo ngale nto?

Nabani na oye wazama ukukopisha inani elikhulu leefayile ezincinci ukusuka kwelinye eliphakathi ukuya kwelinye mhlawumbi uye waqaphela ukuba isantya sokubhala sesethi esinjalo siphantsi kakhulu kunefayile enye enkulu yobukhulu obufanayo. Kwaye ukuqina kokufikelela kwi-hard drive kwandisa kakhulu, nto leyo echaphazela kakubi ukusebenza kwayo yonke ikhompyuter. Ke ngoko, ukuhanjiswa kwedatha yevidiyo kwiichunks ezincinci ze-10 yesibini nako kunegalelo ekwandeni kwe-injini latency.

Makhe sishwankathele ngokufutshane zonke izinto ezilungileyo kunye nezibi zobugcisa be-HLS.

Izinto eziluncedo ze-HLS:

  1. Ukukwazi ukusebenza nazo naziphi na izixhobo. Unokubukela iividiyo nakwesiphi na isixhobo sale mihla, nokuba yi-smartphone, ithebhulethi, ilaptop okanye iPC yedesktop. Into ephambili kukuba isiphequluli sewebhu sihlaziyiweyo kwaye sihambelana ne-HTML5 kunye nezandiso zoMthombo weMedia.
  2. Umgangatho womfanekiso ogqwesileyo. Umsebenzi wokuhanjiswa kwedatha esebenzayo esetyenzisiweyo ikuvumela ukuba utshintshe ngokuguquguqukayo umgangatho wevidiyo edlulisiweyo ngokuxhomekeke kwi-bandwidth yoqhagamshelo lwe-Intanethi, ngelixa i-algorithm izama ukugcina umgangatho ophezulu.
  3. Akukho mfuneko yoqwalaselo oluntsonkothileyo lwesixhobo somsebenzisi.

Iingxaki:

  1. Inkxaso encinci yokusebenza kunye ne-injini kwezinye izixhobo.
  2. Ukulibaziseka okuphezulu ekuhanjisweni komfanekiso.
  3. Ukunyuka okuphawulekayo kwi-overhead kunye nobunzima bokulungiswa ngenxa yokusetyenziswa kweefayile ezincinci. Ngenxa yobume besitya, asisoze sikwazi ukufumana i-latency ephantsi kunobukhulu becandelo.

Ukungalungi kwe-HLS kugqithise iingenelo zayo kuthi kwaye kusinyanzele ukuba sijonge iindlela ezizezinye.

Yintoni iWebRTC

IWebRTC kunye nokucupha ividiyo: indlela esoyise ngayo ukubambezeleka kwevidiyo kwiikhamera
(c)

Iqonga leWebRTC laphuhliswa nguGoogle kwi-2011 ukuhambisa ividiyo yokusasaza kunye nedatha yomsindo phakathi kweziphequluli kunye nezicelo zeselula kunye ne-latency encinci. Kule nto, i-protocol ye-UDP eqhelekileyo kunye ne-algorithms yokulawula ukuhamba okukhethekileyo kusetyenziswa. Namhlanje yiprojekthi yomthombo ovulekileyo, igcinwa ngokusebenzayo nguGoogle kwaye iyaphuhliswa.

I-WebRTC yiseti yetekhnoloji yoontanga-kuya-kwividiyo kunye nokuhanjiswa kweaudio. Oko kukuthi, umzekelo, iiphequluli zabasebenzisi ezisebenzisa iWebRTC zinokudlulisela idatha komnye nomnye ngokuthe ngqo, ngaphandle kokusebenzisa iiseva ezikude ukugcina nokucubungula idatha. Lonke ulwazi lukwacutshungulwa ngabaphequluli babasebenzisi bokugqibela kunye nezicelo zeselula.

Ubulula kunye nobuchule obubanzi bale teknoloji buye baxatyiswa ngabaphuhlisi bazo zonke iibrowsers ezidumileyo. Inkxaso yeWebRTC okwangoku ifumaneka kwiMozilla Firefox, Opera, Google Chrome (kunye nazo zonke iibrowsers ezisekelwe kwiChromium), kunye nakwiiapps zeselfowuni ezisebenzayo. Android kunye ne-iOS.

Kuzo zonke izibonelelo zayo ezingathandabuzekiyo, iWebRTC inezinto ezininzi ezingalunganga.

Ubunzima bokukhetha

Itekhnoloji yeWebRTC inzima ngakumbi ngokwemigaqo yokunxibelelana kwenethiwekhi ngenxa yokuba imalunga neP2P. Kunzima ukulungisa ingxaki, ukuvavanya, kwaye unokuziphatha ngokungalindelekanga. Ngexesha elifanayo, kufuneka sinqobe i-NAT kunye ne-firewall, kufuneka siqinisekise ukusebenza kumanethiwekhi apho i-UDP ivaliwe.

Ukuphunyezwa kweWebRTC kaGoogle kunzima kakhulu ukuyisebenzisa. Kukho nenkampani yonke ebonelela ngeenkonzo zendibano ye-SDK. Kwaye, ukuphunyezwa kukaGoogle kwakunzima kakhulu ukudibanisa kunye nenkqubo yethu ngaphandle kokufaka ikhowudi yonke ividiyo.

Nangona kunjalo, kudala sifuna ukunika abasebenzisi ithuba lokusebenza kunye nevidiyo "ephilayo" epheleleyo kunye nokunciphisa i-lag phakathi komfanekiso okwisikrini kunye neziganeko ngokwazo. Ngaphezu koko, sasinomnqweno wokusebenzisa iikhamera ze-PTZ, apho ukulibaziseka kubaluleke kakhulu, kukhululekile ngakumbi.

Ukuthathela ingqalelo ukuba ezinye iinkqubo ezichasene ne-lag zisenomsebenzi olinganiselweyo kwaye zisebenza ngokuphawuleka ngakumbi, sigqibe kwelokuba sisebenzise iWebRTC.

Senze ntoni

IWebRTC kunye nokucupha ividiyo: indlela esoyise ngayo ukubambezeleka kwevidiyo kwiikhamera

Ukuphumeza ngokufanelekileyo iqonga leWebRTC akuwona umsebenzi olula. Nakuphi na ukubalwa kakubi okanye ukuchaneka kunokukhokelela ekulibazisekeni kokuhanjiswa kwevidiyo kungekuphela nje ukuba kunciphe xa kuthelekiswa namanye amaqonga, kodwa nokwanda.

Ukuze iWebRTC isebenze ngokuchanekileyo, okokuqala, kuyimfuneko ukwenza uphuculo lwetekhnoloji yesitaki ukuze usebenze ngevidiyo yewebhu. Yiloo nto esayenzayo.

Okokuqala, siphumeze iseva yeprotocol yomqondiso weWebRTC ngaphezulu kweWebsocket, kwaye sasebenzisa iseva yoontanga beWebRTC kwilifu elisekelwe kwi-webrtc.org SDK. Umsebenzi wayo kukusabalalisa imijelo yevidiyo kubaxhasi be-WebRTC abalingane kwi-H.264 + Opus/G.711 ifomathi ngaphandle kwe-transcoding yevidiyo.

Sikhethe iWebsocket njengeprotocol yokusayina kuba sele inenkxaso ekumgangatho ophezulu kuzo zonke izikhangeli zewebhu ezidumileyo. Ngenxa yoku, unokunciphisa kakhulu uphuhliso kuphela, kodwa ugweme ukuchitha ixesha kunye nezixhobo kwi-TCP ephindaphindiweyo kunye ne-TLS ukuxhawula izandla xa kuthelekiswa ne-AJAX.

Inyani yeyokuba, ngokungagqibekanga, iWebRTC ayiboneleli ngeprotocol yokusayina eyimfuneko ukulungiselela ngokufanelekileyo, ukugcina, kunye nokuphelisa unxibelelwano lwevidiyo yexesha lokwenyani phakathi komthombo kunye nezicelo zabathengi.

Kwaye ukuze siphumeze ngokuzimeleyo itekhnoloji yokubonisa, kwafuneka siphuhlise iseva yethu yokubonisa ngenkxaso yeeprothokholi ezininzi zewebhu (Websocet, WebRTC). Kwaye ngokukwazi ukulawula ngokukhuselekileyo iiseshini kunye nezaziso ngexesha lokwenyani, ulawulo lwevidiyo kunye nokunye okuninzi.

Siyinqobe imida ye-P2P ngokunciphisa i-latency kungekhona nge-P2P, kodwa nge-UDP kunye nokulawulwa kokuhamba ukunciphisa i-latency. Oku kwakhiwe kwiWebRTC, kuba eyona nto isetyenziswayo ziincoko zep2p ngebrawuza.

Kumthengi ohambahambayo, siphumeze umdlali usebenzisa i-webrtc.org SDK, kuba kuphela iphumeza ngokuchanekileyo ulawulo lokuhamba, inazo zonke izikimu ezaziwayo zokulungisa impazamo (i-FEC), kwaye iphumeza ngokuchanekileyo indlela yokuthumela kwakhona iipakethi kuzo zonke izikhangeli. Kukwabalulekile ukuba i-webrtc.org SDK iphuhliswe ngokusebenzayo nguGoogle.

Siyintoni isiphumo sokuphumeza iWebRTC?


Ukujonga ividiyo ebukhoma kwiikhamera, songeze umdlali omtsha osekwe kwiWebRTC kwiakhawunti yakho yobuqu. Inika isantya sokulayisha ividiyo ngokukhawuleza kwaye iphelisa ngokupheleleyo ingxaki yokuqokelela i-latency njengoko ixesha lokujonga linyuka.

Emva kokwazisa inkxaso yeWebRTC kwinkonzo yelifu ye-Ivideon, sinokuthi ngokuzithemba okupheleleyo ukuba abathengi bethu ngoku banokubukela ividiyo egcwele ngokupheleleyo. Ngoku ukulibaziseka xa ukusasaza ulandelelwano lwevidiyo akudluli umzuzwana omnye! Ukuthelekisa, injini ye-HLS yangaphambili inikeze ukuhanjiswa kwevidiyo ngokulibaziseka kwemizuzwana emi-5-7. Umahluko kwisantya sokubonisa ividiyo ubaluleke kakhulu, kwaye umsebenzisi uya kuqaphela ngoko nangoko emva kokuba eqale ukusebenza ngenkonzo yethu yevidiyo.

Njengoko besilindele, ukuphunyezwa komdlali omtsha kuye kwaphucula ukuphendula kwe-PTZ kunye nonxibelelwano lwezwi kunye nekhamera.

IWebRTC kunye nokucupha ividiyo: indlela esoyise ngayo ukubambezeleka kwevidiyo kwiikhamera

Inye kuphela ingongoma echuliweyo esifuna ukutsalela ingqalelo kuyo. Umdlali omtsha weWebRTC ngoku usebenza kwimo yovavanyo. Yiyo loo nto singayenzi ukuba iyenze kubo bonke abathengi bethu ngokungagqibekanga. Kodwa ungayenza isebenze ngokwakho ngokwenza into ehambelanayo kwisethingi yekhamera (ukwenza oku kufuneka uye kuyo. akhawunti yakho).

Iimpawu zokuphunyezwa kweWebRTC kwinkonzo ye-Ivideon

IWebRTC kunye nokucupha ividiyo: indlela esoyise ngayo ukubambezeleka kwevidiyo kwiikhamera

I-WebRTC iseyitekhnoloji yovavanyo okwangoku. Inkxaso yayo ayikaphunyezwa ngokuchanekileyo kuzo zonke iiphequluli kunye nezixhobo zabasebenzisi, kwaye akukho kuzo zonke iikhamera.

Kungenxa yoko le nto singekamenzi umdlali weWebRTC ukuba abe yinto emiselweyo kubo bonke abasebenzisi.

Okwangoku, sincoma ukusebenzisa iWebRTC kuphela kwizikhangeli zikaGoogle Chrome. Iinguqulelo zamva nje zeFirefox kunye neSafari nazo ziyayixhasa le teknoloji, kodwa, ngelishwa, ayizinzanga.

Asikayisebenzisi inkxaso yeWebRTC kwizikhangeli kwizixhobo eziphathwayo. Okwangoku, ukuba ungena kwisixhobo esiphathwayo kwaye uvule iWebRTC, le mowudi ayizukusebenza. Nangona kunjalo, iWebRTC iyafumaneka kwizicelo zethu zeselula Android и iOS.

Kwaye ukuqukumbela ibali malunga neempawu zokuphunyezwa kweWebRTC kwinkonzo yethu, masiqaphele amanqaku amabini afihlakeleyo.

Okokuqala, itekhnoloji igxile ekusasazeni ividiyo ephilayo ngexesha lokwenyani. Ke ngoko, ukuba itshaneli lakho alinayo i-bandwidth eyaneleyo yokuhambisa ividiyo, uya kuqaphela ukuhla kwesakhelo (kunye ne-HLS uya kuqaphela ukufiphala kwevidiyo kunye nokwanda kwe-latency, kodwa akuyi kubakho kwehla isakhelo), kodwa ividiyo iya kusasazwa ngokwenyani. ixesha.

Okwesibini, kuba itekhnoloji yenzelwe ukusebenza ngokukodwa ngevidiyo ephilayo ngexesha langempela, asiyisebenzisi ukusebenza ngedatha yevidiyo egciniweyo.

Olunye utshintsho kwinkonzo

Ngeli xesha, iFlash ayisabandakanyekanga kwindlela yokukhetha injini. Usenako ukusebenzisa umdlali onjalo, kodwa ukwenza oku kufuneka ukhethe ngesandla kwiakhawunti okanye useto lwekhamera. Oku ayisiyombeko kwifashoni, yinto nje yokuba ngokweenkcukacha-manani zenkonzo yethu, akukho basebenzisi bashiyekileyo besebenza ngeFlash. Kwaye ukuzama ukufumanisa ukuba isikhangeli somsebenzisi siyayixhasa, silahlekelwa malunga nemizuzwana emi-2 yexesha elixabisekileyo.

Nantsi inkcazo emfutshane yotshintsho olulindele kuwe kwinkqubo yethu yokujonga ividiyo yelifu kunye neakhawunti yakho. Hlala nathi kwaye ulandele iindaba!

umthombo: www.habr.com

Thenga ukusingathwa okuthembekileyo kwiindawo ezinokhuseleko lweDDoS, iiseva zeVPS VDS 🔥 Thenga ukusingathwa kwewebhusayithi okuthembekileyo ngokhuseleko lwe-DDoS, iiseva zeVPS VDS | ProHoster