WebRTC ati iwo-kakiri fidio: bawo ni a ṣe ṣẹgun lairi fidio lati awọn kamẹra

WebRTC ati iwo-kakiri fidio: bawo ni a ṣe ṣẹgun lairi fidio lati awọn kamẹra

Lati awọn ọjọ akọkọ ti ṣiṣẹ lori eto iwo-kakiri fidio awọsanma, a koju iṣoro kan, laisi ojutu kan ti a le fi silẹ lori Ivideon - eyi ni Everest wa, gígun ti o gba agbara pupọ, ṣugbọn nisisiyi a ni nipari. di ohun yinyin ake sinu awọn oke ti awọn agbelebu-Syeed adojuru.

Eto fun gbigbe ohun ati fidio sori Intanẹẹti ko yẹ ki o dale lori ohun elo, awọn alabara wẹẹbu ati awọn iṣedede ti wọn ṣe atilẹyin, ati tun ṣiṣẹ ni deede niwaju Awọn onitumọ Adirẹsi Nẹtiwọọki ati awọn ogiriina. Olumulo ibojuwo fidio awọsanma fẹ lati wọle si iṣẹ naa, paapaa ti o ba lo awọn kamẹra afọwọṣe, o fẹran lati wo igbohunsafefe fidio laaye lori ẹrọ igbalode julọ.

O ṣe pataki pupọ pe olumulo fẹ lati wo awọn fidio pẹlu idaduro kekere. O fẹrẹ jẹ ọna kan ṣoṣo lati ṣafihan fidio pẹlu airi kekere ninu ẹrọ aṣawakiri kan ni lati lo WebRTC (awọn ibaraẹnisọrọ oju-iwe ayelujara gidi-akoko). WebRTC jẹ eto awọn imọ-ẹrọ fun gbigbe ẹlẹgbẹ-si-ẹlẹgbẹ ti fidio ati ohun ni awọn aṣawakiri, ti a ṣe apẹrẹ ni ibẹrẹ fun gbigbe ati ṣiṣiṣẹsẹhin ti awọn ṣiṣan fidio pẹlu lairi kekere. Fun idi eyi, laarin awọn ohun miiran, ilana UDP ti lo.

Ṣaaju ki a to sọ fun ọ kini ẹrọ tuntun n fun olumulo, a yoo leti idi ati idi ti a fi ṣe atilẹyin awọn imọ-ẹrọ HLS, ati idi ti a pinnu lati tẹsiwaju.

HLS engine: Aleebu ati awọn konsi

WebRTC ati iwo-kakiri fidio: bawo ni a ṣe ṣẹgun lairi fidio lati awọn kamẹra
(c)

Apple ló ṣe àgbékalẹ̀ ìmọ̀ ẹ̀rọ HLS (HTTP Live Streaming), nítorí náà, kò yani lẹ́nu pé wọ́n kọ́kọ́ ṣe àtìlẹ́yìn rẹ̀ lórí àwọn ẹ̀rọ Apple. Lónìí, gbogbo àwọn àpótí set-top àti ọ̀pọ̀lọpọ̀ ẹ̀rọ tó ń lo OS náà ló tún ń ṣe àtìlẹ́yìn fún fídíò HLS. Android.

Ẹrọ HLS nlo koodu H264 fidio ti o mọ daradara ni apapo pẹlu AAC tabi awọn ṣiṣan ohun MP3 lati san data fidio. Gbogbo ohun afetigbọ ati ṣiṣan data fidio ti wa ni akopọ sinu apoti gbigbe MPEG-TS kan. Fun gbigbe nipasẹ ilana HTTP, alaye ti o wa ninu ṣiṣan ti pin si awọn ajẹkù ti a ṣalaye ninu awọn akojọ orin m3u8. Ati pe lẹhinna awọn ajẹkù wọnyi, pẹlu awọn akojọ orin, ti wa ni gbigbe nipasẹ HTTP. Chunking laifọwọyi tumo si idaduro ni iṣẹju-aaya. Eleyi jẹ ẹya-ara ti MPEG-TS eiyan.

Ẹrọ HLS tun ṣe atilẹyin awọn ṣiṣan multibitrate, Live/VOD.

Awọn anfani akọkọ ti HLS:

  • atilẹyin ti a ṣe sinu gbogbo awọn aṣawakiri pataki;
  • irorun imuse (akawe si WebRTC);
  • O rọrun pupọ ati lilo daradara lati ṣeto gbogbo iru awọn igbohunsafefe si olugbo nla nitori otitọ pe awọn apakan le ṣe gbejade si CDN lẹẹkan.

Pelu awọn ayedero ti awọn engine, ko ohun gbogbo ni bi dan bi o ti dabi. Iṣoro akọkọ ni pe awọn olupilẹṣẹ ẹrọ orin ẹnikẹta ti lọ kuro ni awọn iṣeduro Apple, fun apẹẹrẹ ni awọn ofin ti awọn ọna kika ohun afetigbọ. Ni pataki, ọpọlọpọ awọn olupilẹṣẹ bẹrẹ lati ṣafikun agbara lati ṣiṣẹ pẹlu awọn ṣiṣan ohun afetigbọ olokiki: fidio mpeg2, ohun afetigbọ mpeg2, bbl Bi abajade, wọn ni lati ṣẹda awọn ọna kika atokọ oriṣiriṣi fun awọn oṣere oriṣiriṣi.

Ṣugbọn ọkan ninu awọn iṣoro ti o tobi julọ pẹlu ẹrọ HLS jẹ lairi giga ni gbigbe data.

Awọn ipilẹṣẹ ti "brakes"

Idi akọkọ fun lairi giga ti HLS wa ni otitọ pe awọn olupilẹṣẹ ṣẹda ẹrọ lati gba awọn aworan ti o ga julọ. Nitorinaa, awọn aye ti aarin fireemu ti a lo ati iwọn ifipamọ ṣiṣiṣẹsẹhin ko dara fun awọn igbesafefe fidio laaye. Nitori eyi, idaduro ti o ga julọ wa ni gbigbe awọn aworan fidio, eyiti o le jẹ awọn aaya 5-7.

Ni apa kan, eyi kii ṣe pupọ, fun apẹẹrẹ, fun awọn ti o wo fiimu kan lati olupin alejo gbigba fidio. Ṣugbọn fun awọn eto iwo-kakiri fidio, idaduro ni gbigbe awọn aworan fidio le ṣe pataki pupọ.

Ti o ba n wo ọfiisi nibiti awọn oṣiṣẹ n wo soke lati awọn diigi wọn lẹẹkan ni wakati kan, lẹhinna idaduro ti awọn aaya 5 ko ṣe pataki rara. Ṣugbọn awọn eniyan bẹrẹ si kerora pe, fun apẹẹrẹ, nigbati wọn ba n tan bọọlu afẹsẹgba kan, wọn ti kọ GOOOL tẹlẹ ninu iwiregbe, ṣugbọn eyi ko sibẹsibẹ lori fidio :). A ti ni nọmba awọn ọran olumulo nibiti Ivideon yẹ ki o rọpo Skype ni adaṣe.

Ṣe o ṣee ṣe lati lu lairi ni HLS? Idahun si ibeere yii dabi ọrọ ti oluparun eku ti o ni iriri ni ikẹkọ kan si awọn alamọja ti iṣakoso kokoro: “A ko le pa awọn eku run, ṣugbọn awọn nọmba wọn le dinku si o kere ju.” Kanna pẹlu idaduro ni HLS, kii yoo ṣee ṣe lati dinku si odo, ṣugbọn awọn solusan wa lori ọja ti o le dinku idaduro naa ni pataki.

Awọn gige ti o dara

Alailanfani miiran ti ẹrọ jẹ lilo awọn faili kekere fun gbigbe data. O yoo dabi wipe ohun ti ko tọ si pẹlu yi?

Ẹnikẹni ti o ba gbiyanju lati daakọ nọmba nla ti awọn faili kekere lati alabọde kan si ekeji ti ṣee ṣe akiyesi pe iyara kikọ ti iru ṣeto jẹ kekere pupọ ju faili nla kan ti iwọn kanna lọ. Ati kikankikan ti iraye si dirafu lile n pọ si ni pataki, eyiti o ni ipa ni odi gbogbogbo iṣẹ ṣiṣe ti kọnputa gbogbo. Nitorina, gbigbe data fidio ni kekere 10 keji chunks tun takantakan si pọ engine lairi.

Jẹ ki a ṣe akopọ ni ṣoki gbogbo awọn anfani ati alailanfani ti imọ-ẹrọ HLS.

Awọn anfani ti HLS:

  1. Agbara lati ṣiṣẹ pẹlu eyikeyi ẹrọ. O le wo awọn fidio lori eyikeyi igbalode ẹrọ, jẹ a foonuiyara, tabulẹti, laptop tabi tabili PC. Ohun akọkọ ni pe ẹrọ aṣawakiri wẹẹbu jẹ imudojuiwọn-si-ọjọ ati ibaramu pẹlu HTML5 ati Awọn amugbooro Orisun Media.
  2. Didara aworan ti o dara julọ. Iṣẹ gbigbe data isọdi ti a lo gba ọ laaye lati yi iyipada didara fidio ti o tan kaakiri da lori bandiwidi ti asopọ Intanẹẹti, lakoko ti algorithm n tiraka lati ṣetọju didara to pọ julọ.
  3. Ko si iwulo fun iṣeto eka ti ohun elo olumulo.

alailanfani:

  1. Atilẹyin to lopin fun ṣiṣẹ pẹlu ẹrọ lori diẹ ninu awọn ẹrọ.
  2. Awọn idaduro giga ni gbigbe aworan.
  3. Ilọsi pataki ni oke ati idiju ti iṣapeye nitori lilo awọn faili kekere. Nitori iru eiyan, a kii yoo ni anfani lati gba lairi kekere ju iwọn apakan lọ.

Awọn aila-nfani ti HLS ju awọn anfani rẹ lọ fun wa ati fi agbara mu wa lati wa awọn aṣayan yiyan.

Kini WebRTC

WebRTC ati iwo-kakiri fidio: bawo ni a ṣe ṣẹgun lairi fidio lati awọn kamẹra
(c)

Syeed WebRTC jẹ idagbasoke nipasẹ Google ni ọdun 2011 lati ṣe atagba fidio ṣiṣanwọle ati data ohun laarin awọn aṣawakiri ati awọn ohun elo alagbeka pẹlu lairi kekere. Fun eyi, ilana UDP boṣewa ati awọn algoridimu iṣakoso ṣiṣan pataki ni a lo. Loni o jẹ iṣẹ akanṣe orisun ṣiṣi, Google ni itọju rẹ ni itara ati pe o ti ni idagbasoke.

WebRTC jẹ eto imọ-ẹrọ fun fidio ẹlẹgbẹ-si-ẹlẹgbẹ ati gbigbe ohun. Iyẹn ni, fun apẹẹrẹ, awọn aṣawakiri olumulo nipa lilo WebRTC le gbe data si ara wọn taara, laisi lilo awọn olupin latọna jijin fun titoju ati sisẹ data. Gbogbo alaye tun ni ilọsiwaju nipasẹ awọn aṣawakiri olumulo ipari ati awọn ohun elo alagbeka.

Àwọn olùgbékalẹ̀ gbogbo àwọn ẹ̀rọ aṣàwákiri tó gbajúmọ̀ ti mọrírì ìrọ̀rùn àti agbára tó pọ̀ tó wà nínú ìmọ̀ ẹ̀rọ yìí. Ètò WebRTC wà lọ́wọ́lọ́wọ́ ní Mozilla Firefox, Opera, Google Chrome (àti gbogbo àwọn ẹ̀rọ aṣàwákiri tó dá lórí Chromium), àti nínú àwọn ohun èlò alágbèéká tó ń ṣiṣẹ́. Android àti iOS.

Fun gbogbo awọn anfani laiseaniani rẹ, WebRTC ni ọpọlọpọ awọn aila-nfani pataki.

Awọn iṣoro ti yiyan

Imọ-ẹrọ WebRTC jẹ eka pupọ diẹ sii ni awọn ofin ti awọn ibaraẹnisọrọ nẹtiwọọki nitori otitọ pe o jẹ nipa P2P. O ti wa ni soro lati yokokoro, idanwo, ati ki o le huwa unpredictable. Ni akoko kanna, a nilo lati bori NAT ati ogiriina, a nilo lati rii daju iṣẹ ni awọn nẹtiwọki nibiti UDP ti dina.

Google's WebRTC imuse jẹ gidigidi soro lati lo. Paapaa gbogbo ile-iṣẹ wa ti o pese awọn iṣẹ apejọ SDK. Pẹlupẹlu, imuse Google ti ṣoro pupọ lati ṣepọ pẹlu eto wa laisi fifi koodu gbogbo fidio naa pada.

Bibẹẹkọ, a ti fẹ lati fun awọn olumulo ni aye lati ṣiṣẹ pẹlu fidio “ifiwe laaye” kikun ati dinku aisun laarin aworan loju iboju ati awọn iṣẹlẹ funrararẹ. Pẹlupẹlu, a ni ifẹ lati ṣe lilo awọn kamẹra PTZ, nibiti awọn idaduro jẹ pataki, itunu diẹ sii.

Ṣiyesi pe awọn imuse egboogi-aisun miiran tun ni iṣẹ ṣiṣe to lopin ati ṣiṣẹ ni akiyesi buru, a pinnu lati lo WebRTC.

Kini a ti ṣe

WebRTC ati iwo-kakiri fidio: bawo ni a ṣe ṣẹgun lairi fidio lati awọn kamẹra

Ṣiṣe imuse pẹpẹ WebRTC ni deede kii ṣe iṣẹ ti o rọrun. Eyikeyi iṣiro tabi aiṣedeede le ja si awọn idaduro ni gbigbe fidio kii ṣe idinku nikan ni akawe si awọn iru ẹrọ miiran, ṣugbọn paapaa n pọ si.

Fun WebRTC lati ṣiṣẹ ni deede, ni akọkọ, o jẹ dandan lati ṣe igbesoke imọ-ẹrọ ti akopọ fun ṣiṣẹ pẹlu fidio wẹẹbu. Ohun ti a ṣe niyẹn.

Ni akọkọ, a ṣe imuse olupin ilana ami ifihan WebRTC lori Websocket, ati tun ran olupin ẹlẹgbẹ WebRTC kan ninu awọsanma ti o da lori webrtc.org SDK. Iṣẹ rẹ ni lati pin awọn ṣiṣan fidio si awọn ẹlẹgbẹ WebRTC alabara ni ọna kika H.264 + Opus / G.711 laisi transcoding fidio.

A yan Websocket gẹgẹbi ilana isamisi nitori pe o ti ni atilẹyin didara to gaju ni gbogbo awọn aṣawakiri wẹẹbu olokiki. Nitori eyi, o le dinku ni pataki kii ṣe idagbasoke oke nikan, ṣugbọn tun yago fun jafara akoko ati awọn orisun lori TCP ti o leralera ati mimu ọwọ TLS ni akawe si AJAX.

Otitọ ni pe, nipasẹ aiyipada, WebRTC ko pese ilana isamisi pataki lati tunto daradara, ṣetọju, ati fopin si ibaraẹnisọrọ fidio akoko gidi laarin orisun ati awọn ohun elo alabara.

Ati pe lati le ṣe adaṣe imọ-ẹrọ ifihan ni ominira, a nilo lati ṣe agbekalẹ olupin ifihan agbara tiwa pẹlu atilẹyin fun ọpọlọpọ awọn ilana wẹẹbu (Websocet, WebRTC). Ati pẹlu agbara lati ṣakoso awọn akoko ni aabo ati awọn iwifunni ni akoko gidi, iṣakoso fidio ati pupọ diẹ sii.

A bori awọn idiwọn ti P2P nipa didin lairi kii ṣe nipasẹ P2P, ṣugbọn nipasẹ UDP ati iṣakoso ṣiṣan lati dinku lairi. Eyi tun jẹ itumọ si WebRTC, nitori ọran lilo akọkọ jẹ awọn ibaraẹnisọrọ p2p nipasẹ ẹrọ aṣawakiri kan.

Ninu alabara alagbeka, a ṣe imuse ẹrọ orin nipa lilo webrtc.org SDK, niwọn bi o ti ṣe deede iṣakoso ṣiṣan, ni gbogbo awọn ero Atunse Aṣiṣe Iwaju (FEC) ti a mọ, ati pe o ṣe imuse ọna ti o tọ fun awọn apo-itumọ fun gbogbo awọn aṣawakiri. O tun ṣe pataki pe webrtc.org SDK ti wa ni idagbasoke nipasẹ Google.

Kini abajade ti imuse WebRTC?


Lati wo fidio laaye lati awọn kamẹra, a ti ṣafikun ẹrọ orin iṣapeye tuntun ti o da lori WebRTC si akọọlẹ ti ara ẹni. O pese awọn iyara ikojọpọ fidio ni iyara ati imukuro iṣoro ti ikojọpọ lairi bi akoko wiwo n pọ si.

Lẹhin iṣafihan atilẹyin WebRTC ni iṣẹ awọsanma Ivideon, a le sọ pẹlu igbẹkẹle pipe pe awọn alabara wa le ni bayi wo fidio ifiwe laaye ni kikun. Bayi idaduro nigbati igbohunsafefe awọn ilana fidio ko kọja iṣẹju kan! Fun lafiwe, ẹrọ HLS ti tẹlẹ pese ifijiṣẹ fidio pẹlu idaduro ti awọn aaya 5-7. Iyatọ ti iyara ifihan fidio jẹ pataki pupọ, ati pe olumulo yoo ṣe akiyesi rẹ lẹsẹkẹsẹ lẹhin ti o bẹrẹ lati ṣiṣẹ pẹlu iṣẹ fidio wa.

Gẹgẹbi a ti nireti, imuse ti oṣere tuntun ti ṣe ilọsiwaju idahun ti PTZ ati ibaraẹnisọrọ ohun pẹlu kamẹra.

WebRTC ati iwo-kakiri fidio: bawo ni a ṣe ṣẹgun lairi fidio lati awọn kamẹra

Ojuami arekereke kan wa ti a fẹ fa ifojusi si. Ẹrọ orin WebRTC tuntun n ṣiṣẹ lọwọlọwọ ni ipo idanwo. Ati pe iyẹn ni idi ti a ko ṣe muu ṣiṣẹ fun gbogbo awọn alabara wa nipasẹ aiyipada. Ṣugbọn o le muu ṣiṣẹ funrararẹ nipa ṣiṣe ohun ti o baamu ni awọn eto kamẹra (lati ṣe eyi, lọ si Agbegbe ti ara ẹni).

Awọn ẹya ara ẹrọ ti imuse ti WebRTC ni iṣẹ Ivideon

WebRTC ati iwo-kakiri fidio: bawo ni a ṣe ṣẹgun lairi fidio lati awọn kamẹra

WebRTC tun jẹ imọ-ẹrọ esiperimenta ni akoko yii. Atilẹyin rẹ ko tii ni imuse ni deede ni gbogbo awọn aṣawakiri ati awọn ẹrọ olumulo, ati kii ṣe ni gbogbo awọn kamẹra.

Eyi jẹ deede idi ti a ko tii ṣe ẹrọ orin WebRTC ni aiyipada fun gbogbo awọn olumulo.

Ni bayi, a ṣeduro lilo WebRTC nikan ni awọn aṣawakiri Google Chrome. Awọn ẹya tuntun ti Firefox ati Safari tun ṣe atilẹyin imọ-ẹrọ yii, ṣugbọn, laanu, o tun jẹ riru.

A ko tii ṣe imuse atilẹyin WebRTC fun awọn aṣawakiri lori awọn ẹrọ alagbeka. Lọwọlọwọ, ti o ba wọle lati ẹrọ alagbeka kan ati mu WebRTC ṣiṣẹ, ipo yii kii yoo ṣiṣẹ. Sibẹsibẹ, WebRTC wa ninu awọn ohun elo alagbeka wa fun Android и iOS.

Ati ipari itan naa nipa awọn ẹya ti imuse WebRTC ninu iṣẹ wa, jẹ ki a ṣe akiyesi awọn aaye arekereke meji diẹ sii.

Ni akọkọ, imọ-ẹrọ naa dojukọ lori igbohunsafefe ifiwe fidio ni akoko gidi. Nitorinaa, ti ikanni rẹ ko ba ni bandiwidi ti o to lati tan fidio naa, iwọ yoo ṣe akiyesi awọn silẹ fireemu (pẹlu HLS iwọ yoo ṣe akiyesi idinku fidio ati airi pọ si, ṣugbọn kii yoo si awọn fireemu silẹ), ṣugbọn fidio naa yoo tun gbejade ni gidi. aago.

Ni ẹẹkeji, niwọn igba ti a ṣe apẹrẹ imọ-ẹrọ lati ṣiṣẹ ni pataki pẹlu fidio laaye ni akoko gidi, a ko lo lati ṣiṣẹ pẹlu data fidio ti o fipamọ.

Awọn iyipada miiran si iṣẹ naa

Ni akoko yii, Filaṣi ko ni ipa mọ ninu ẹrọ yiyan ẹrọ aifọwọyi. O tun le lo iru ẹrọ orin kan, ṣugbọn lati ṣe eyi o nilo lati yan pẹlu ọwọ ni akọọlẹ tabi eto kamẹra. Eyi kii ṣe owo-ori si aṣa, o kan jẹ pe ni ibamu si awọn iṣiro ti iṣẹ wa, ko si awọn olumulo ti o ku ṣiṣẹ pẹlu Flash. Ati igbiyanju lati pinnu boya aṣawakiri olumulo ṣe atilẹyin rẹ, a padanu nipa awọn aaya 2 ti akoko iyebiye.

Eyi ni atokọ kukuru ti awọn ayipada ti o duro de ọ ninu eto iwo-kakiri fidio awọsanma wa ati akọọlẹ ti ara ẹni. Duro pẹlu wa ki o tẹle awọn iroyin!

orisun: www.habr.com

Ra alejo gbigba igbẹkẹle fun awọn aaye pẹlu aabo DDoS, awọn olupin VPS VDS 🔥 Ra gbigbalejo oju opo wẹẹbu ti o gbẹkẹle pẹlu aabo DDoS, awọn olupin VPS VDS | ProHoster